diff --git a/DEPS b/DEPS
index db8d2e1..a0f650a 100644
--- a/DEPS
+++ b/DEPS
@@ -195,7 +195,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': '49983ef4e7deb15a8023223c24eca5685fec972a',
+  'skia_revision': '4ed6947787e7587995dbda777cd44031c59d11ad',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -207,15 +207,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '9385eb35f507a9c13e93e35c300ea15176b46b2c',
+  'angle_revision': '48d951e22d45c37373c1cdb56f43fd08fbf3f031',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': '72ea2ee4650f3f8ac7e70aaa72a38f8ea0e09e6c',
+  'swiftshader_revision': 'afbc899f2ff2da9337fdba75eec2f33658bde706',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': '1553832ddd6cd96d6278c84c8b557a0ce6cd9bd7',
+  'pdfium_revision': '61ca10cb63d06a31daaba9d453ccc7f837802c24',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
@@ -258,7 +258,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': 'c4d3ff474abec0ece4c42552b25aea9b54ecc047',
+  'catapult_revision': 'd56f379356d9fdbafd64e4f8545ac89e37485fab',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -266,7 +266,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': 'd2454323cb6eb157830d277e27e059e21183e135',
+  'devtools_frontend_revision': 'f6ca01b98c515754d6426f4e7da86e8127621ffa',
   # 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.
@@ -1248,7 +1248,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '0376edf14e5896af79fc71552f9579cbbd12f381',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'c4451adcce85638c2c52dbcc8606c04144500aa8',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1470,7 +1470,7 @@
   },
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '5401bad7015d510be212efa1e3d3bc1c149bc77c',
+    Var('webrtc_git') + '/src.git' + '@' + 'c2cfd18ab8cabb29fe0866d467588d22b8c5e501',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1542,7 +1542,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@0b969adbdff12a835045cf33f640d91c64ee0d11',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ae8f8fdcda034ea4ae92b7074b74696b0134fbb3',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index 552cc92..9c362d46 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -668,6 +668,7 @@
   deps = [
     "//base:base_java",
     "//components/metrics:metrics_java",
+    "//gpu/config:config_java",
     "//third_party/android_deps:androidx_annotation_annotation_java",
   ]
   srcjar_deps = [ ":common_java_switches_srcjar" ]
diff --git a/android_webview/docs/commandline-flags.md b/android_webview/docs/commandline-flags.md
index 11762cc..23699a4 100644
--- a/android_webview/docs/commandline-flags.md
+++ b/android_webview/docs/commandline-flags.md
@@ -141,9 +141,11 @@
 
 WebView also defines its own flags and Features:
 
- * [AwSwitches.java](https://cs.chromium.org/chromium/src/android_webview/java/src/org/chromium/android_webview/common/AwSwitches.java)
-   (and its [native
-   counterpart](https://cs.chromium.org/chromium/src/android_webview/common/aw_switches.h))
+ * C++ switches are defined in
+   [`aw_switches.cc`](/android_webview/common/aw_switches.cc). We use
+   [`java_cpp_strings`](/docs/android_accessing_cpp_switches_in_java.md) to
+   automatically generate Java switch constants from the C++ switches (see
+   [`AwSwitches.java`](https://source.chromium.org/chromium/chromium/src/+/master:out/android-Debug/gen/android_webview/common_java/generated_java/input_srcjars/org/chromium/android_webview/common/AwSwitches.java)).
  * [AwFeatureList.java](https://cs.chromium.org/chromium/src/android_webview/java/src/org/chromium/android_webview/AwFeatureList.java)
    (and its [native
    counterpart](https://cs.chromium.org/chromium/src/android_webview/common/aw_features.h))
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
index 5d9af1b..a652408 100644
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -6,6 +6,7 @@
 
 import org.chromium.base.BaseSwitches;
 import org.chromium.components.metrics.MetricsSwitches;
+import org.chromium.gpu.config.GpuSwitches;
 
 /**
  * List of experimental features/flags supported for user devices. Add features/flags to this list
@@ -57,7 +58,7 @@
             Flag.commandLine(BaseSwitches.ENABLE_CRASH_REPORTER_FOR_TESTING,
                     "Used for turning on Breakpad crash reporting in a debug environment where "
                             + "crash reporting is typically compiled but disabled."),
-            Flag.commandLine("disable-gpu-rasterization",
+            Flag.commandLine(GpuSwitches.DISABLE_GPU_RASTERIZATION,
                     "Disables GPU rasterization, i.e. rasterizes on the CPU only."),
             Flag.baseFeature("OutOfBlinkCors",
                     "Moves CORS logic into the Network Service (rather than inside the blink "
diff --git a/android_webview/nonembedded/java/res_devui/layout/toggleable_flag.xml b/android_webview/nonembedded/java/res_devui/layout/toggleable_flag.xml
index 640cd65d..7199675 100644
--- a/android_webview/nonembedded/java/res_devui/layout/toggleable_flag.xml
+++ b/android_webview/nonembedded/java/res_devui/layout/toggleable_flag.xml
@@ -19,7 +19,7 @@
         android:layout_height="wrap_content"
         android:textIsSelectable="true"
         android:textStyle="bold"
-        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textAppearance="@style/MediumText"
         android:drawablePadding="4dp"
         android:paddingTop="8dp"
         android:paddingBottom="8dp"/>
diff --git a/android_webview/nonembedded/java/res_devui/values-night/colors.xml b/android_webview/nonembedded/java/res_devui/values-night/colors.xml
index 053096f..923e23a 100644
--- a/android_webview/nonembedded/java/res_devui/values-night/colors.xml
+++ b/android_webview/nonembedded/java/res_devui/values-night/colors.xml
@@ -6,5 +6,7 @@
 -->
 
 <resources>
+    <color name="error_red">#F28482</color>
     <color name="navigation_selected">#FFFFFF</color>
+    <color name="medium_text_color">#E8EAED</color>
 </resources>
diff --git a/android_webview/nonembedded/java/res_devui/values/colors.xml b/android_webview/nonembedded/java/res_devui/values/colors.xml
index b0af5f0..06ee3ac 100644
--- a/android_webview/nonembedded/java/res_devui/values/colors.xml
+++ b/android_webview/nonembedded/java/res_devui/values/colors.xml
@@ -11,4 +11,5 @@
     <color name="blue">#1967D2</color>
     <color name="navigation_selected">#000000</color>
     <color name="navigation_unselected">#888888</color>
+    <color name="medium_text_color">#202124</color>
 </resources>
diff --git a/android_webview/nonembedded/java/res_devui/values/styles.xml b/android_webview/nonembedded/java/res_devui/values/styles.xml
index e4ab980..68dcb46 100644
--- a/android_webview/nonembedded/java/res_devui/values/styles.xml
+++ b/android_webview/nonembedded/java/res_devui/values/styles.xml
@@ -13,4 +13,7 @@
     <style name="UnselectedNavigationButton">
         <item name="android:textColor">@color/navigation_unselected</item>
     </style>
+    <style name="MediumText" parent="@android:style/TextAppearance.Medium">
+        <item name="android:textColor">@color/medium_text_color</item>
+    </style>
 </resources>
\ No newline at end of file
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 3f791586..79d9bf7 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -1859,6 +1859,9 @@
     "home_screen/swipe_home_to_overview_controller_unittest.cc",
     "host/ash_window_tree_host_platform_unittest.cc",
     "ime/ime_controller_impl_unittest.cc",
+    "in_session_auth/in_session_auth_dialog_controller_impl_unittest.cc",
+    "in_session_auth/mock_in_session_auth_dialog_client.cc",
+    "in_session_auth/mock_in_session_auth_dialog_client.h",
     "keyboard/keyboard_controller_impl_unittest.cc",
     "keyboard/virtual_keyboard_controller_unittest.cc",
     "keyboard/virtual_keyboard_unittest.cc",
diff --git a/ash/accessibility/spoken_feedback_enabler.cc b/ash/accessibility/spoken_feedback_enabler.cc
index 8c2f350..1a2656ba 100644
--- a/ash/accessibility/spoken_feedback_enabler.cc
+++ b/ash/accessibility/spoken_feedback_enabler.cc
@@ -6,6 +6,7 @@
 
 #include "ash/accessibility/accessibility_controller_impl.h"
 #include "ash/shell.h"
+#include "base/numerics/safe_conversions.h"
 #include "ui/events/base_event_utils.h"
 
 namespace ash {
@@ -33,7 +34,7 @@
 void SpokenFeedbackEnabler::OnTimer() {
   base::TimeTicks now = ui::EventTimeForNow();
   double tick_count_f = (now - start_time_) / kTimerDelay;
-  int tick_count = roundf(tick_count_f);
+  int tick_count = base::ClampRound(tick_count_f);
 
   AccessibilityControllerImpl* controller =
       Shell::Get()->accessibility_controller();
diff --git a/ash/accessibility/touch_accessibility_enabler.cc b/ash/accessibility/touch_accessibility_enabler.cc
index a187c26..f0b894f 100644
--- a/ash/accessibility/touch_accessibility_enabler.cc
+++ b/ash/accessibility/touch_accessibility_enabler.cc
@@ -11,6 +11,7 @@
 #include "base/check.h"
 #include "base/metrics/user_metrics.h"
 #include "base/notreached.h"
+#include "base/numerics/safe_conversions.h"
 #include "base/time/default_tick_clock.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_event_dispatcher.h"
@@ -161,7 +162,7 @@
   base::TimeTicks now = Now();
   double tick_count_f =
       (now - two_finger_start_time_).InMillisecondsF() / kTimerDelayInMS;
-  int tick_count = roundf(tick_count_f);
+  int tick_count = base::ClampRound(tick_count_f);
 
   if (tick_count == kTimerTicksOfFirstSoundFeedback) {
     base::RecordAction(
diff --git a/ash/app_list/views/app_list_menu_model_adapter.cc b/ash/app_list/views/app_list_menu_model_adapter.cc
index bcad2a1..aca1f2bf 100644
--- a/ash/app_list/views/app_list_menu_model_adapter.cc
+++ b/ash/app_list/views/app_list_menu_model_adapter.cc
@@ -152,7 +152,6 @@
 }
 
 void AppListMenuModelAdapter::ExecuteCommand(int id, int mouse_event_flags) {
-  RecordExecuteCommandHistogram(id);
   MaybeRecordAppLaunched(id);
 
   // Note that ExecuteCommand might delete us.
diff --git a/ash/app_menu/app_menu_model_adapter.cc b/ash/app_menu/app_menu_model_adapter.cc
index 2da1c839..37e0fa2 100644
--- a/ash/app_menu/app_menu_model_adapter.cc
+++ b/ash/app_menu/app_menu_model_adapter.cc
@@ -94,8 +94,12 @@
 }
 
 void AppMenuModelAdapter::ExecuteCommand(int id, int mouse_event_flags) {
-  views::MenuModelAdapter::ExecuteCommand(id, mouse_event_flags);
+  // Note that the command execution may cause this to get deleted - for
+  // example, for search result menus, the command could open an app window
+  // causing the app list search to get cleared, destroying non-zero state
+  // search results.
   RecordExecuteCommandHistogram(GetCommandIdForHistograms(id));
+  views::MenuModelAdapter::ExecuteCommand(id, mouse_event_flags);
 }
 
 void AppMenuModelAdapter::OnMenuClosed(views::MenuItemView* menu) {
diff --git a/ash/host/ash_window_tree_host_platform_unittest.cc b/ash/host/ash_window_tree_host_platform_unittest.cc
index c73f421..2f9b7506 100644
--- a/ash/host/ash_window_tree_host_platform_unittest.cc
+++ b/ash/host/ash_window_tree_host_platform_unittest.cc
@@ -66,6 +66,10 @@
                         GetTouchEventLogReply reply) override {
     std::move(reply).Run(std::vector<base::FilePath>());
   }
+  void PlayVibrationEffect(int id,
+                           uint8_t amplitude,
+                           uint16_t duration_millis) override {}
+  void StopVibration(int id) override {}
   void SetInternalTouchpadEnabled(bool enabled) override {}
   bool IsInternalTouchpadEnabled() const override { return false; }
   void SetTouchscreensEnabled(bool enabled) override {}
diff --git a/ash/in_session_auth/auth_dialog_debug_view.cc b/ash/in_session_auth/auth_dialog_debug_view.cc
index 0dd3dd89..18fb49f 100644
--- a/ash/in_session_auth/auth_dialog_debug_view.cc
+++ b/ash/in_session_auth/auth_dialog_debug_view.cc
@@ -198,7 +198,13 @@
 }
 
 void AuthDialogDebugView::OnAuthSubmit(const base::string16& password) {
-  // TODO(b/156258540): Call InSessionAuthDialogController to authenticate user.
+  InSessionAuthDialogController::Get()->AuthenticateUserWithPasswordOrPin(
+      base::UTF16ToUTF8(password),
+      base::BindOnce(&AuthDialogDebugView::OnAuthComplete,
+                     weak_factory_.GetWeakPtr()));
 }
 
+// TODO(b/156258540): Clear password/PIN if auth failed and retry is allowed.
+void AuthDialogDebugView::OnAuthComplete(base::Optional<bool> success) {}
+
 }  // namespace ash
diff --git a/ash/in_session_auth/auth_dialog_debug_view.h b/ash/in_session_auth/auth_dialog_debug_view.h
index ea9a971..a759f8e 100644
--- a/ash/in_session_auth/auth_dialog_debug_view.h
+++ b/ash/in_session_auth/auth_dialog_debug_view.h
@@ -63,6 +63,9 @@
   // Called when the user submits password or PIN.
   void OnAuthSubmit(const base::string16& password);
 
+  // Called when authentication of the user completes.
+  void OnAuthComplete(base::Optional<bool> success);
+
   // Debug container which holds the entire debug UI.
   views::View* container_ = nullptr;
 
@@ -89,6 +92,8 @@
 
   // Container which holds action buttons.
   views::View* action_view_container_ = nullptr;
+
+  base::WeakPtrFactory<AuthDialogDebugView> weak_factory_{this};
 };
 
 }  // namespace ash
diff --git a/ash/in_session_auth/in_session_auth_dialog_controller_impl.cc b/ash/in_session_auth/in_session_auth_dialog_controller_impl.cc
index b88615b..9337b75 100644
--- a/ash/in_session_auth/in_session_auth_dialog_controller_impl.cc
+++ b/ash/in_session_auth/in_session_auth_dialog_controller_impl.cc
@@ -5,6 +5,9 @@
 #include "ash/in_session_auth/in_session_auth_dialog_controller_impl.h"
 
 #include "ash/public/cpp/in_session_auth_dialog_client.h"
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/strings/string_util.h"
 
 namespace ash {
 
@@ -27,4 +30,27 @@
   dialog_.reset();
 }
 
+void InSessionAuthDialogControllerImpl::AuthenticateUserWithPasswordOrPin(
+    const std::string& password,
+    OnAuthenticateCallback callback) {
+  DCHECK(client_);
+
+  // TODO(b/156258540): Check that PIN is enabled / set up for this user.
+  bool authenticated_by_pin = base::ContainsOnlyChars(password, "0123456789");
+
+  client_->AuthenticateUserWithPasswordOrPin(
+      password, authenticated_by_pin,
+      base::BindOnce(&InSessionAuthDialogControllerImpl::OnAuthenticateComplete,
+                     weak_factory_.GetWeakPtr(), std::move(callback)));
+}
+
+void InSessionAuthDialogControllerImpl::OnAuthenticateComplete(
+    OnAuthenticateCallback callback,
+    bool success) {
+  std::move(callback).Run(success);
+  // TODO(b/156258540): send status to UserAuthenticationServiceProvider for
+  // dbus response.
+  DestroyAuthenticationDialog();
+}
+
 }  // namespace ash
diff --git a/ash/in_session_auth/in_session_auth_dialog_controller_impl.h b/ash/in_session_auth/in_session_auth_dialog_controller_impl.h
index e3ebf8d..2359fe52 100644
--- a/ash/in_session_auth/in_session_auth_dialog_controller_impl.h
+++ b/ash/in_session_auth/in_session_auth_dialog_controller_impl.h
@@ -9,6 +9,9 @@
 
 #include "ash/in_session_auth/in_session_auth_dialog.h"
 #include "ash/public/cpp/in_session_auth_dialog_controller.h"
+#include "base/callback_forward.h"
+#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
 
 namespace ash {
 
@@ -17,6 +20,12 @@
 // InSessionAuthDialogControllerImpl persists as long as UI is running.
 class InSessionAuthDialogControllerImpl : public InSessionAuthDialogController {
  public:
+  // Callback for authentication checks. |success| is nullopt if an
+  // authentication check did not run, otherwise it is true/false if auth
+  // succeeded/failed.
+  using OnAuthenticateCallback =
+      base::OnceCallback<void(base::Optional<bool> success)>;
+
   InSessionAuthDialogControllerImpl();
   InSessionAuthDialogControllerImpl(const InSessionAuthDialogControllerImpl&) =
       delete;
@@ -28,11 +37,19 @@
   void SetClient(InSessionAuthDialogClient* client) override;
   void ShowAuthenticationDialog() override;
   void DestroyAuthenticationDialog() override;
+  void AuthenticateUserWithPasswordOrPin(
+      const std::string& password,
+      OnAuthenticateCallback callback) override;
 
  private:
+  // Callback to execute when auth on ChromeOS side completes.
+  void OnAuthenticateComplete(OnAuthenticateCallback callback, bool success);
+
   InSessionAuthDialogClient* client_ = nullptr;
 
   std::unique_ptr<InSessionAuthDialog> dialog_;
+
+  base::WeakPtrFactory<InSessionAuthDialogControllerImpl> weak_factory_{this};
 };
 
 }  // namespace ash
diff --git a/ash/in_session_auth/in_session_auth_dialog_controller_impl_unittest.cc b/ash/in_session_auth/in_session_auth_dialog_controller_impl_unittest.cc
new file mode 100644
index 0000000..91c6d2f
--- /dev/null
+++ b/ash/in_session_auth/in_session_auth_dialog_controller_impl_unittest.cc
@@ -0,0 +1,75 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/in_session_auth/in_session_auth_dialog_controller_impl.h"
+
+#include "ash/in_session_auth/mock_in_session_auth_dialog_client.h"
+#include "ash/shell.h"
+#include "ash/test/ash_test_base.h"
+#include "base/callback.h"
+#include "base/test/bind_test_util.h"
+
+using ::testing::_;
+
+namespace ash {
+namespace {
+
+using InSessionAuthDialogControllerImplTest = AshTestBase;
+
+TEST_F(InSessionAuthDialogControllerImplTest, PasswordAuthSuccess) {
+  InSessionAuthDialogController* controller =
+      Shell::Get()->in_session_auth_dialog_controller();
+  auto client = std::make_unique<MockInSessionAuthDialogClient>();
+
+  std::string password = "password";
+
+  EXPECT_CALL(*client, AuthenticateUserWithPasswordOrPin(
+                           password, /* authenticated_by_pin = */ false, _))
+      .WillOnce([](const std::string& password, bool authenticated_by_pin,
+                   base::OnceCallback<void(bool success)> controller_callback) {
+        std::move(controller_callback).Run(true);
+      });
+
+  base::Optional<bool> view_callback_result;
+  controller->AuthenticateUserWithPasswordOrPin(
+      password,
+      /* View callback will be executed during controller callback. */
+      base::BindLambdaForTesting(
+          [&view_callback_result](base::Optional<bool> did_auth) {
+            view_callback_result = did_auth;
+          }));
+
+  EXPECT_TRUE(view_callback_result.has_value());
+  EXPECT_TRUE(*view_callback_result);
+}
+
+TEST_F(InSessionAuthDialogControllerImplTest, PasswordAuthFail) {
+  InSessionAuthDialogController* controller =
+      Shell::Get()->in_session_auth_dialog_controller();
+  auto client = std::make_unique<MockInSessionAuthDialogClient>();
+
+  std::string password = "password";
+
+  EXPECT_CALL(*client, AuthenticateUserWithPasswordOrPin(
+                           password, /* authenticated_by_pin = */ false, _))
+      .WillOnce([](const std::string& password, bool authenticated_by_pin,
+                   base::OnceCallback<void(bool success)> controller_callback) {
+        std::move(controller_callback).Run(false);
+      });
+
+  base::Optional<bool> view_callback_result;
+  controller->AuthenticateUserWithPasswordOrPin(
+      password,
+      /* View callback will be executed during controller callback. */
+      base::BindLambdaForTesting(
+          [&view_callback_result](base::Optional<bool> did_auth) {
+            view_callback_result = did_auth;
+          }));
+
+  EXPECT_TRUE(view_callback_result.has_value());
+  EXPECT_FALSE(*view_callback_result);
+}
+
+}  // namespace
+}  // namespace ash
diff --git a/ash/in_session_auth/mock_in_session_auth_dialog_client.cc b/ash/in_session_auth/mock_in_session_auth_dialog_client.cc
new file mode 100644
index 0000000..0028a74
--- /dev/null
+++ b/ash/in_session_auth/mock_in_session_auth_dialog_client.cc
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/in_session_auth/mock_in_session_auth_dialog_client.h"
+
+#include "ash/in_session_auth/in_session_auth_dialog_controller_impl.h"
+#include "ash/shell.h"
+
+namespace ash {
+
+MockInSessionAuthDialogClient::MockInSessionAuthDialogClient() {
+  Shell::Get()->in_session_auth_dialog_controller()->SetClient(this);
+}
+
+MockInSessionAuthDialogClient::~MockInSessionAuthDialogClient() {
+  Shell::Get()->in_session_auth_dialog_controller()->SetClient(nullptr);
+}
+
+}  // namespace ash
diff --git a/ash/in_session_auth/mock_in_session_auth_dialog_client.h b/ash/in_session_auth/mock_in_session_auth_dialog_client.h
new file mode 100644
index 0000000..81ad3f5e
--- /dev/null
+++ b/ash/in_session_auth/mock_in_session_auth_dialog_client.h
@@ -0,0 +1,33 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_IN_SESSION_AUTH_MOCK_IN_SESSION_AUTH_DIALOG_CLIENT_H_
+#define ASH_IN_SESSION_AUTH_MOCK_IN_SESSION_AUTH_DIALOG_CLIENT_H_
+
+#include "ash/public/cpp/in_session_auth_dialog_client.h"
+#include "base/callback.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace ash {
+
+class MockInSessionAuthDialogClient : public InSessionAuthDialogClient {
+ public:
+  MockInSessionAuthDialogClient();
+  MockInSessionAuthDialogClient(const MockInSessionAuthDialogClient&) = delete;
+  MockInSessionAuthDialogClient& operator=(
+      const MockInSessionAuthDialogClient&) = delete;
+  ~MockInSessionAuthDialogClient() override;
+
+  // InSessionAuthDialogClient:
+  MOCK_METHOD(void,
+              AuthenticateUserWithPasswordOrPin,
+              (const std::string& password,
+               bool authenticated_by_pin,
+               base::OnceCallback<void(bool)> callback),
+              (override));
+};
+
+}  // namespace ash
+
+#endif  // ASH_IN_SESSION_AUTH_MOCK_IN_SESSION_AUTH_DIALOG_CLIENT_H_
diff --git a/ash/public/cpp/in_session_auth_dialog_client.h b/ash/public/cpp/in_session_auth_dialog_client.h
index 7ad312b..e6312d8 100644
--- a/ash/public/cpp/in_session_auth_dialog_client.h
+++ b/ash/public/cpp/in_session_auth_dialog_client.h
@@ -18,7 +18,7 @@
  public:
   // Attempt to authenticate the current session user with a password or PIN.
   // |password|: The submitted password.
-  // |authenticated_by_pin|: True if we are using pin to authenticate.
+  // |authenticated_by_pin|: True if we are authenticating by PIN..
   // |callback|: the callback to run on auth complete.
   virtual void AuthenticateUserWithPasswordOrPin(
       const std::string& password,
diff --git a/ash/public/cpp/in_session_auth_dialog_controller.h b/ash/public/cpp/in_session_auth_dialog_controller.h
index 84267e2..77970cd7 100644
--- a/ash/public/cpp/in_session_auth_dialog_controller.h
+++ b/ash/public/cpp/in_session_auth_dialog_controller.h
@@ -7,12 +7,19 @@
 
 #include "ash/public/cpp/ash_public_export.h"
 #include "ash/public/cpp/in_session_auth_dialog_client.h"
+#include "base/optional.h"
 
 namespace ash {
 
 // InSessionAuthDialogController manages the in-session auth dialog.
 class ASH_PUBLIC_EXPORT InSessionAuthDialogController {
  public:
+  // Callback for authentication checks. |success| is nullopt if an
+  // authentication check did not run, otherwise it is true/false if auth
+  // succeeded/failed.
+  using OnAuthenticateCallback =
+      base::OnceCallback<void(base::Optional<bool> success)>;
+
   // Return the singleton instance.
   static InSessionAuthDialogController* Get();
 
@@ -25,6 +32,13 @@
   // Destroys the authentication dialog.
   virtual void DestroyAuthenticationDialog() = 0;
 
+  // Takes a password or PIN and sends it to InSessionAuthDialogClient to
+  // authenticate. The InSessionAuthDialogClient should already know the current
+  // session's active user, so the user account is not provided here.
+  virtual void AuthenticateUserWithPasswordOrPin(
+      const std::string& password,
+      OnAuthenticateCallback callback) = 0;
+
  protected:
   InSessionAuthDialogController();
   virtual ~InSessionAuthDialogController();
diff --git a/ash/public/cpp/power_utils.cc b/ash/public/cpp/power_utils.cc
index 7178cfe..698defb 100644
--- a/ash/public/cpp/power_utils.cc
+++ b/ash/public/cpp/power_utils.cc
@@ -4,6 +4,7 @@
 
 #include "ash/public/cpp/power_utils.h"
 
+#include "base/numerics/safe_conversions.h"
 #include "base/time/time.h"
 #include "chromeos/dbus/power_manager/power_supply_properties.pb.h"
 
@@ -23,7 +24,7 @@
 int GetRoundedBatteryPercent(double battery_percent) {
   // Minimum battery percentage rendered in UI.
   constexpr int kMinBatteryPercent = 1;
-  return std::max(kMinBatteryPercent, static_cast<int>(battery_percent + 0.5));
+  return std::max(kMinBatteryPercent, base::ClampRound(battery_percent));
 }
 
 void SplitTimeIntoHoursAndMinutes(const base::TimeDelta& time,
@@ -31,7 +32,7 @@
                                   int* minutes) {
   DCHECK(hours);
   DCHECK(minutes);
-  const int total_minutes = static_cast<int>(time.InSecondsF() / 60 + 0.5);
+  const int total_minutes = base::ClampRound(time.InSecondsF() / 60);
   *hours = total_minutes / 60;
   *minutes = total_minutes % 60;
 }
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_eu.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_eu.xtb
index 0452396b..433f2911 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_eu.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_eu.xtb
@@ -47,7 +47,7 @@
 <translation id="2488661730534396940">Aktibatu ezkerreko lan-eremua</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2530339807289914946">Egin web-orrian behera</translation>
-<translation id="2530896289327917474">Aktibatu edo desaktibatu tartekatze-ikurraren bidez arakatzeko eginbidea</translation>
+<translation id="2530896289327917474">Aktibatu edo desaktibatu testu-kurtsorearen bidez arakatzeko eginbidea</translation>
 <translation id="2574014812750545982">Berrezarri orriko zoom-maila</translation>
 <translation id="2596078834055697711">Atera leihoaren pantaila-argazkia</translation>
 <translation id="2685170433750953446"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" /> eta, gero, <ph name="TAB" /> edo <ph name="RIGHT" /></translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb
index 5882699..d792c56 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb
@@ -47,7 +47,7 @@
 <translation id="2488661730534396940">ເປີດນຳໃຊ້ພື້ນທີ່ເຮັດວຽກຢູ່ເບື້ອງຊ້າຍ</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2530339807289914946">ເລື່ອນໜ້າເວັບລົງ</translation>
-<translation id="2530896289327917474">ເປີດ ຫຼື ປິດການເອີ້ນເບິ່ງດ້ວຍແປ້ນພິມ</translation>
+<translation id="2530896289327917474">ເປີດ ຫຼື ປິດການຮຽກເບິ່ງດ້ວຍແປ້ນພິມ</translation>
 <translation id="2574014812750545982">ຣີເຊັດລະດັບການຊູມໃນໜ້າ</translation>
 <translation id="2596078834055697711">ຖ່າຍພາບໜ້າຈໍ</translation>
 <translation id="2685170433750953446"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, ຈາກນັ້ນ <ph name="TAB" /> ຫຼື <ph name="RIGHT" /></translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_sw.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_sw.xtb
index 32804ac..186a47c 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_sw.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_sw.xtb
@@ -47,7 +47,7 @@
 <translation id="2488661730534396940">Washa eneokazi katika upande wa kushoto</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2530339807289914946">Sogeza chini ukurasa wa wavuti</translation>
-<translation id="2530896289327917474">Washa au uzime mipangilio ya kuvinjari kwa kutumia kibodi</translation>
+<translation id="2530896289327917474">Washa au uzime mipangilio ya kuvinjari kwa kibodi</translation>
 <translation id="2574014812750545982">Badilisha kiwango cha kukuza ukurasa</translation>
 <translation id="2596078834055697711">Piga picha ya skrini ya dirisha</translation>
 <translation id="2685170433750953446"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, kisha <ph name="TAB" /> au <ph name="RIGHT" /></translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
index 2acc92cf..74e0bf58 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
@@ -47,6 +47,7 @@
 <translation id="2488661730534396940">இடதுபுறத்தில் உள்ள டெஸ்க்கை செயல்படுத்தும்</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2530339807289914946">இணையப் பக்கத்தில் கீழே செல்லும்</translation>
+<translation id="2530896289327917474">சுட்டி உலாவலை இயக்க/முடக்க</translation>
 <translation id="2574014812750545982">பக்கத்தில், இயல்பான அளவிற்குக் காட்சியை மீட்டமைக்கும்</translation>
 <translation id="2596078834055697711">சாளரத்தை ஸ்கிரீன்ஷாட் எடுக்கும்</translation>
 <translation id="2685170433750953446"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, பின்னர் <ph name="TAB" /> அல்லது <ph name="RIGHT" />ஐ அழுத்தவும்</translation>
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index 21ae7e0b..1309bd19 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -507,6 +507,7 @@
 <translation id="6972754398087986839">Kom aan die gang</translation>
 <translation id="6981982820502123353">Toeganklikheid</translation>
 <translation id="698231206551913481">Alle lêers en plaaslike data wat met hierdie gebruiker geassosieer word, sal permanent uitgevee word sodra hierdie gebruiker verwyder word.</translation>
+<translation id="7007983414944123363">Jou PIN of wagwoord kon nie geverifieer word nie. Probeer weer.</translation>
 <translation id="7015766095477679451">Kom terug om <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Koppel jou <ph name="DEVICE_NAME" /> aan jou foon</translation>
 <translation id="7026338066939101231">Verminder</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">Skakel outomatiese klikke af</translation>
 <translation id="7568637526529101738">Met 'n regsklik of langdruk wys Assistent inligting soos die definisie of eenheidomskakeling van jou keuse.</translation>
 <translation id="7569509451529460200">Braille en ChromeVox is geaktiveer</translation>
+<translation id="7579778809502851308">Skermskoot</translation>
 <translation id="7593891976182323525">Search of Shift</translation>
 <translation id="7600875258240007829">Sien alle kennisgewings</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">Terugknoppie</translation>
 <translation id="8843682306134542540">Wissel rotasieslot. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">Jou PIN of wagwoord kon steeds nie geverifieer word nie. Let wel: As jy jou wagwoord onlangs verander het, moet jy jou ou wagwoord gebruik. Jou nuwe wagwoord sal van toepassing wees sodra jy afmeld.</translation>
 <translation id="8870509716567206129">Program steun nie verdeelde skerm nie.</translation>
 <translation id="8874184842967597500">Nie gekoppel nie</translation>
 <translation id="8877788021141246043">Stel 'n onthounota</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 6501efb..fd9f7f0 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">አስጀማሪ መመሪያ</translation>
 <translation id="6981982820502123353">ተደራሽነት</translation>
 <translation id="698231206551913481">አንዴ ይህ ተጠቃሚ ከተወገደ በኋላ ከዚህ ተጠቃሚ ጋር የተጎዳኙ ሁሉም ፋይሎች እና አካባቢያዊ ውሂብ በቋሚነት ይሰረዛሉ።</translation>
+<translation id="7007983414944123363">የእርስዎ ፒን ወይም ይለፍ ቃል ሊረጋገጥ አልቻለም። እንደገና ይሞክሩ።</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> ላይ ተመልሰው ይምጡ።</translation>
 <translation id="7025533177575372252">የእርስዎን <ph name="DEVICE_NAME" /> ከስልክዎ ጋር ያገናኙት</translation>
 <translation id="7026338066939101231">ቅነሳ</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">ራስሰር ጠቅ ማድረጎችን ያጥፉ</translation>
 <translation id="7568637526529101738">በቀኝ ጠቅታ ወይም ረጅም መጫን አማካኝነት ረዳት እርስዎ ለመረጡት እንደ ፍቺ ወይም የአሃድ ልወጣ ያለ መረጃን ያሳያል።</translation>
 <translation id="7569509451529460200">ብሬይል እና ChromeVox ነቅተዋል</translation>
+<translation id="7579778809502851308">የማያ ገጽ ቀረጻ</translation>
 <translation id="7593891976182323525">Search ወይም Shift</translation>
 <translation id="7600875258240007829">ሁሉንም ማሳወቂያዎች ይመልከቱ</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° ፋ</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">የተመለስ አዝራር</translation>
 <translation id="8843682306134542540">የማሽከርከሪያ ቁልፍን አብራ ወይም አጥፋ። <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">የእርስዎ ፒን ወይም ይለፍ ቃል አሁንም ሊረጋገጥ አልቻለም። ማሳሰቢያ፦ በቅርቡ የይለፍ ቃልዎን ከቀየሩ፣ የድሮውን የይለፍ ቃል ይጠቀሙ። አዲስ የይለፍ ቃልዎ የሚተገበረው ሲወጡ ነው።</translation>
 <translation id="8870509716567206129">መተግበሪያው የተከፈለ ማያ ገጽን አይደግፍም።</translation>
 <translation id="8874184842967597500">አልተገናኘም</translation>
 <translation id="8877788021141246043">አስታዋሽ አዘጋጅ</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index fbab0c3..894392e6 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -506,7 +506,7 @@
 <translation id="6972754398087986839">Započnite</translation>
 <translation id="6981982820502123353">Pristupačnost</translation>
 <translation id="698231206551913481">Nakon što se ukloni ovaj korisnik, trajno će se izbrisati svi fajlovi i lokalni podaci povezani s njim.</translation>
-<translation id="7007983414944123363">Vaš PIN ili zaporku nije bilo moguće potvrditi. Pokušajte ponovo.</translation>
+<translation id="7007983414944123363">Potvrđivanje PIN-a ili lozinke nije uspjelo. Pokušajte ponovo.</translation>
 <translation id="7015766095477679451">Vratite se u <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Povežite uređaj <ph name="DEVICE_NAME" /> sa svojim telefonom</translation>
 <translation id="7026338066939101231">Pomak unatrag</translation>
@@ -552,7 +552,7 @@
 <translation id="7568294522609223312">Isključite automatske klikove</translation>
 <translation id="7568637526529101738">Desnim klikom ili dugim pritiskom, Asistent vam prikazuje informacije kao što su definicija ili pretvaranje mjerne jedinice za vaš odabir.</translation>
 <translation id="7569509451529460200">Braillevo pismo i ChromeVox su omogućeni</translation>
-<translation id="7579778809502851308">Snimka zaslona</translation>
+<translation id="7579778809502851308">Snimanje ekrana</translation>
 <translation id="7593891976182323525">Tipka za pretraživanje ili Shift</translation>
 <translation id="7600875258240007829">Prikaži sva obavještenja</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -671,7 +671,7 @@
 <translation id="8841375032071747811">Dugme Nazad</translation>
 <translation id="8843682306134542540">Uključi/isključi zaključavanje rotacije. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
-<translation id="8853703225951107899">Bez obzira na to, vaš PIN ili zaporku nije bilo moguće potvrditi. Napomena: ako ste nedavno promijenili zaporku, upotrijebite staru zaporku. Vaša nova zaporka primijenit će se nakon što se odjavite.</translation>
+<translation id="8853703225951107899">Potvrđivanje PIN-a ili lozinke i dalje nije uspjelo. Napomena: Ako ste nedavno promijenili lozinku, koristite staru. Nova lozinka će se primijeniti nakon što se odjavite.</translation>
 <translation id="8870509716567206129">Aplikacija ne podržava dijeljenje ekrana.</translation>
 <translation id="8874184842967597500">Nije povezano</translation>
 <translation id="8877788021141246043">Postavite podsjetnik</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index efd9187..a95f523b 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Comença</translation>
 <translation id="6981982820502123353">Accessibilitat</translation>
 <translation id="698231206551913481">Tots els fitxers i les dades locals associats amb aquest usuari se suprimiran definitivament quan aquest usuari se suprimeixi.</translation>
+<translation id="7007983414944123363">El PIN o la contrasenya no s'han pogut verificar. Torna-ho a provar.</translation>
 <translation id="7015766095477679451">Pots tornar a aquesta hora: <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Connecta <ph name="DEVICE_NAME" /> al telèfon</translation>
 <translation id="7026338066939101231">Disminueix</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Desactiva els clics automàtics</translation>
 <translation id="7568637526529101738">Si mantens el botó premut o fas clic amb el botó dret en un element, l'Assistent et mostrarà informació com ara la definició o la conversió d'unitats.</translation>
 <translation id="7569509451529460200">S'ha activat el braille i ChromeVox</translation>
+<translation id="7579778809502851308">Captura de pantalla</translation>
 <translation id="7593891976182323525">Cerca o Maj</translation>
 <translation id="7600875258240007829">Mostra totes les notificacions</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" /> °F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Botó Enrere</translation>
 <translation id="8843682306134542540">Activa o desactiva el bloqueig de rotació. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Cerca + Esc</translation>
+<translation id="8853703225951107899">El PIN o la contrasenya continuen sense poder-se verificar. Nota: si fa poc que has canviat la contrasenya, fes servir l'antiga. La contrasenya nova s'aplicarà un cop hagis tancat la sessió.</translation>
 <translation id="8870509716567206129">L'aplicació no admet la pantalla dividida.</translation>
 <translation id="8874184842967597500">No connectada</translation>
 <translation id="8877788021141246043">Estableix un recordatori</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 8991399..0869a02 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -507,6 +507,7 @@
 <translation id="6972754398087986839">Kom godt i gang</translation>
 <translation id="6981982820502123353">Hjælpefunktioner</translation>
 <translation id="698231206551913481">Alle filer og lokale data, der er knyttet til denne bruger, slettes permanent, når brugeren fjernes.</translation>
+<translation id="7007983414944123363">Din pin- eller adgangskode kunne ikke bekræftes. Prøv igen.</translation>
 <translation id="7015766095477679451">Vend tilbage kl. <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Slut <ph name="DEVICE_NAME" /> til din telefon</translation>
 <translation id="7026338066939101231">Reducer</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">Deaktiver automatiske klik</translation>
 <translation id="7568637526529101738">Når du højreklikker eller bruger langt tryk, viser Google Assistent dig oplysninger som f.eks. definitionen eller enhedskonverteringen for dit valg.</translation>
 <translation id="7569509451529460200">Braille og ChromeVox er aktiveret</translation>
+<translation id="7579778809502851308">Screenshot</translation>
 <translation id="7593891976182323525">Søg eller Shift</translation>
 <translation id="7600875258240007829">Se alle notifikationer</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">Knappen Tilbage</translation>
 <translation id="8843682306134542540">Slå Lås rotation til eller fra. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Søg+Esc</translation>
+<translation id="8853703225951107899">Din pin- eller adgangskode kan stadig ikke bekræftes. Bemærk! Hvis du har ændret din adgangskode for nylig, skal du bruge din gamle adgangskode. Den nye adgangskode anvendes, når du har logget ud.</translation>
 <translation id="8870509716567206129">Appen understøtter ikke opdelt skærm.</translation>
 <translation id="8874184842967597500">Ikke forbundet</translation>
 <translation id="8877788021141246043">Opret en påmindelse</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index 0c4a330..6ce54e14 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">شروع به کار</translation>
 <translation id="6981982820502123353">قابلیت دسترسی</translation>
 <translation id="698231206551913481">اگر کاربر حذف شود، همه فایل‌ها و داده‌های محلی مربوط به او به‌طور دائم حذف خواهند شد.</translation>
+<translation id="7007983414944123363">نمی‌توان پین یا گذرواژه را تأیید کرد. دوباره امتحان کنید.</translation>
 <translation id="7015766095477679451">ساعت <ph name="COME_BACK_TIME" /> دوباره برگردید.</translation>
 <translation id="7025533177575372252"><ph name="DEVICE_NAME" /> را به تلفنتان متصل کنید</translation>
 <translation id="7026338066939101231">کاهش</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">خاموش کردن کلیک‌های خودکار</translation>
 <translation id="7568637526529101738">با کلیک راست یا فشار طولانی، «دستیار» اطلاعاتی ازقبیل معنی واژه یا تبدیل واحد انتخاب‌شده را نمایش می‌دهد.</translation>
 <translation id="7569509451529460200">‏بریل و ChromeVox فعال هستند</translation>
+<translation id="7579778809502851308">ضبط صفحه‌نمایش</translation>
 <translation id="7593891976182323525">‏جستجو یا Shift</translation>
 <translation id="7600875258240007829">دیدن همه اعلان‌ها</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" /> درجه فارنهایت</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">دکمه برگشت</translation>
 <translation id="8843682306134542540">تغییر وضعیت قفل چرخش. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">همچنان نمی‌توان پین یا گذرواژه را تأیید کرد. توجه: اگر اخیراً گذرواژه‌تان را تغییر داده‌اید، از گذرواژه قدیمی‌تان استفاده کنید. گذرواژه جدیدتان بعد از خروج شما از سیستم اعمال می‌شود.</translation>
 <translation id="8870509716567206129">برنامه از تقسیم صفحه پشتیبانی نمی‌کند.</translation>
 <translation id="8874184842967597500">متصل نیست</translation>
 <translation id="8877788021141246043">‏Set a reminder (یادآوری تنظیم کن)</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb
index 92cc8dd..02e3f603 100644
--- a/ash/strings/ash_strings_gl.xtb
+++ b/ash/strings/ash_strings_gl.xtb
@@ -507,6 +507,7 @@
 <translation id="6972754398087986839">Introdución</translation>
 <translation id="6981982820502123353">Accesibilidade</translation>
 <translation id="698231206551913481">En canto se borre este usuario, eliminaranse permanentemente os ficheiros e os datos locais asociados con el.</translation>
+<translation id="7007983414944123363">Non se puido verificar o teu PIN ou contrasinal. Téntao de novo.</translation>
 <translation id="7015766095477679451">Volve á seguinte hora: <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Conecta o <ph name="DEVICE_NAME" /> co teu teléfono</translation>
 <translation id="7026338066939101231">Reducir</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">Desactivar clics automáticos</translation>
 <translation id="7568637526529101738">Se fas clic co botón dereito ou realizas unha pulsación longa, o Asistente móstrache información como a definición ou a conversión de unidades relacionada coa túa selección.</translation>
 <translation id="7569509451529460200">Activouse o braille e ChromeVox</translation>
+<translation id="7579778809502851308">Captura de pantalla</translation>
 <translation id="7593891976182323525">Busca ou Maiús</translation>
 <translation id="7600875258240007829">Ver todas as notificacións</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" /> °F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">Botón Atrás</translation>
 <translation id="8843682306134542540">Activar/desactivar o bloqueo de rotación. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Busca+Esc</translation>
+<translation id="8853703225951107899">Aínda non se puido verificar o teu PIN ou contrasinal. Nota: Se cambiaches o contrasinal recentemente, utiliza o antigo. O contrasinal novo aplicarase en canto peches sesión.</translation>
 <translation id="8870509716567206129">A aplicación non é compatible coa función de pantalla dividida.</translation>
 <translation id="8874184842967597500">Non conectada</translation>
 <translation id="8877788021141246043">Definir un recordatorio</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 49014cfa..7616b6b 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -507,6 +507,7 @@
 <translation id="6972754398087986839">Első lépések</translation>
 <translation id="6981982820502123353">Kisegítő opciók</translation>
 <translation id="698231206551913481">A felhasználó eltávolításakor az összes hozzá tartozó fájl és helyi adat is véglegesen törlődik.</translation>
+<translation id="7007983414944123363">PIN-kódjának vagy jelszavának ellenőrzése nem sikerült. Próbálja újra.</translation>
 <translation id="7015766095477679451">Térjen vissza ekkor: <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">A(z) <ph name="DEVICE_NAME" /> eszköz csatlakoztatása a telefonjával</translation>
 <translation id="7026338066939101231">Csökkentés</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">Automatikus kattintások kikapcsolása</translation>
 <translation id="7568637526529101738">Jobb kattintással vagy nyomva tartással információkat kérhet Segédjétől (például definíciót a szavakhoz vagy átváltást a mértékegységekhez).</translation>
 <translation id="7569509451529460200">Braille és ChromeVox bekapcsolva</translation>
+<translation id="7579778809502851308">Képernyőfelvétel</translation>
 <translation id="7593891976182323525">Keresés vagy Shift</translation>
 <translation id="7600875258240007829">Összes értesítés megtekintése</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />°F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">Vissza gomb</translation>
 <translation id="8843682306134542540">Váltás a forgatás zárolásának állapotai közt. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Keresés+Esc</translation>
+<translation id="8853703225951107899">PIN-kódjának vagy jelszavának ellenőrzése még mindig nem sikerült. Megjegyzés: Ha nemrég módosította jelszavát, akkor használja a régit. Az új jelszó beállítása a kijelentkezés után lép érvénybe.</translation>
 <translation id="8870509716567206129">Az alkalmazás nem támogatja az osztott képernyős nézetet.</translation>
 <translation id="8874184842967597500">Nincs csatl.</translation>
 <translation id="8877788021141246043">Emlékeztető beállítása</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index 2517e0a..442cb828 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Byrja</translation>
 <translation id="6981982820502123353">Aðgengi</translation>
 <translation id="698231206551913481">Öllum skrám og staðbundnum gögnum sem tengjast notandanum verður varanlega eytt þegar notandinn er fjarlægður.</translation>
+<translation id="7007983414944123363">Ekki tókst að staðfesta PIN-númerið eða aðgangsorðið. Reyndu aftur.</translation>
 <translation id="7015766095477679451">Komdu aftur klukkan <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Tengdu <ph name="DEVICE_NAME" /> við símann þinn</translation>
 <translation id="7026338066939101231">Minnka</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Slökkva á sjálfvirkum smellum</translation>
 <translation id="7568637526529101738">Þegar þú hægrismellir eða heldur inni sýnir hjálparinn þér upplýsingar á borð við skilgreiningu eða umbreytingu mælieingina fyrir valið þitt.</translation>
 <translation id="7569509451529460200">Kveikt á blindraletri og ChromeVox</translation>
+<translation id="7579778809502851308">Skjámyndataka</translation>
 <translation id="7593891976182323525">Leit eða Shift</translation>
 <translation id="7600875258240007829">Sjá allar tilkynningar</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Bakkhnappur</translation>
 <translation id="8843682306134542540">Víxla snúningslás. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">Enn tókst ekki að staðfesta PIN-númerið eða aðgangsorðið. Athugaðu: Ef þú skiptir nýlega um aðgangsorð skaltu nota gamla aðgangsorðið. Nýja aðgangsorðið tekur gildi þegar þú hefur skráð þig út.</translation>
 <translation id="8870509716567206129">Forritið styður ekki að skjánum sé skipt.</translation>
 <translation id="8874184842967597500">Ekki tengt</translation>
 <translation id="8877788021141246043">Stilla áminningu</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 85092c34..51f292be 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -507,6 +507,7 @@
 <translation id="6972754398087986839">ಪ್ರಾರಂಭಗೊಂಡಿದೆ</translation>
 <translation id="6981982820502123353">ಪ್ರವೇಶ</translation>
 <translation id="698231206551913481">ಒಮ್ಮೆ ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಿದಾಗ ಈ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ.</translation>
+<translation id="7007983414944123363">ನಿಮ್ಮ ಪಿನ್ ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> ಸಮಯಕ್ಕೆ ಹಿಂತಿರುಗಿ</translation>
 <translation id="7025533177575372252">ನಿಮ್ಮ ಫೋನ್ ಮೂಲಕ ನಿಮ್ಮ <ph name="DEVICE_NAME" /> ಸಾಧನವನ್ನು ಸಂಪರ್ಕಿಸಿ</translation>
 <translation id="7026338066939101231">ಇಳಿಕೆ</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">ಸ್ವಯಂಚಾಲಿತ ಕ್ಲಿಕ್‌ಗಳನ್ನು ಆಫ್ ಮಾಡಿ</translation>
 <translation id="7568637526529101738">ಬಲ-ಕ್ಲಿಕ್ ಅಥವಾ ಲಾಂಗ್ ಪ್ರೆಸ್ ಮಾಡಿ, ಆಗ Assistant ನಿಮಗೆ ಬೇಕಾದ ವ್ಯಾಖ್ಯಾನ ಅಥವಾ ಯೂನಿಟ್ ಪರಿವರ್ತನೆಗಳಂತಹ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸುತ್ತದೆ.</translation>
 <translation id="7569509451529460200">ಬ್ರೈಲ್ ಹಾಗೂ ChromeVox ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
+<translation id="7579778809502851308">ಸ್ಕ್ರೀನ್ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ</translation>
 <translation id="7593891976182323525">ಹುಡುಕಾಟ ಅಥವಾ Shift</translation>
 <translation id="7600875258240007829">ಎಲ್ಲಾ ಅಧಿಸೂಚನೆಗಳನ್ನು ನೋಡಿ</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">ಹಿಂದೆ ಬಟನ್</translation>
 <translation id="8843682306134542540">ಪರದೆ ತಿರುಗಿಸುವಿಕೆಯ ಲಾಕ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">ಹುಡುಕಾಟ+Esc</translation>
+<translation id="8853703225951107899">ನಿಮ್ಮ ಪಿನ್ ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಇನ್ನೂ ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಗಮನಿಸಿ: ನೀವು ಇತ್ತೀಚೆಗೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಿದ್ದರೆ, ನಿಮ್ಮ ಹಳೆಯ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಳಸಿ. ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡಿದ ನಂತರ ನಿಮ್ಮ ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="8870509716567206129">ಅಪ್ಲಿಕೇಶನ್ ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="8874184842967597500">ಕನೆಕ್ಟ್ ಆಗಿಲ್ಲ</translation>
 <translation id="8877788021141246043">ಜ್ಞಾಪನೆಯನ್ನು ಹೊಂದಿಸಿ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 58902889..6653c06 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Darbo pradžia</translation>
 <translation id="6981982820502123353">Pritaikymas neįgaliesiems</translation>
 <translation id="698231206551913481">Visi failai ir su šiuo naudotoju susiję duomenys bus ištrinti visam laikui, kai šis naudotojas bus pašalintas.</translation>
+<translation id="7007983414944123363">Nepavyko patvirtinti PIN kodo arba slaptažodžio. Bandykite dar kartą.</translation>
 <translation id="7015766095477679451">Grįžkite <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Susiekite „<ph name="DEVICE_NAME" />“ įrenginį su telefonu</translation>
 <translation id="7026338066939101231">Sumažinti</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Išjungti automatinius paspaudimus</translation>
 <translation id="7568637526529101738">Spustelėjus dešiniuoju pelės klavišu ar ilgai paspaudus, Padėjėjas rodo informaciją, pvz., apibrėžtį ar matavimo vienetų konvertavimą, kad galėtumėte pasirinkti.</translation>
 <translation id="7569509451529460200">Brailio rašmenys ir „ChromeVox“ įgalinti</translation>
+<translation id="7579778809502851308">Ekrano fiksavimas</translation>
 <translation id="7593891976182323525">Paieškos arba antrojo lygio klavišas</translation>
 <translation id="7600875258240007829">Žr. visus pranešimus</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" /> °F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Mygtukas „Atgal“</translation>
 <translation id="8843682306134542540">Perjungti pasukimo užrakinimą. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Paieškos klavišas + „Esc“</translation>
+<translation id="8853703225951107899">Vis tiek nepavyko patvirtinti PIN kodo arba slaptažodžio. Pastaba: jei neseniai pakeitėte slaptažodį, naudokite senąjį. Naujas slaptažodis bus pritaikytas atsijungus.</translation>
 <translation id="8870509716567206129">Programoje nepalaikomas skaidytas ekranas.</translation>
 <translation id="8874184842967597500">Neprisijungta</translation>
 <translation id="8877788021141246043">„Set a reminder“ (Nustatyk priminimą)</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index 7448556..4816199 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Sākt darbu</translation>
 <translation id="6981982820502123353">Pieejamība</translation>
 <translation id="698231206551913481">Visi faili un lokālie dati, kas ir saistīti ar šo lietotāju, tiks neatgriezeniski dzēsti, tiklīdz šis lietotājs tiks noņemts.</translation>
+<translation id="7007983414944123363">Nevarēja verificēt jūsu PIN vai paroli. Mēģiniet vēlreiz.</translation>
 <translation id="7015766095477679451">Atgriezieties plkst. <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Savienojiet ierīci <ph name="DEVICE_NAME" /> ar tālruni</translation>
 <translation id="7026338066939101231">Samazināt</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Izslēgt automātiskos klikšķus</translation>
 <translation id="7568637526529101738">Ja noklikšķināsiet uz satura ar peles labo pogu vai nospiedīsiet un turēsiet saturu, Asistents parādīs ar atlasi saistītu informāciju, piemēram, definīciju vai citās mērvienībās izteiktu vērtību.</translation>
 <translation id="7569509451529460200">Braila raksts un ChromeVox ir iespējoti</translation>
+<translation id="7579778809502851308">Veidot ekrānuzņēmumu</translation>
 <translation id="7593891976182323525">Meklēt vai Shift</translation>
 <translation id="7600875258240007829">Skatīt visus paziņojumus</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Poga Atpakaļ</translation>
 <translation id="8843682306134542540">Pārslēgt pagriešanas bloķēšanu. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">Joprojām nevarēja verificēt jūsu PIN vai paroli. Piezīme. Ja nesen mainījāt paroli, izmantojiet iepriekšējo paroli. Jaunā parole tiks lietota pēc izrakstīšanās.</translation>
 <translation id="8870509716567206129">Lietotnē netiek atbalstīta ekrāna sadalīšana.</translation>
 <translation id="8874184842967597500">Savienojums nav izveidots</translation>
 <translation id="8877788021141246043">Iestatīt atgādinājumu</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb
index 2a4fc4f..f14978c 100644
--- a/ash/strings/ash_strings_mk.xtb
+++ b/ash/strings/ash_strings_mk.xtb
@@ -507,6 +507,7 @@
 <translation id="6972754398087986839">Започни</translation>
 <translation id="6981982820502123353">Пристапност</translation>
 <translation id="698231206551913481">Сите датотеки и локални податоци што се поврзани со корисников трајно ќе се избришат по неговото отстранување.</translation>
+<translation id="7007983414944123363">Не можеше да се потврди PIN-кодот или лозинката. Обидете се повторно.</translation>
 <translation id="7015766095477679451">Вратете се во <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Поврзете го вашиот <ph name="DEVICE_NAME" /> со телефонот</translation>
 <translation id="7026338066939101231">Намалување</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">Исклучете ги автоматските кликови</translation>
 <translation id="7568637526529101738">Со кликнување со десното копче или со долго притискање, „Помошникот“ ви прикажува информации, како што се дефиниција или конверзија на единиците за вашиот избор.</translation>
 <translation id="7569509451529460200">Брајовото писмо и ChromeVox се овозможени</translation>
+<translation id="7579778809502851308">Снимање на екранот</translation>
 <translation id="7593891976182323525">Search или Shift</translation>
 <translation id="7600875258240007829">Видете ги сите известувања</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">Копче за назад</translation>
 <translation id="8843682306134542540">Заклучи/отклучи ротација. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Пребарај+Esc</translation>
+<translation id="8853703225951107899">Сѐ уште не може да се потврди PIN-кодот или лозинката. Забелешка: ако неодамна сте ја промениле лозинката, користете ја вашата стара лозинка. Новата лозинка ќе се примени откако ќе се одјавите.</translation>
 <translation id="8870509716567206129">Апликацијата не поддржува поделен екран.</translation>
 <translation id="8874184842967597500">Не е поврзано</translation>
 <translation id="8877788021141246043">Потсетник</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 364a36b..940312c0 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">ആരംഭിക്കാം</translation>
 <translation id="6981982820502123353">ഉപയോഗസഹായി</translation>
 <translation id="698231206551913481">ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുമ്പോൾ അതോടൊപ്പം അയാളുമായി ബന്ധപ്പെട്ട എല്ലാ ഫയലുകളും പ്രാദേശിക വിവരങ്ങളും ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും.</translation>
+<translation id="7007983414944123363">നിങ്ങളുടെ പിൻ അല്ലെങ്കിൽ പാസ്‌വേഡ് പരിശോധിച്ചുറപ്പിക്കാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" />-ന് തിരികെ വരിക.</translation>
 <translation id="7025533177575372252">നിങ്ങളുടെ ഫോണുമായി <ph name="DEVICE_NAME" /> കണക്‌റ്റ് ചെയ്യുക</translation>
 <translation id="7026338066939101231">കുറവ്</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">സ്വയമേവയുള്ള ക്ലിക്കുകൾ ഓഫാക്കുക</translation>
 <translation id="7568637526529101738">വലത്-ക്ലിക്ക് ചെയ്‌തോ ദീർഘനേരം അമർത്തിയോ, നിങ്ങളുടെ തിരഞ്ഞെടുപ്പിനുള്ള നിർവചനമോ യൂണിറ്റ് പരിവര്‍ത്തനമോ പോലുള്ള വിവരങ്ങൾ Assistant കാണിക്കുന്നു.</translation>
 <translation id="7569509451529460200">Braille, ChromeVox എന്നിവ പ്രവർത്തനക്ഷമമാക്കി</translation>
+<translation id="7579778809502851308">സ്‌ക്രീൻ ക്യാപ്‌ചർ</translation>
 <translation id="7593891976182323525">തിരയൽ അല്ലെങ്കിൽ Shift</translation>
 <translation id="7600875258240007829">എല്ലാ അറിയിപ്പുകളും കാണുക</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">ബാക്ക് ബട്ടൺ</translation>
 <translation id="8843682306134542540">റൊട്ടേഷൻ ലോക്ക് മാറ്റുക. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">തിരയൽ+Esc</translation>
+<translation id="8853703225951107899">നിങ്ങളുടെ പിൻ അല്ലെങ്കിൽ പാസ്‌വേഡ് ഇപ്പോഴും പരിശോധിച്ചുറപ്പിക്കാനായില്ല. ശ്രദ്ധിക്കുക: നിങ്ങൾ അടുത്തിടെ പാസ്‌വേഡ് മാറ്റിയിട്ടുണ്ടെങ്കിൽ, നിങ്ങളുടെ പഴയ പാസ്‌വേഡ് ഉപയോഗിക്കുക. സൈൻ ഔട്ട് ചെയ്‌തുകഴിഞ്ഞാൽ നിങ്ങളുടെ പുതിയ പാസ്‍വേഡ് ബാധകമാകും.</translation>
 <translation id="8870509716567206129">സ്പ്ലിറ്റ്-സ്ക്രീനിനെ ആപ്പ് പിന്തുണയ്ക്കുന്നില്ല.</translation>
 <translation id="8874184842967597500">കണക്റ്റല്ല</translation>
 <translation id="8877788021141246043">ഒരു റിമൈൻഡർ സജ്ജീകരിക്കുക</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index fbee67d..c66bcaf5 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">प्रारंभ करा</translation>
 <translation id="6981982820502123353">ॲक्सेसिबिलिटी</translation>
 <translation id="698231206551913481">एकदा हा वापरकर्ता काढल्यानंतर या वापरकर्त्याशी संबद्ध सर्व फाइल आणि स्थानिक डेटा कायमचा हटवला जाईल.</translation>
+<translation id="7007983414944123363">तुमच्या पिन किंवा पासवर्डची पडताळणी करता आली नाही. पुन्हा प्रयत्न करा.</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> वाजता परत या.</translation>
 <translation id="7025533177575372252">तुमचे <ph name="DEVICE_NAME" /> तुमच्या फोनशी कनेक्ट करा</translation>
 <translation id="7026338066939101231">घट</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">ऑटोमेटिक क्लिक बंद करा</translation>
 <translation id="7568637526529101738">राइट क्लिक केल्याने किंवा दाबून ठेवल्याने, Assistant तुम्हाला व्याख्या किंवा तुमच्या निवडीसाठी एकक रूपांतर यांसारखी माहिती दाखवतो.</translation>
 <translation id="7569509451529460200">ब्रेल आणि ChromeVox सुरू केलेले आहेत</translation>
+<translation id="7579778809502851308">स्‍क्रीन कॅप्‍चर</translation>
 <translation id="7593891976182323525">Search किंवा Shift</translation>
 <translation id="7600875258240007829">सर्व सूचना पहा</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° फॅ</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">मागे जा बटण</translation>
 <translation id="8843682306134542540">रोटेशन लॉक टॉगल करा. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">तुमच्या पिन किंवा पासवर्डची अद्याप पडताळणी करता आली नाही. टीप: तुम्ही अलीकडेच तुमच्या पासवर्ड बदलला असल्यास, तुमचा जुना पासवर्ड वापरा. तुम्ही साइन आउट केल्यानंतर तुमचा नवीन पासवर्ड लागू केला जाईल.</translation>
 <translation id="8870509716567206129">ॲप विभाजित-स्क्रीनला सपोर्ट करत नाही.</translation>
 <translation id="8874184842967597500">कनेक्ट नाही</translation>
 <translation id="8877788021141246043">रिमाइंडर सेट करा</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 064a198c..8d40ee0 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">စကြရအောင်</translation>
 <translation id="6981982820502123353">ရယူအသုံးချနိုင်မှု</translation>
 <translation id="698231206551913481">ဤအသုံးပြုသူကို ဖယ်ရှားလိုက်သည်နှင့် ၎င်းနှင့်ဆက်စပ်နေသော ဖိုင်များနှင့် စက်တွင်းဒေတာများအားလုံး အပြီးတိုင် ပျက်သွားလိမ့်မည်။</translation>
+<translation id="7007983414944123363">သင့်ပင်နံပါတ် သို့မဟုတ် စကားဝှက်ကို စစ်ဆေး၍မရနိုင်သေးပါ။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> ၌ ပြန်လာပါ။</translation>
 <translation id="7025533177575372252">သင်၏ <ph name="DEVICE_NAME" /> ကို သင့်ဖုန်းဖြင့် ချိတ်ဆက်ပါ</translation>
 <translation id="7026338066939101231">လျှော့ခြင်း</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">အလိုအလျောက် နှိပ်ခြင်းကို ပိတ်ခြင်း</translation>
 <translation id="7568637526529101738">ညာဘက်မောက်စ်ခလုတ်ကို နှိပ်လျှင် သို့မဟုတ် ကြာရှည်စွာဖိထားလျှင် သင်ရွေးထားသည့်အရာများအတွက် အဓိပ္ပာယ်ဖွင့်ဆိုချက် (သို့) ယူနစ်ပြောင်းလဲခြင်း ကဲ့သို့သော အချက်အလက်များကို Assistant က ပြသည်။</translation>
 <translation id="7569509451529460200">မျက်မမြင်စာ နှင့် ChromeVox ကို ဖွင့်ထားပါသည်</translation>
+<translation id="7579778809502851308">မျက်နှာပြင် ပုံဖမ်းမှု</translation>
 <translation id="7593891976182323525">ရှာဖွေမည် သို့မဟုတ် ပြောင်းလဲမည်</translation>
 <translation id="7600875258240007829">အကြောင်းကြားချက်အားလုံးကို ကြည့်ရန်</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">နောက်သို့ပြန်သည့် ခလုတ်</translation>
 <translation id="8843682306134542540">လှည့်ခြင်းလော့ခ် ခလုတ်။ <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">ရှာဖွေမှု+Esc</translation>
+<translation id="8853703225951107899">သင့်ပင်နံပါတ် သို့မဟုတ် စကားဝှက်ကို စစ်ဆေး၍မရနိုင်သေးပါ။ မှတ်ချက် - လတ်တလောတွင် သင့်စကားဝှက်ကို ပြောင်းထားပါက စကားဝှက်အဟောင်းကို သုံးပါ။ ထွက်ပြီးသည့်အခါ စကားဝှက်အသစ်ကို အသုံးပြုပါမည်။</translation>
 <translation id="8870509716567206129">အက်ပ်သည် မျက်နှာပြင်ခွဲပြခြင်းကို ပံ့ပိုးမထားပါ။</translation>
 <translation id="8874184842967597500">ချိတ်ဆက် မထား</translation>
 <translation id="8877788021141246043">သတိပေးချက် သတ်မှတ်ပါ</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index ca78a5a0..c8913ec 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Aan de slag</translation>
 <translation id="6981982820502123353">Toegankelijkheid</translation>
 <translation id="698231206551913481">Alle bestanden en lokale gegevens die zijn gekoppeld aan deze gebruiker, worden definitief verwijderd zodra deze gebruiker is verwijderd.</translation>
+<translation id="7007983414944123363">Je pincode of wachtwoord kan niet worden geverifieerd. Probeer het opnieuw.</translation>
 <translation id="7015766095477679451">Kom terug om <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Koppel je <ph name="DEVICE_NAME" /> aan je telefoon</translation>
 <translation id="7026338066939101231">Lager</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Automatische klikken uitschakelen</translation>
 <translation id="7568637526529101738">Door met de rechtermuisknop te klikken of de selectie lang ingedrukt te houden, kan de Assistent informatie laten zien zoals de definitie of eenheidsconversie voor je selectie.</translation>
 <translation id="7569509451529460200">Braille en ChromeVox zijn ingeschakeld</translation>
+<translation id="7579778809502851308">Schermopname</translation>
 <translation id="7593891976182323525">Zoeken of Shift</translation>
 <translation id="7600875258240007829">Alle meldingen bekijken</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Knop Terug</translation>
 <translation id="8843682306134542540">Draaivergrendeling schakelen. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Zoeken+Esc</translation>
+<translation id="8853703225951107899">Je pincode of wachtwoord kan nog steeds niet worden geverifieerd. Opmerking: Als je onlangs je wachtwoord hebt gewijzigd, gebruik je je oude wachtwoord. Je nieuwe wachtwoord wordt toegepast zodra je uitlogt.</translation>
 <translation id="8870509716567206129">App biedt geen ondersteuning voor gesplitst scherm.</translation>
 <translation id="8874184842967597500">Niet verbonden</translation>
 <translation id="8877788021141246043">Stel een herinnering in</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index 199bf10..bd2d4ec 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">ਸ਼ੁਰੂ ਕੀਤਾ</translation>
 <translation id="6981982820502123353">ਪਹੁੰਚਯੋਗਤਾ</translation>
 <translation id="698231206551913481">ਇਸ ਵਰਤੋਂਕਾਰ ਦੇ ਹਟਾਏ ਜਾਣ ਤੋਂ ਬਾਅਦ ਇਸ ਵਰਤੋਂਕਾਰ ਨਾਲ ਸਬੰਧਿਤ ਸਾਰੀਆਂ ਫ਼ਾਈਲਾਂ ਅਤੇ ਸਥਾਨਕ ਡਾਟੇ ਨੂੰ ਸਥਾਈ ਤੌਰ 'ਤੇ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।</translation>
+<translation id="7007983414944123363">ਤੁਹਾਡੇ ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਨੂੰ ਪੁਸ਼ਟੀਕਿਰਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> ਵਜੇ ਡੀਵਾਈਸ ਦੁਬਾਰਾ ਵਰਤੋ।</translation>
 <translation id="7025533177575372252">ਆਪਣੇ ਫ਼ੋਨ ਨਾਲ ਆਪਣੇ <ph name="DEVICE_NAME" /> ਨੂੰ ਕਨੈਕਟ ਕਰੋ</translation>
 <translation id="7026338066939101231">ਘਟਾਓ</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">ਸਵੈਚਲਿਤ ਕਲਿੱਕਾਂ ਨੂੰ ਬੰਦ ਕਰੋ</translation>
 <translation id="7568637526529101738">ਸੱਜੇ-ਕਲਿੱਕ ਜਾਂ ਦਬਾਈ ਰੱਖਣ ਨਾਲ, Assistant ਤੁਹਾਡੀ ਚੋਣ ਲਈ ਪਰਿਭਾਸ਼ਾ ਜਾਂ ਇਕਾਈ ਰੂਪਾਂਤਰਨ ਵਰਗੀ ਜਾਣਕਾਰੀ ਦਿਖਾਉਂਦੀ ਹੈ।</translation>
 <translation id="7569509451529460200">ਬ੍ਰੇਲ ਅਤੇ ChromeVox ਯੋਗ ਬਣਾਏ ਗਏ ਹਨ</translation>
+<translation id="7579778809502851308">ਸਕ੍ਰੀਨ ਕੈਪਚਰ ਕਰੋ</translation>
 <translation id="7593891976182323525">Search ਜਾਂ Shift</translation>
 <translation id="7600875258240007829">ਸਾਰੀਆਂ ਸੂਚਨਾਵਾਂ ਦੇਖੋ</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">'ਪਿੱਛੇ' ਬਟਨ</translation>
 <translation id="8843682306134542540">ਘੁਮਾਅ ਸੰਬੰਧੀ ਲਾਕ ਨੂੰ ਟੌਗਲ ਕਰੋ। <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">ਤੁਹਾਡੇ ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਨੂੰ ਹਾਲੇ ਵੀ ਪੁਸ਼ਟੀਕਿਰਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਨੋਟ ਕਰੋ: ਜੇ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲਿਆ ਹੈ, ਤਾਂ ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਵਰਤੋ। ਇੱਕ ਵਾਰ ਸਾਈਨ-ਆਊਟ ਕਰਨ 'ਤੇ ਤੁਹਾਡਾ ਨਵਾਂ ਪਾਸਵਰਡ ਲਾਗੂ ਕੀਤਾ ਜਾਵੇਗਾ।</translation>
 <translation id="8870509716567206129">ਐਪ ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ।</translation>
 <translation id="8874184842967597500">ਕਨੈਕਟ ਨਹੀਂ ਹੈ</translation>
 <translation id="8877788021141246043">ਕੋਈ ਯਾਦ-ਸੂਚਨਾ ਸੈੱਟ ਕਰੋ</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index b26e0fff..1e52bde 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -507,6 +507,7 @@
 <translation id="6972754398087986839">Primeiros passos</translation>
 <translation id="6981982820502123353">Acessibilidade</translation>
 <translation id="698231206551913481">Todos os arquivos e dados locais associados a este usuário serão excluídos permanentemente quando o usuário for removido.</translation>
+<translation id="7007983414944123363">Não foi possível verificar seu PIN ou sua senha. Tente novamente.</translation>
 <translation id="7015766095477679451">Volte às <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Conecte seu <ph name="DEVICE_NAME" /> ao smartphone</translation>
 <translation id="7026338066939101231">Reduzir</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">Desativar cliques automáticos</translation>
 <translation id="7568637526529101738">Quando você clica com o botão direito do mouse ou toca na tela e a mantém pressionada, o Assistente mostra informações como a definição ou a conversão de unidades da sua seleção.</translation>
 <translation id="7569509451529460200">Braille e ChromeVox estão ativados</translation>
+<translation id="7579778809502851308">Captura de tela</translation>
 <translation id="7593891976182323525">Pesquisar ou Shift</translation>
 <translation id="7600875258240007829">Ver todas as notificações</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" /> °F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">Botão "Voltar"</translation>
 <translation id="8843682306134542540">Alternar bloqueio de rotação. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Pesquisa+Esc</translation>
+<translation id="8853703225951107899">Ainda não foi possível verificar seu PIN ou sua senha. Observação: se você mudou a senha recentemente, use a senha antiga. A nova senha será aplicada depois que você sair.</translation>
 <translation id="8870509716567206129">O app não é compatível com a divisão de tela.</translation>
 <translation id="8874184842967597500">Não conectado</translation>
 <translation id="8877788021141246043">Definir um lembrete</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index 00d4515..e027d3d 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Começar</translation>
 <translation id="6981982820502123353">Acessibilidade</translation>
 <translation id="698231206551913481">Todos os ficheiros e dados locais associados a este utilizador são permanentemente eliminados assim que este utilizador é removido.</translation>
+<translation id="7007983414944123363">Não foi possível validar o seu PIN ou palavra-passe. Tente novamente.</translation>
 <translation id="7015766095477679451">Volte à(s) <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Ligue o dispositivo <ph name="DEVICE_NAME" /> ao telemóvel.</translation>
 <translation id="7026338066939101231">Diminuir</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Desative os cliques automáticos</translation>
 <translation id="7568637526529101738">Ao clicar com o botão direito do rato ou ao manter o botão premido, o Assistente mostra-lhe informações como a definição ou a conversão de unidades para a sua seleção.</translation>
 <translation id="7569509451529460200">O braille e o ChromeVox estão ativados</translation>
+<translation id="7579778809502851308">Captura de ecrã</translation>
 <translation id="7593891976182323525">Pesquisar ou Shift</translation>
 <translation id="7600875258240007829">Ver todas as notificações</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" /> °F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Botão Anterior</translation>
 <translation id="8843682306134542540">Ativar/desativar bloqueio de rotação. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Pesquisa+Esc</translation>
+<translation id="8853703225951107899">Ainda não foi possível validar o seu PIN ou palavra-passe. Nota: se alterou a sua palavra-passe recentemente, utilize a palavra-passe antiga. A nova palavra-passe será aplicada quando terminar sessão.</translation>
 <translation id="8870509716567206129">A aplicação não é compatível com o ecrã dividido.</translation>
 <translation id="8874184842967597500">Sem ligação</translation>
 <translation id="8877788021141246043">Definir um lembrete</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 3759c33..ce60dd6 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Anza</translation>
 <translation id="6981982820502123353">Ufikivu</translation>
 <translation id="698231206551913481">Faili na data zote zilizo kwenye kifaa zinazohusishwa na mtumiaji zitafutwa kabisa pindi tu mtumiaji huyu atakapoondolewa.</translation>
+<translation id="7007983414944123363">Imeshindwa kuthibitisha PIN au nenosiri lako. Jaribu tena.</translation>
 <translation id="7015766095477679451">Rejea saa <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Unganisha <ph name="DEVICE_NAME" /> na simu yako</translation>
 <translation id="7026338066939101231">Punguzo</translation>
@@ -552,6 +553,7 @@
 <translation id="7568294522609223312">Zima mibofyo ya kiotomatiki</translation>
 <translation id="7568637526529101738">Ukibofya kulia au kubonyeza kwa muda mrefu, programu ya Mratibu itaonyesha maelezo kama vile ufafanuzi au ubadilishaji wa kipimo cha chaguo lako.</translation>
 <translation id="7569509451529460200">Breli na ChromeVox zimewashwa</translation>
+<translation id="7579778809502851308">Kurekodi skrini</translation>
 <translation id="7593891976182323525">Utafutaji au Hama</translation>
 <translation id="7600875258240007829">Angalia arifa zote</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -670,6 +672,7 @@
 <translation id="8841375032071747811">Kitufe cha Nyuma</translation>
 <translation id="8843682306134542540">Washa au uzime hali ya kufunga kwa kuzungusha. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">Bado imeshindwa kuthibitisha PIN au nenosiri lako. Kumbuka: Iwapo ulibadilisha nenosiri lako hivi majuzi, tumia nenosiri lako la awali. Nenosiri lako jipya litatumika utakapoondoka kwenye akaunti.</translation>
 <translation id="8870509716567206129">Programu haiwezi kutumia skrini iliyogawanywa.</translation>
 <translation id="8874184842967597500">Hujaunganishwa</translation>
 <translation id="8877788021141246043">Weka kikumbusho</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 16a41e2..4a85198 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Почати</translation>
 <translation id="6981982820502123353">Доступність</translation>
 <translation id="698231206551913481">Якщо видалити цього користувача, усі файли та локальні дані, зв’язані з ним, буде видалено назавжди.</translation>
+<translation id="7007983414944123363">Не вдалося підтвердити PIN-код або пароль. Повторіть спробу.</translation>
 <translation id="7015766095477679451">Поверніться о <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Під’єднайте <ph name="DEVICE_NAME" /> до телефона</translation>
 <translation id="7026338066939101231">Понизити</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Вимкнути автоматичні кліки</translation>
 <translation id="7568637526529101738">Натисніть вибраний контент правою кнопкою миші або втримуйте його, і Асистент покаже визначення терміна, конвертує одиницю тощо.</translation>
 <translation id="7569509451529460200">Шрифт Брайля та ChromeVox увімкнено</translation>
+<translation id="7579778809502851308">Знімок екрана</translation>
 <translation id="7593891976182323525">Клавіша пошуку або Shift</translation>
 <translation id="7600875258240007829">Переглянути всі сповіщення</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Кнопка "Назад"</translation>
 <translation id="8843682306134542540">Заблокувати/розблокувати обертання. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search (Пошук)+Esc</translation>
+<translation id="8853703225951107899">PIN-код або пароль усе ще не вдається підтвердити. Примітка: якщо ви нещодавно змінювали пароль, введіть старий. Новий пароль буде застосовано, щойно ви вийдете з облікового запису.</translation>
 <translation id="8870509716567206129">Додаток не підтримує розділення екрана.</translation>
 <translation id="8874184842967597500">Не під’єднано</translation>
 <translation id="8877788021141246043">Налаштуй нагадування</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index 8229c1e8..9ee0e81 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Boshlash</translation>
 <translation id="6981982820502123353">Qulayliklar</translation>
 <translation id="698231206551913481">Bu foydalanuvchiga tegishli barcha fayllar va mahalliy ma’lumotlar foydalanuvchi olib tashlanganda butunlay o‘chib ketadi.</translation>
+<translation id="7007983414944123363">PIN kod yoki parolingiz tekshirilmadi. Qayta urining.</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> da qayting.</translation>
 <translation id="7025533177575372252"><ph name="DEVICE_NAME" /> qurilmasini telefoningiz bilan ulang</translation>
 <translation id="7026338066939101231">Kamaytirish</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Avtomatik kliklarni faolsizlantirish</translation>
 <translation id="7568637526529101738">Oʻng klik yoki biroz bosib turilsa, Assistent ekranda tanlangan narsaga mos tavsif yoki birliklar konvertorini chiqaradi.</translation>
 <translation id="7569509451529460200">Brayl yozuvi va ChromeVox yoqildi</translation>
+<translation id="7579778809502851308">Ekranni suratga olish</translation>
 <translation id="7593891976182323525">Search yoki Shift</translation>
 <translation id="7600875258240007829">Barcha bildirishnomalarni ochish</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Orqaga tugmasi</translation>
 <translation id="8843682306134542540">Burishni qulflash/qulfdan chiqarish. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search + Esc</translation>
+<translation id="8853703225951107899">PIN kod yoki parolingiz haligacha tekshirilmadi. Eslatma: Parol yaqinda almashtirilgan boʻlsa, eskisini kiriting. Yangi parolingiz hisobdan chiqqaningizda kuchga kiradi.</translation>
 <translation id="8870509716567206129">Bu dastur ekranni bo‘lish xususiyatini qo‘llab-quvvatlamaydi.</translation>
 <translation id="8874184842967597500">Ulanmagan</translation>
 <translation id="8877788021141246043">Eslatma belgilash</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb
index 6d1e2fb..85b2c6b 100644
--- a/ash/strings/ash_strings_zu.xtb
+++ b/ash/strings/ash_strings_zu.xtb
@@ -506,6 +506,7 @@
 <translation id="6972754398087986839">Qala</translation>
 <translation id="6981982820502123353">Ukufinyeleleka</translation>
 <translation id="698231206551913481">Onke amafayela nedatha yendawo ehlotshaniswa nalo msebenzisi izosuswa ngunaphakade uma lo msebenzisi asuswa.</translation>
+<translation id="7007983414944123363">Iphinikhodi yakho noma iphasiwedi ayiqinisekiswanga. Zama futhi.</translation>
 <translation id="7015766095477679451">Buya ngo-<ph name="COME_BACK_TIME" />.</translation>
 <translation id="7025533177575372252">Xhuma i-<ph name="DEVICE_NAME" /> yakho nefoni yakho</translation>
 <translation id="7026338066939101231">Ukwehlisa</translation>
@@ -551,6 +552,7 @@
 <translation id="7568294522609223312">Vala ukuchofoza okuzenzakalelayo</translation>
 <translation id="7568637526529101738">Ngokuchofoza ngakwesokudla noma ngokucindezela isikhathi eside, Umsizi ubonisa ulwazi olunjengencazelo noma ukuguqulwa kweyunithi yokhetho lwakho.</translation>
 <translation id="7569509451529460200">I-Braille ne-ChromeVox inikwe amandla</translation>
+<translation id="7579778809502851308">Ukuthatha isikrini</translation>
 <translation id="7593891976182323525">Usesho noma i-Shift</translation>
 <translation id="7600875258240007829">Bona zonke izaziso</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
@@ -669,6 +671,7 @@
 <translation id="8841375032071747811">Inkinobho yasemuva</translation>
 <translation id="8843682306134542540">Shintsha ukukhiya kokuphendula. <ph name="STATE_TEXT" /></translation>
 <translation id="8850991929411075241">Search+Esc</translation>
+<translation id="8853703225951107899">Iphinikhodi yakho noma iphasiwedi isengaqinisekiswa. Qaphela: Uma usanda ukushintsha iphasiwedi yakho, sebenzisa iphasiwedi yakho yakudala. Iphasiwedi yakho entsha izosebenza uma usuphume ngemvume.</translation>
 <translation id="8870509716567206129">Uhlelo lokusebenza alusekeli isikrini esihlukanisiwe.</translation>
 <translation id="8874184842967597500">Ayixhunyiwe</translation>
 <translation id="8877788021141246043">Setha isikhumbuzi</translation>
diff --git a/ash/system/palette/palette_tray.cc b/ash/system/palette/palette_tray.cc
index 31613a0..26feceb 100644
--- a/ash/system/palette/palette_tray.cc
+++ b/ash/system/palette/palette_tray.cc
@@ -187,8 +187,6 @@
   tray_container()->AddChildView(icon_);
 
   Shell::Get()->AddShellObserver(this);
-
-  InitializeWithLocalState();
 }
 
 PaletteTray::~PaletteTray() {
@@ -431,6 +429,8 @@
 void PaletteTray::Initialize() {
   TrayBackgroundView::Initialize();
   ui::DeviceDataManager::GetInstance()->AddObserver(this);
+
+  InitializeWithLocalState();
 }
 
 bool PaletteTray::PerformAction(const ui::Event& event) {
diff --git a/ash/system/power/power_notification_controller.cc b/ash/system/power/power_notification_controller.cc
index 958289c..57d3d9e 100644
--- a/ash/system/power/power_notification_controller.cc
+++ b/ash/system/power/power_notification_controller.cc
@@ -12,6 +12,7 @@
 #include "ash/system/power/dual_role_notification.h"
 #include "base/command_line.h"
 #include "base/logging.h"
+#include "base/numerics/safe_conversions.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/chromeos/devicetype_utils.h"
 #include "ui/message_center/message_center.h"
@@ -199,7 +200,7 @@
   // The notification includes a rounded minutes value, so round the estimate
   // received from the power manager to match.
   const int remaining_minutes =
-      static_cast<int>(remaining_time->InSecondsF() / 60.0 + 0.5);
+      base::ClampRound(remaining_time->InSecondsF() / 60.0);
 
   if (remaining_minutes >= kNoWarningMinutes ||
       PowerStatus::Get()->IsBatteryFull()) {
diff --git a/base/big_endian.cc b/base/big_endian.cc
index 95a6388d..ad6a101 100644
--- a/base/big_endian.cc
+++ b/base/big_endian.cc
@@ -12,9 +12,7 @@
 namespace base {
 
 BigEndianReader::BigEndianReader(const char* buf, size_t len)
-    : ptr_(buf), end_(ptr_ + len) {
-  CHECK_LE(ptr_, end_);
-}
+    : ptr_(buf), end_(ptr_ + len) {}
 
 bool BigEndianReader::Skip(size_t len) {
   if (len > remaining())
@@ -88,9 +86,7 @@
 }
 
 BigEndianWriter::BigEndianWriter(char* buf, size_t len)
-    : ptr_(buf), end_(ptr_ + len) {
-  CHECK_LE(ptr_, end_);
-}
+    : ptr_(buf), end_(ptr_ + len) {}
 
 bool BigEndianWriter::Skip(size_t len) {
   if (len > remaining())
diff --git a/base/i18n/time_formatting.cc b/base/i18n/time_formatting.cc
index 69259dad..f20274d 100644
--- a/base/i18n/time_formatting.cc
+++ b/base/i18n/time_formatting.cc
@@ -11,6 +11,7 @@
 #include "base/i18n/unicodestring.h"
 #include "base/logging.h"
 #include "base/notreached.h"
+#include "base/numerics/safe_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "third_party/icu/source/common/unicode/utypes.h"
@@ -181,7 +182,7 @@
                         string16* out) {
   DCHECK(out);
   UErrorCode status = U_ZERO_ERROR;
-  const int total_minutes = static_cast<int>(time.InSecondsF() / 60 + 0.5);
+  const int total_minutes = base::ClampRound(time.InSecondsF() / 60);
   const int hours = total_minutes / 60;
   const int minutes = total_minutes % 60;
   UMeasureFormatWidth u_width = DurationWidthToMeasureWidth(width);
diff --git a/base/mac/sdk_forward_declarations.h b/base/mac/sdk_forward_declarations.h
index 24d7b32..72c66a3 100644
--- a/base/mac/sdk_forward_declarations.h
+++ b/base/mac/sdk_forward_declarations.h
@@ -8,8 +8,8 @@
 #ifndef BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
 #define BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
 
-#import <AppKit/AppKit.h>
 #include <AvailabilityMacros.h>
+#include <AvailabilityVersions.h>
 #include <os/availability.h>
 
 // NOTE: If an #import is needed only for a newer SDK, it might be found below.
@@ -64,7 +64,9 @@
 //
 // ----------------------------------------------------------------------------
 
-// Chromium currently is building with the most recent SDK. WWDC is not far
-// away, though....
+#if !defined(MAC_OS_VERSION_11_0)
+#include <CoreMedia/CoreMedia.h>
+enum : CMVideoCodecType { kCMVideoCodecType_VP9 = 'vp09' };
+#endif  // MAC_OS_VERSION_11_0
 
 #endif  // BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
diff --git a/base/process/process_metrics.cc b/base/process/process_metrics.cc
index 69cd115aa..83185c02 100644
--- a/base/process/process_metrics.cc
+++ b/base/process/process_metrics.cc
@@ -8,6 +8,7 @@
 
 #include "base/check.h"
 #include "base/notreached.h"
+#include "base/numerics/safe_conversions.h"
 #include "base/values.h"
 #include "build/build_config.h"
 
@@ -25,7 +26,7 @@
   }
 
   int64_t events_delta = event_count - *last_event_count;
-  int64_t time_delta = (time - *last_calculated).InMicroseconds();
+  double time_delta = (time - *last_calculated).InSecondsF();
   if (time_delta == 0) {
     NOTREACHED();
     return 0;
@@ -34,11 +35,7 @@
   *last_calculated = time;
   *last_event_count = event_count;
 
-  int64_t events_delta_for_ms =
-      events_delta * base::Time::kMicrosecondsPerSecond;
-  // Round the result up by adding 1/2 (the second term resolves to 1/2 without
-  // dropping down into floating point).
-  return (events_delta_for_ms + time_delta / 2) / time_delta;
+  return base::ClampRound(events_delta / time_delta);
 }
 
 }  // namespace
diff --git a/base/safe_numerics_unittest.cc b/base/safe_numerics_unittest.cc
index 08fe12d5e..7413731 100644
--- a/base/safe_numerics_unittest.cc
+++ b/base/safe_numerics_unittest.cc
@@ -1609,6 +1609,8 @@
   EXPECT_EQ(2, d.ValueOrDie());
   d *= d;
   EXPECT_EQ(4, d.ValueOrDie());
+  d *= 0.5;
+  EXPECT_EQ(2, d.ValueOrDie());
 
   CheckedNumeric<int> too_large = std::numeric_limits<int>::max();
   EXPECT_TRUE(too_large.IsValid());
diff --git a/base/time/time.h b/base/time/time.h
index 3b6f6c4..f00af1c 100644
--- a/base/time/time.h
+++ b/base/time/time.h
@@ -323,7 +323,8 @@
   }
 
   constexpr TimeDelta operator%(TimeDelta a) const {
-    return TimeDelta(a.is_inf() ? delta_ : (delta_ % a.delta_));
+    return TimeDelta(
+        (is_inf() || a.is_zero() || a.is_inf()) ? delta_ : (delta_ % a.delta_));
   }
   TimeDelta& operator%=(TimeDelta other) { return *this = (*this % other); }
 
diff --git a/base/time/time_unittest.cc b/base/time/time_unittest.cc
index 617616d..54897a93 100644
--- a/base/time/time_unittest.cc
+++ b/base/time/time_unittest.cc
@@ -1816,56 +1816,63 @@
   EXPECT_TRUE((kLargeDelta / 0.5).is_max());
   EXPECT_TRUE((kLargeDelta / -0.5).is_min());
 
-  static_assert(TimeDelta::Max() / TimeDelta::FromSeconds(10) ==
-                    std::numeric_limits<double>::infinity(),
-                "");
-  static_assert(TimeDelta::Max() / TimeDelta::FromSeconds(-10) ==
+  static_assert(
+      TimeDelta::Max() / kOneSecond == std::numeric_limits<double>::infinity(),
+      "");
+  static_assert(TimeDelta::Max() / -kOneSecond ==
                     -std::numeric_limits<double>::infinity(),
                 "");
-  static_assert(TimeDelta::Min() / TimeDelta::FromSeconds(10) ==
-                    -std::numeric_limits<double>::infinity(),
-                "");
-  static_assert(TimeDelta::Min() / TimeDelta::FromSeconds(-10) ==
-                    std::numeric_limits<double>::infinity(),
-                "");
-  static_assert(TimeDelta::Max().IntDiv(TimeDelta::FromSeconds(10)) ==
+  static_assert(
+      TimeDelta::Min() / kOneSecond == -std::numeric_limits<double>::infinity(),
+      "");
+  static_assert(
+      TimeDelta::Min() / -kOneSecond == std::numeric_limits<double>::infinity(),
+      "");
+  static_assert(TimeDelta::Max().IntDiv(kOneSecond) ==
                     std::numeric_limits<int64_t>::max(),
                 "");
-  static_assert(TimeDelta::Max().IntDiv(TimeDelta::FromSeconds(-10)) ==
+  static_assert(TimeDelta::Max().IntDiv(-kOneSecond) ==
                     std::numeric_limits<int64_t>::min(),
                 "");
-  static_assert(TimeDelta::Min().IntDiv(TimeDelta::FromSeconds(10)) ==
+  static_assert(TimeDelta::Min().IntDiv(kOneSecond) ==
                     std::numeric_limits<int64_t>::min(),
                 "");
-  static_assert(TimeDelta::Min().IntDiv(TimeDelta::FromSeconds(-10)) ==
+  static_assert(TimeDelta::Min().IntDiv(-kOneSecond) ==
                     std::numeric_limits<int64_t>::max(),
                 "");
+  static_assert(TimeDelta::Max() % kOneSecond == TimeDelta::Max(), "");
+  static_assert(TimeDelta::Max() % -kOneSecond == TimeDelta::Max(), "");
+  static_assert(TimeDelta::Min() % kOneSecond == TimeDelta::Min(), "");
+  static_assert(TimeDelta::Min() % -kOneSecond == TimeDelta::Min(), "");
 
   // Division by zero.
-  static_assert((TimeDelta::FromSeconds(1) / 0).is_max(), "");
-  static_assert((TimeDelta::FromSeconds(-1) / 0).is_min(), "");
+  static_assert((kOneSecond / 0).is_max(), "");
+  static_assert((-kOneSecond / 0).is_min(), "");
   static_assert((TimeDelta::Max() / 0).is_max(), "");
   static_assert((TimeDelta::Min() / 0).is_min(), "");
-  EXPECT_EQ(std::numeric_limits<double>::infinity(),
-            TimeDelta::FromSeconds(1) / TimeDelta());
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), kOneSecond / TimeDelta());
   EXPECT_EQ(-std::numeric_limits<double>::infinity(),
-            TimeDelta::FromSeconds(-1) / TimeDelta());
+            -kOneSecond / TimeDelta());
   EXPECT_EQ(std::numeric_limits<double>::infinity(),
             TimeDelta::Max() / TimeDelta());
   EXPECT_EQ(-std::numeric_limits<double>::infinity(),
             TimeDelta::Min() / TimeDelta());
-  static_assert(TimeDelta::FromSeconds(1).IntDiv(TimeDelta()) ==
-                    std::numeric_limits<int64_t>::max(),
-                "");
-  static_assert(TimeDelta::FromSeconds(-1).IntDiv(TimeDelta()) ==
-                    std::numeric_limits<int64_t>::min(),
-                "");
+  static_assert(
+      kOneSecond.IntDiv(TimeDelta()) == std::numeric_limits<int64_t>::max(),
+      "");
+  static_assert(
+      (-kOneSecond).IntDiv(TimeDelta()) == std::numeric_limits<int64_t>::min(),
+      "");
   static_assert(TimeDelta::Max().IntDiv(TimeDelta()) ==
                     std::numeric_limits<int64_t>::max(),
                 "");
   static_assert(TimeDelta::Min().IntDiv(TimeDelta()) ==
                     std::numeric_limits<int64_t>::min(),
                 "");
+  static_assert(kOneSecond % TimeDelta() == kOneSecond, "");
+  static_assert(-kOneSecond % TimeDelta() == -kOneSecond, "");
+  static_assert(TimeDelta::Max() % TimeDelta() == TimeDelta::Max(), "");
+  static_assert(TimeDelta::Min() % TimeDelta() == TimeDelta::Min(), "");
 
   // Division by infinity.
   static_assert(kLargeDelta / TimeDelta::Min() == 0, "");
@@ -1876,13 +1883,8 @@
   static_assert(kLargeDelta.IntDiv(TimeDelta::Max()) == 0, "");
   static_assert(kLargeNegative.IntDiv(TimeDelta::Min()) == 0, "");
   static_assert(kLargeNegative.IntDiv(TimeDelta::Max()) == 0, "");
-
-  static_assert(TimeDelta::FromSeconds(10) % TimeDelta::Min() ==
-                    TimeDelta::FromSeconds(10),
-                "");
-  static_assert(TimeDelta::FromSeconds(10) % TimeDelta::Max() ==
-                    TimeDelta::FromSeconds(10),
-                "");
+  static_assert(kOneSecond % TimeDelta::Min() == kOneSecond, "");
+  static_assert(kOneSecond % TimeDelta::Max() == kOneSecond, "");
 
   // Test that double conversions overflow to infinity.
   EXPECT_EQ((kLargeDelta + kOneSecond).InSecondsF(),
@@ -1892,7 +1894,7 @@
   EXPECT_EQ((kLargeDelta + kOneSecond).InMicrosecondsF(),
             std::numeric_limits<double>::infinity());
 
-  // Test +=, -=, *= and /= operators.
+  // Test op=.
   TimeDelta delta = kLargeDelta;
   delta += kOneSecond;
   EXPECT_TRUE(delta.is_max());
@@ -1921,6 +1923,13 @@
   delta /= 0.5;
   EXPECT_TRUE(delta.is_min());
 
+  delta = kOneSecond;
+  delta %= TimeDelta::Max();
+  EXPECT_EQ(kOneSecond, delta);
+  delta = kOneSecond;
+  delta %= TimeDelta();
+  EXPECT_EQ(kOneSecond, delta);
+
   // Test operations with Time and TimeTicks.
   EXPECT_TRUE((kLargeDelta + Time::Now()).is_max());
   EXPECT_TRUE((kLargeDelta + TimeTicks::Now()).is_max());
diff --git a/base/util/ranges/algorithm.h b/base/util/ranges/algorithm.h
index 4727a9d..68c4ee3 100644
--- a/base/util/ranges/algorithm.h
+++ b/base/util/ranges/algorithm.h
@@ -3665,27 +3665,476 @@
 // [includes] includes
 // Reference: https://wg21.link/includes
 
-// TODO(crbug.com/1071094): Implement.
+// Preconditions: The ranges `[first1, last1)` and `[first2, last2)` are sorted
+// with respect to `comp` and `proj1` or `proj2`, respectively.
+//
+// Returns: `true` if and only if `[first2, last2)` is a subsequence of
+// `[first1, last1)`.
+//
+// Complexity: At most `2 * ((last1 - first1) + (last2 - first2)) - 1`
+// comparisons and applications of each projection.
+//
+// Reference: https://wg21.link/includes#:~:text=ranges::includes(I1
+template <typename InputIterator1,
+          typename InputIterator2,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::iterator_category_t<InputIterator1>,
+          typename = internal::iterator_category_t<InputIterator2>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator1, Proj1>,
+                                       projected<InputIterator2, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator2, Proj2>,
+                                       projected<InputIterator1, Proj1>>>
+constexpr auto includes(InputIterator1 first1,
+                        InputIterator1 last1,
+                        InputIterator2 first2,
+                        InputIterator2 last2,
+                        Comp comp = {},
+                        Proj1 proj1 = {},
+                        Proj2 proj2 = {}) {
+  // Needs to opt-in to all permutations, since std::includes expects
+  // comp(proj1(lhs), proj2(rhs)) and comp(proj2(lhs), proj1(rhs)) to compile.
+  return std::includes(
+      first1, last1, first2, last2,
+      internal::PermutedProjectedBinaryPredicate(comp, proj1, proj2));
+}
+
+// Preconditions: The ranges `range1` and `range2` are sorted with respect to
+// `comp` and `proj1` or `proj2`, respectively.
+//
+// Returns: `true` if and only if `range2` is a subsequence of `range1`.
+//
+// Complexity: At most `2 * (size(range1) + size(range2)) - 1` comparisons and
+// applications of each projection.
+//
+// Reference: https://wg21.link/includes#:~:text=ranges::includes(R1
+template <typename Range1,
+          typename Range2,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::range_category_t<Range1>,
+          typename = internal::range_category_t<Range2>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range1>, Proj1>,
+                                       projected<iterator_t<Range2>, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range2>, Proj2>,
+                                       projected<iterator_t<Range1>, Proj1>>>
+constexpr auto includes(Range1&& range1,
+                        Range2&& range2,
+                        Comp comp = {},
+                        Proj1 proj1 = {},
+                        Proj2 proj2 = {}) {
+  return ranges::includes(ranges::begin(range1), ranges::end(range1),
+                          ranges::begin(range2), ranges::end(range2),
+                          std::move(comp), std::move(proj1), std::move(proj2));
+}
 
 // [set.union] set_union
 // Reference: https://wg21.link/set.union
 
-// TODO(crbug.com/1071094): Implement.
+// Preconditions: The ranges `[first1, last1)` and `[first2, last2)` are sorted
+// with respect to `comp` and `proj1` or `proj2`, respectively. The resulting
+// range does not overlap with either of the original ranges.
+//
+// Effects: Constructs a sorted union of the elements from the two ranges; that
+// is, the set of elements that are present in one or both of the ranges.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * ((last1 - first1) + (last2 - first2)) - 1`
+// comparisons and applications of each projection.
+//
+// Remarks: Stable. If `[first1, last1)` contains `m` elements that are
+// equivalent to each other and `[first2, last2)` contains `n` elements that are
+// equivalent to them, then all `m` elements from the first range are copied to
+// the output range, in order, and then the final `max(n - m , 0)` elements from
+// the second range are copied to the output range, in order.
+//
+// Reference: https://wg21.link/set.union#:~:text=ranges::set_union(I1
+template <typename InputIterator1,
+          typename InputIterator2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::iterator_category_t<InputIterator1>,
+          typename = internal::iterator_category_t<InputIterator2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator1, Proj1>,
+                                       projected<InputIterator2, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator2, Proj2>,
+                                       projected<InputIterator1, Proj1>>>
+constexpr auto set_union(InputIterator1 first1,
+                         InputIterator1 last1,
+                         InputIterator2 first2,
+                         InputIterator2 last2,
+                         OutputIterator result,
+                         Comp comp = {},
+                         Proj1 proj1 = {},
+                         Proj2 proj2 = {}) {
+  // Needs to opt-in to all permutations, since std::set_union expects
+  // comp(proj1(lhs), proj2(rhs)) and comp(proj2(lhs), proj1(rhs)) to compile.
+  return std::set_union(
+      first1, last1, first2, last2, result,
+      internal::PermutedProjectedBinaryPredicate(comp, proj1, proj2));
+}
+
+// Preconditions: The ranges `range1` and `range2` are sorted with respect to
+// `comp` and `proj1` or `proj2`, respectively. The resulting range does not
+// overlap with either of the original ranges.
+//
+// Effects: Constructs a sorted union of the elements from the two ranges; that
+// is, the set of elements that are present in one or both of the ranges.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * (size(range1) + size(range2)) - 1` comparisons and
+// applications of each projection.
+//
+// Remarks: Stable. If `range1` contains `m` elements that are equivalent to
+// each other and `range2` contains `n` elements that are equivalent to them,
+// then all `m` elements from the first range are copied to the output range, in
+// order, and then the final `max(n - m , 0)` elements from the second range are
+// copied to the output range, in order.
+//
+// Reference: https://wg21.link/set.union#:~:text=ranges::set_union(R1
+template <typename Range1,
+          typename Range2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::range_category_t<Range1>,
+          typename = internal::range_category_t<Range2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range1>, Proj1>,
+                                       projected<iterator_t<Range2>, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range2>, Proj2>,
+                                       projected<iterator_t<Range1>, Proj1>>>
+constexpr auto set_union(Range1&& range1,
+                         Range2&& range2,
+                         OutputIterator result,
+                         Comp comp = {},
+                         Proj1 proj1 = {},
+                         Proj2 proj2 = {}) {
+  return ranges::set_union(ranges::begin(range1), ranges::end(range1),
+                           ranges::begin(range2), ranges::end(range2), result,
+                           std::move(comp), std::move(proj1), std::move(proj2));
+}
 
 // [set.intersection] set_intersection
 // Reference: https://wg21.link/set.intersection
 
-// TODO(crbug.com/1071094): Implement.
+// Preconditions: The ranges `[first1, last1)` and `[first2, last2)` are sorted
+// with respect to `comp` and `proj1` or `proj2`, respectively. The resulting
+// range does not overlap with either of the original ranges.
+//
+// Effects: Constructs a sorted intersection of the elements from the two
+// ranges; that is, the set of elements that are present in both of the ranges.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * ((last1 - first1) + (last2 - first2)) - 1`
+// comparisons and applications of each projection.
+//
+// Remarks: Stable. If `[first1, last1)` contains `m` elements that are
+// equivalent to each other and `[first2, last2)` contains `n` elements that are
+// equivalent to them, the first `min(m, n)` elements are copied from the first
+// range to the output range, in order.
+//
+// Reference:
+// https://wg21.link/set.intersection#:~:text=ranges::set_intersection(I1
+template <typename InputIterator1,
+          typename InputIterator2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::iterator_category_t<InputIterator1>,
+          typename = internal::iterator_category_t<InputIterator2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator1, Proj1>,
+                                       projected<InputIterator2, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator2, Proj2>,
+                                       projected<InputIterator1, Proj1>>>
+constexpr auto set_intersection(InputIterator1 first1,
+                                InputIterator1 last1,
+                                InputIterator2 first2,
+                                InputIterator2 last2,
+                                OutputIterator result,
+                                Comp comp = {},
+                                Proj1 proj1 = {},
+                                Proj2 proj2 = {}) {
+  // Needs to opt-in to all permutations, since std::set_intersection expects
+  // comp(proj1(lhs), proj2(rhs)) and comp(proj2(lhs), proj1(rhs)) to compile.
+  return std::set_intersection(
+      first1, last1, first2, last2, result,
+      internal::PermutedProjectedBinaryPredicate(comp, proj1, proj2));
+}
+
+// Preconditions: The ranges `range1` and `range2` are sorted with respect to
+// `comp` and `proj1` or `proj2`, respectively. The resulting range does not
+// overlap with either of the original ranges.
+//
+// Effects: Constructs a sorted intersection of the elements from the two
+// ranges; that is, the set of elements that are present in both of the ranges.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * (size(range1) + size(range2)) - 1` comparisons and
+// applications of each projection.
+//
+// Remarks: Stable. If `range1` contains `m` elements that are equivalent to
+// each other and `range2` contains `n` elements that are equivalent to them,
+// the first `min(m, n)` elements are copied from the first range to the output
+// range, in order.
+//
+// Reference:
+// https://wg21.link/set.intersection#:~:text=ranges::set_intersection(R1
+template <typename Range1,
+          typename Range2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::range_category_t<Range1>,
+          typename = internal::range_category_t<Range2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range1>, Proj1>,
+                                       projected<iterator_t<Range2>, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range2>, Proj2>,
+                                       projected<iterator_t<Range1>, Proj1>>>
+constexpr auto set_intersection(Range1&& range1,
+                                Range2&& range2,
+                                OutputIterator result,
+                                Comp comp = {},
+                                Proj1 proj1 = {},
+                                Proj2 proj2 = {}) {
+  return ranges::set_intersection(ranges::begin(range1), ranges::end(range1),
+                                  ranges::begin(range2), ranges::end(range2),
+                                  result, std::move(comp), std::move(proj1),
+                                  std::move(proj2));
+}
 
 // [set.difference] set_difference
 // Reference: https://wg21.link/set.difference
 
-// TODO(crbug.com/1071094): Implement.
+// Preconditions: The ranges `[first1, last1)` and `[first2, last2)` are sorted
+// with respect to `comp` and `proj1` or `proj2`, respectively. The resulting
+// range does not overlap with either of the original ranges.
+//
+// Effects: Copies the elements of the range `[first1, last1)` which are not
+// present in the range `[first2, last2)` to the range beginning at `result`.
+// The elements in the constructed range are sorted.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * ((last1 - first1) + (last2 - first2)) - 1`
+// comparisons and applications of each projection.
+//
+// Remarks: If `[first1, last1)` contains `m` elements that are equivalent to
+// each other and `[first2, last2)` contains `n` elements that are equivalent to
+// them, the last `max(m - n, 0)` elements from `[first1, last1)` are copied to
+// the output range, in order.
+//
+// Reference:
+// https://wg21.link/set.difference#:~:text=ranges::set_difference(I1
+template <typename InputIterator1,
+          typename InputIterator2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::iterator_category_t<InputIterator1>,
+          typename = internal::iterator_category_t<InputIterator2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator1, Proj1>,
+                                       projected<InputIterator2, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator2, Proj2>,
+                                       projected<InputIterator1, Proj1>>>
+constexpr auto set_difference(InputIterator1 first1,
+                              InputIterator1 last1,
+                              InputIterator2 first2,
+                              InputIterator2 last2,
+                              OutputIterator result,
+                              Comp comp = {},
+                              Proj1 proj1 = {},
+                              Proj2 proj2 = {}) {
+  // Needs to opt-in to all permutations, since std::set_difference expects
+  // comp(proj1(lhs), proj2(rhs)) and comp(proj2(lhs), proj1(rhs)) to compile.
+  return std::set_difference(
+      first1, last1, first2, last2, result,
+      internal::PermutedProjectedBinaryPredicate(comp, proj1, proj2));
+}
+
+// Preconditions: The ranges `range1` and `range2` are sorted with respect to
+// `comp` and `proj1` or `proj2`, respectively. The resulting range does not
+// overlap with either of the original ranges.
+//
+// Effects: Copies the elements of `range1` which are not present in `range2`
+// to the range beginning at `result`. The elements in the constructed range are
+// sorted.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * (size(range1) + size(range2)) - 1` comparisons and
+// applications of each projection.
+//
+// Remarks: Stable. If `range1` contains `m` elements that are equivalent to
+// each other and `range2` contains `n` elements that are equivalent to them,
+// the last `max(m - n, 0)` elements from `range1` are copied to the output
+// range, in order.
+//
+// Reference:
+// https://wg21.link/set.difference#:~:text=ranges::set_difference(R1
+template <typename Range1,
+          typename Range2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::range_category_t<Range1>,
+          typename = internal::range_category_t<Range2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range1>, Proj1>,
+                                       projected<iterator_t<Range2>, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range2>, Proj2>,
+                                       projected<iterator_t<Range1>, Proj1>>>
+constexpr auto set_difference(Range1&& range1,
+                              Range2&& range2,
+                              OutputIterator result,
+                              Comp comp = {},
+                              Proj1 proj1 = {},
+                              Proj2 proj2 = {}) {
+  return ranges::set_difference(ranges::begin(range1), ranges::end(range1),
+                                ranges::begin(range2), ranges::end(range2),
+                                result, std::move(comp), std::move(proj1),
+                                std::move(proj2));
+}
 
 // [set.symmetric.difference] set_symmetric_difference
 // Reference: https://wg21.link/set.symmetric.difference
 
-// TODO(crbug.com/1071094): Implement.
+// Preconditions: The ranges `[first1, last1)` and `[first2, last2)` are sorted
+// with respect to `comp` and `proj1` or `proj2`, respectively. The resulting
+// range does not overlap with either of the original ranges.
+//
+// Effects: Copies the elements of the range `[first1, last1)` that are not
+// present in the range `[first2, last2)`, and the elements of the range
+// `[first2, last2)` that are not present in the range `[first1, last1)` to the
+// range beginning at `result`. The elements in the constructed range are
+// sorted.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * ((last1 - first1) + (last2 - first2)) - 1`
+// comparisons and applications of each projection.
+//
+// Remarks: Stable. If `[first1, last1)` contains `m` elements that are
+// equivalent to each other and `[first2, last2)` contains `n` elements that are
+// equivalent to them, then `|m - n|` of those elements shall be copied to the
+// output range: the last `m - n` of these elements from `[first1, last1)` if
+// `m > n`, and the last `n - m` of these elements from `[first2, last2)` if
+// `m < n`. In either case, the elements are copied in order.
+//
+// Reference:
+// https://wg21.link/set.symmetric.difference#:~:text=set_symmetric_difference(I1
+template <typename InputIterator1,
+          typename InputIterator2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::iterator_category_t<InputIterator1>,
+          typename = internal::iterator_category_t<InputIterator2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator1, Proj1>,
+                                       projected<InputIterator2, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<InputIterator2, Proj2>,
+                                       projected<InputIterator1, Proj1>>>
+constexpr auto set_symmetric_difference(InputIterator1 first1,
+                                        InputIterator1 last1,
+                                        InputIterator2 first2,
+                                        InputIterator2 last2,
+                                        OutputIterator result,
+                                        Comp comp = {},
+                                        Proj1 proj1 = {},
+                                        Proj2 proj2 = {}) {
+  // Needs to opt-in to all permutations, since std::set_symmetric_difference
+  // expects comp(proj1(lhs), proj2(rhs)) and comp(proj2(lhs), proj1(rhs)) to
+  // compile.
+  return std::set_symmetric_difference(
+      first1, last1, first2, last2, result,
+      internal::PermutedProjectedBinaryPredicate(comp, proj1, proj2));
+}
+
+// Preconditions: The ranges `range1` and `range2` are sorted with respect to
+// `comp` and `proj1` or `proj2`, respectively. The resulting range does not
+// overlap with either of the original ranges.
+//
+// Effects: Copies the elements of `range1` that are not present in `range2`,
+// and the elements of `range2` that are not present in `range1` to the range
+// beginning at `result`. The elements in the constructed range are sorted.
+//
+// Returns: The end of the constructed range.
+//
+// Complexity: At most `2 * (size(range1) + size(range2)) - 1` comparisons and
+// applications of each projection.
+//
+// Remarks: Stable. If `range1` contains `m` elements that are equivalent to
+// each other and `range2` contains `n` elements that are equivalent to them,
+// then `|m - n|` of those elements shall be copied to the output range: the
+// last `m - n` of these elements from `range1` if `m > n`, and the last `n - m`
+// of these elements from `range2` if `m < n`. In either case, the elements are
+// copied in order.
+//
+// Reference:
+// https://wg21.link/set.symmetric.difference#:~:text=set_symmetric_difference(R1
+template <typename Range1,
+          typename Range2,
+          typename OutputIterator,
+          typename Comp = ranges::less,
+          typename Proj1 = identity,
+          typename Proj2 = identity,
+          typename = internal::range_category_t<Range1>,
+          typename = internal::range_category_t<Range2>,
+          typename = internal::iterator_category_t<OutputIterator>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range1>, Proj1>,
+                                       projected<iterator_t<Range2>, Proj2>>,
+          typename = indirect_result_t<Comp&,
+                                       projected<iterator_t<Range2>, Proj2>,
+                                       projected<iterator_t<Range1>, Proj1>>>
+constexpr auto set_symmetric_difference(Range1&& range1,
+                                        Range2&& range2,
+                                        OutputIterator result,
+                                        Comp comp = {},
+                                        Proj1 proj1 = {},
+                                        Proj2 proj2 = {}) {
+  return ranges::set_symmetric_difference(
+      ranges::begin(range1), ranges::end(range1), ranges::begin(range2),
+      ranges::end(range2), result, std::move(comp), std::move(proj1),
+      std::move(proj2));
+}
 
 // [alg.heap.operations] Heap operations
 // Reference: https://wg21.link/alg.heap.operations
diff --git a/base/util/ranges/algorithm_unittest.cc b/base/util/ranges/algorithm_unittest.cc
index cbd6eca..0a9338c 100644
--- a/base/util/ranges/algorithm_unittest.cc
+++ b/base/util/ranges/algorithm_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <algorithm>
 #include <functional>
+#include <iterator>
 #include <random>
 #include <utility>
 
@@ -63,6 +64,12 @@
   return i % 2 == 1;
 }
 
+template <typename Iter>
+auto make_vector(Iter begin, Iter end) {
+  using T = typename std::iterator_traits<Iter>::value_type;
+  return std::vector<T>(begin, end);
+}
+
 }  // namespace
 
 TEST(RangesTest, AllOf) {
@@ -1132,4 +1139,158 @@
   EXPECT_THAT(ints, ElementsAre(9, 8, 7, 6, 5, 4, 3, 2, 1, 0));
 }
 
+TEST(RangesTest, Includes) {
+  int evens[] = {0, 2, 4, 6, 8};
+  int odds[] = {1, 3, 5, 7, 9};
+  int fours[] = {0, 4, 8};
+
+  EXPECT_TRUE(ranges::includes(evens, evens + 5, fours, fours + 3));
+  EXPECT_FALSE(ranges::includes(fours, fours + 3, evens, evens + 5));
+  EXPECT_FALSE(ranges::includes(evens, evens + 5, odds, odds + 5));
+  EXPECT_FALSE(ranges::includes(odds, odds + 5, evens, evens + 5));
+
+  Int even_ints[] = {0, 2, 4, 6, 8};
+  Int odd_ints[] = {1, 3, 5, 7, 9};
+
+  EXPECT_TRUE(ranges::includes(even_ints, fours, {}, &Int::value));
+  EXPECT_FALSE(ranges::includes(fours, even_ints, {}, {}, &Int::value));
+  EXPECT_FALSE(
+      ranges::includes(even_ints, odd_ints, {}, &Int::value, &Int::value));
+  EXPECT_FALSE(
+      ranges::includes(odd_ints, even_ints, {}, &Int::value, &Int::value));
+}
+
+TEST(RangesTest, SetUnion) {
+  int evens[] = {0, 2, 4, 6, 8};
+  int odds[] = {1, 3, 5, 7, 9};
+  int fours[] = {0, 4, 8};
+  int result[10];
+
+  EXPECT_EQ(result + 10,
+            ranges::set_union(evens, evens + 5, odds, odds + 5, result));
+  EXPECT_THAT(result, ElementsAre(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
+
+  EXPECT_EQ(result + 5,
+            ranges::set_union(evens, evens + 5, fours, fours + 3, result));
+  EXPECT_THAT(make_vector(result, result + 5), ElementsAre(0, 2, 4, 6, 8));
+
+  Int even_ints[] = {0, 2, 4, 6, 8};
+  Int odd_ints[] = {1, 3, 5, 7, 9};
+  Int result_ints[10];
+
+  EXPECT_EQ(result_ints + 10,
+            ranges::set_union(even_ints, odd_ints, result_ints, {}, &Int::value,
+                              &Int::value));
+  EXPECT_THAT(result_ints, ElementsAre(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
+
+  EXPECT_EQ(result_ints + 5,
+            ranges::set_union(even_ints, fours, result_ints, {}, &Int::value));
+  EXPECT_THAT(make_vector(result_ints, result_ints + 5),
+              ElementsAre(0, 2, 4, 6, 8));
+
+  EXPECT_EQ(result_ints + 8, ranges::set_union(fours, odd_ints, result_ints, {},
+                                               {}, &Int::value));
+  EXPECT_THAT(make_vector(result_ints, result_ints + 8),
+              ElementsAre(0, 1, 3, 4, 5, 7, 8, 9));
+}
+
+TEST(RangesTest, SetIntersection) {
+  int evens[] = {0, 2, 4, 6, 8};
+  int odds[] = {1, 3, 5, 7, 9};
+  int fours[] = {0, 4, 8};
+  int result[10];
+
+  EXPECT_EQ(result,
+            ranges::set_intersection(evens, evens + 5, odds, odds + 5, result));
+
+  EXPECT_EQ(result + 3, ranges::set_intersection(evens, evens + 5, fours,
+                                                 fours + 3, result));
+  EXPECT_THAT(make_vector(result, result + 3), ElementsAre(0, 4, 8));
+
+  Int even_ints[] = {0, 2, 4, 6, 8};
+  Int odd_ints[] = {1, 3, 5, 7, 9};
+  Int result_ints[10];
+
+  EXPECT_EQ(result_ints,
+            ranges::set_intersection(even_ints, odd_ints, result_ints, {},
+                                     &Int::value, &Int::value));
+
+  EXPECT_EQ(
+      result_ints + 3,
+      ranges::set_intersection(even_ints, fours, result_ints, {}, &Int::value));
+  EXPECT_THAT(make_vector(result_ints, result_ints + 3), ElementsAre(0, 4, 8));
+
+  EXPECT_EQ(result_ints, ranges::set_intersection(fours, odd_ints, result_ints,
+                                                  {}, {}, &Int::value));
+}
+
+TEST(RangesTest, SetDifference) {
+  int evens[] = {0, 2, 4, 6, 8};
+  int odds[] = {1, 3, 5, 7, 9};
+  int fours[] = {0, 4, 8};
+  int result[5];
+
+  EXPECT_EQ(result + 5,
+            ranges::set_difference(evens, evens + 5, odds, odds + 5, result));
+  EXPECT_THAT(result, ElementsAre(0, 2, 4, 6, 8));
+
+  EXPECT_EQ(result + 2,
+            ranges::set_difference(evens, evens + 5, fours, fours + 3, result));
+  EXPECT_THAT(make_vector(result, result + 2), ElementsAre(2, 6));
+
+  Int even_ints[] = {0, 2, 4, 6, 8};
+  Int odd_ints[] = {1, 3, 5, 7, 9};
+  Int result_ints[5];
+
+  EXPECT_EQ(result_ints + 5,
+            ranges::set_difference(even_ints, odd_ints, result_ints, {},
+                                   &Int::value, &Int::value));
+  EXPECT_THAT(result_ints, ElementsAre(0, 2, 4, 6, 8));
+
+  EXPECT_EQ(
+      result_ints + 2,
+      ranges::set_difference(even_ints, fours, result_ints, {}, &Int::value));
+  EXPECT_THAT(make_vector(result_ints, result_ints + 2), ElementsAre(2, 6));
+
+  EXPECT_EQ(result_ints + 3,
+            ranges::set_difference(fours, odd_ints, result_ints, {}, {},
+                                   &Int::value));
+  EXPECT_THAT(make_vector(result_ints, result_ints + 3), ElementsAre(0, 4, 8));
+}
+
+TEST(RangesTest, SetSymmetricDifference) {
+  int evens[] = {0, 2, 4, 6, 8};
+  int odds[] = {1, 3, 5, 7, 9};
+  int fours[] = {0, 4, 8};
+  int result[10];
+
+  EXPECT_EQ(result + 10, ranges::set_symmetric_difference(
+                             evens, evens + 5, odds, odds + 5, result));
+  EXPECT_THAT(result, ElementsAre(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
+
+  EXPECT_EQ(result + 2, ranges::set_symmetric_difference(
+                            evens, evens + 5, fours, fours + 3, result));
+  EXPECT_THAT(make_vector(result, result + 2), ElementsAre(2, 6));
+
+  Int even_ints[] = {0, 2, 4, 6, 8};
+  Int odd_ints[] = {1, 3, 5, 7, 9};
+  Int result_ints[10];
+
+  EXPECT_EQ(result_ints + 10,
+            ranges::set_symmetric_difference(even_ints, odd_ints, result_ints,
+                                             {}, &Int::value, &Int::value));
+  EXPECT_THAT(result_ints, ElementsAre(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
+
+  EXPECT_EQ(result_ints + 2,
+            ranges::set_symmetric_difference(even_ints, fours, result_ints, {},
+                                             &Int::value));
+  EXPECT_THAT(make_vector(result_ints, result_ints + 2), ElementsAre(2, 6));
+
+  EXPECT_EQ(result_ints + 8,
+            ranges::set_symmetric_difference(fours, odd_ints, result_ints, {},
+                                             {}, &Int::value));
+  EXPECT_THAT(make_vector(result_ints, result_ints + 8),
+              ElementsAre(0, 1, 3, 4, 5, 7, 8, 9));
+}
+
 }  // namespace util
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 5a8c7bc6..3071d8b 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -125,8 +125,8 @@
   # TODO(vitalybuka):
   # 'is_android' breaks content_shell_test_apk on android-kitkat-arm-rel.
   # 'use_xcode_clang' may call old clang.
-  init_stack_vars =
-      !is_android && !use_xcode_clang && (!is_official_build || is_linux || is_chromeos)
+  init_stack_vars = !is_android && !use_xcode_clang &&
+                    (!is_official_build || is_linux || is_chromeos)
 
   # This argument is to control whether enabling text section splitting in the
   # final binary. When enabled, the separated text sections with prefix
@@ -294,7 +294,9 @@
     if (fatal_linker_warnings && !is_mac && !is_ios && current_os != "aix") {
       ldflags += [ "-Wl,--fatal-warnings" ]
     }
-    if (fatal_linker_warnings && is_apple) {
+    if (fatal_linker_warnings && is_apple &&
+        # TODO(https://crbug.com/1107955): Enable in arm64 component builds.
+        !(is_mac && target_cpu == "arm64" && is_component_build)) {
       ldflags += [ "-Wl,-fatal_warnings" ]
     }
   } else {
@@ -499,7 +501,8 @@
 
   # C11/C++11 compiler flags setup.
   # ---------------------------
-  if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || current_os == "aix") {
+  if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+      current_os == "aix") {
     if (target_os == "android") {
       cxx11_override = use_cxx11_on_android
     } else {
@@ -1547,6 +1550,12 @@
           # TODO(https://crbug.com/1049569): Remove after Clang 87b235db.
           cflags += [ "-Wno-max-tokens" ]
         }
+
+        if (llvm_force_head_revision) {
+          # TODO(https://crbug.com/1114873):
+          # Remove after false positives are fixed
+          cflags += [ "-Wno-string-concatenation" ]
+        }
       }
     }
   }
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 102f5914..c0a0db4 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-0.20200811.1.1
+0.20200811.2.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 102f5914..c0a0db4 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-0.20200811.1.1
+0.20200811.2.1
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 7d21e1e5..3305acb5 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -63,6 +63,8 @@
     "input/snap_fling_curve.h",
     "input/snap_selection_strategy.cc",
     "input/snap_selection_strategy.h",
+    "input/threaded_input_handler.cc",
+    "input/threaded_input_handler.h",
     "input/touch_action.h",
     "layers/append_quads_data.cc",
     "layers/append_quads_data.h",
diff --git a/cc/input/scrollbar_controller.cc b/cc/input/scrollbar_controller.cc
index 2f2e0e6..5f63ceb1 100644
--- a/cc/input/scrollbar_controller.cc
+++ b/cc/input/scrollbar_controller.cc
@@ -369,7 +369,8 @@
   // level. Since we're producing a delta for an injected GSU, we need to get
   // back to and unscaled delta (i.e. multiply by the page scale factor).
   gfx::Vector2dF clamped_delta =
-      layer_tree_host_impl_->ComputeScrollDelta(target_node, scroll_delta);
+      layer_tree_host_impl_->GetInputHandler().ComputeScrollDelta(target_node,
+                                                                  scroll_delta);
   const float scale_factor = GetPageScaleFactorForScroll();
   clamped_delta.Scale(scale_factor);
   return clamped_delta;
@@ -648,7 +649,7 @@
           : gfx::Vector2dF(kPercentDeltaForDirectionalScroll, 0);
 
   const gfx::Vector2dF pixel_delta =
-      layer_tree_host_impl_->ResolveScrollGranularityToPixels(
+      layer_tree_host_impl_->GetInputHandler().ResolveScrollGranularityToPixels(
           *scroll_node, scroll_delta,
           ui::ScrollGranularity::kScrollByPercentage);
 
diff --git a/cc/input/threaded_input_handler.cc b/cc/input/threaded_input_handler.cc
new file mode 100644
index 0000000..3f46efd
--- /dev/null
+++ b/cc/input/threaded_input_handler.cc
@@ -0,0 +1,2074 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "cc/input/threaded_input_handler.h"
+
+#include <utility>
+#include <vector>
+
+#include "build/build_config.h"
+#include "cc/base/features.h"
+#include "cc/input/scroll_elasticity_helper.h"
+#include "cc/input/scroll_utils.h"
+#include "cc/input/snap_selection_strategy.h"
+#include "cc/layers/viewport.h"
+#include "cc/trees/layer_tree_host_impl.h"
+#include "cc/trees/layer_tree_impl.h"
+#include "cc/trees/layer_tree_settings.h"
+#include "cc/trees/property_tree.h"
+#include "cc/trees/scroll_node.h"
+
+#include "ui/gfx/geometry/point.h"
+#include "ui/gfx/geometry/point_conversions.h"
+#include "ui/gfx/geometry/point_f.h"
+#include "ui/gfx/geometry/vector2d_f.h"
+
+namespace cc {
+
+namespace {
+
+enum SlowScrollMetricThread { MAIN_THREAD, CC_THREAD };
+
+void RecordCompositorSlowScrollMetric(ui::ScrollInputType type,
+                                      SlowScrollMetricThread scroll_thread) {
+  bool scroll_on_main_thread = (scroll_thread == MAIN_THREAD);
+  if (type == ui::ScrollInputType::kWheel) {
+    UMA_HISTOGRAM_BOOLEAN("Renderer4.CompositorWheelScrollUpdateThread",
+                          scroll_on_main_thread);
+  } else if (type == ui::ScrollInputType::kTouchscreen) {
+    UMA_HISTOGRAM_BOOLEAN("Renderer4.CompositorTouchScrollUpdateThread",
+                          scroll_on_main_thread);
+  }
+}
+
+}  // namespace
+
+ThreadedInputHandler::ThreadedInputHandler(LayerTreeHostImpl* host_impl)
+    : host_impl_(*host_impl),
+      scrollbar_controller_(std::make_unique<ScrollbarController>(host_impl)) {}
+
+ThreadedInputHandler::~ThreadedInputHandler() = default;
+
+void ThreadedInputHandler::BindToClient(InputHandlerClient* client) {
+  DCHECK(input_handler_client_ == nullptr);
+  input_handler_client_ = client;
+}
+
+InputHandler::ScrollStatus ThreadedInputHandler::ScrollBegin(
+    ScrollState* scroll_state,
+    ui::ScrollInputType type) {
+  DCHECK(scroll_state);
+  DCHECK(scroll_state->delta_x() == 0 && scroll_state->delta_y() == 0);
+
+  InputHandler::ScrollStatus scroll_status;
+  scroll_status.main_thread_scrolling_reasons =
+      MainThreadScrollingReason::kNotScrollingOnMain;
+  TRACE_EVENT0("cc", "ThreadedInputHandler::ScrollBegin");
+
+  // If this ScrollBegin is non-animated then ensure we cancel any ongoing
+  // animated scrolls.
+  // TODO(bokan): This preserves existing behavior when we had diverging
+  // paths for animated and non-animated scrolls but we should probably
+  // decide when it best makes sense to cancel a scroll animation (maybe
+  // ScrollBy is a better place to do it).
+  if (scroll_state->delta_granularity() ==
+      ui::ScrollGranularity::kScrollByPrecisePixel) {
+    host_impl_.mutator_host()->ScrollAnimationAbort();
+    scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
+  }
+
+  if (CurrentlyScrollingNode() && type == latched_scroll_type_) {
+    // It's possible we haven't yet cleared the CurrentlyScrollingNode if we
+    // received a GSE but we're still animating the last scroll. If that's the
+    // case, we'll simply un-defer the GSE and continue latching to the same
+    // node.
+    DCHECK(deferred_scroll_end_);
+    deferred_scroll_end_ = false;
+    return scroll_status;
+  }
+
+  ScrollNode* scrolling_node = nullptr;
+  bool scroll_on_main_thread = false;
+
+  // TODO(bokan): ClearCurrentlyScrollingNode shouldn't happen in ScrollBegin,
+  // this should only happen in ScrollEnd. We should DCHECK here that the state
+  // is cleared instead. https://crbug.com/1016229
+  ClearCurrentlyScrollingNode();
+
+  ElementId target_element_id = scroll_state->target_element_id();
+
+  if (target_element_id && !scroll_state->is_main_thread_hit_tested()) {
+    TRACE_EVENT_INSTANT0("cc", "Latched scroll node provided",
+                         TRACE_EVENT_SCOPE_THREAD);
+    // If the caller passed in an element_id we can skip all the hit-testing
+    // bits and provide a node straight-away.
+    scrolling_node = GetScrollTree().FindNodeFromElementId(target_element_id);
+
+    // In unified scrolling, if we found a node we get to scroll it.
+    if (!base::FeatureList::IsEnabled(features::kScrollUnification)) {
+      // We still need to confirm the targeted node exists and can scroll on
+      // the compositor.
+      if (scrolling_node) {
+        scroll_status = TryScroll(GetScrollTree(), scrolling_node);
+        if (IsMainThreadScrolling(scroll_status, scrolling_node))
+          scroll_on_main_thread = true;
+      }
+    }
+  } else {
+    ScrollNode* starting_node = nullptr;
+    if (target_element_id) {
+      TRACE_EVENT_INSTANT0("cc", "Unlatched scroll node provided",
+                           TRACE_EVENT_SCOPE_THREAD);
+      // We had an element id but we should still perform the walk up the
+      // scroll tree from the targeted node to latch to a scroller that can
+      // scroll in the given direction. This mode is only used when scroll
+      // unification is enabled and the targeted scroller comes back from a
+      // main thread hit test.
+      DCHECK(scroll_state->data()->is_main_thread_hit_tested);
+      DCHECK(base::FeatureList::IsEnabled(features::kScrollUnification));
+      starting_node = GetScrollTree().FindNodeFromElementId(target_element_id);
+
+      if (!starting_node) {
+        // The main thread sent us an element_id that the compositor doesn't
+        // have a scroll node for. This can happen in some racy conditions, a
+        // freshly created scroller hasn't yet been committed or a
+        // scroller-destroying commit beats the hit test back to the compositor
+        // thread. However, these cases shouldn't be user perceptible.
+        scroll_status.main_thread_scrolling_reasons =
+            MainThreadScrollingReason::kNoScrollingLayer;
+        scroll_status.thread = InputHandler::ScrollThread::SCROLL_IGNORED;
+        return scroll_status;
+      }
+    } else {
+      TRACE_EVENT_INSTANT0("cc", "Hit Testing for ScrollNode",
+                           TRACE_EVENT_SCOPE_THREAD);
+      gfx::Point viewport_point(scroll_state->position_x(),
+                                scroll_state->position_y());
+      gfx::PointF device_viewport_point = gfx::ScalePoint(
+          gfx::PointF(viewport_point), host_impl_.DeviceScaleFactor());
+
+      if (base::FeatureList::IsEnabled(features::kScrollUnification)) {
+        if (scroll_state->data()->is_main_thread_hit_tested) {
+          // The client should have discarded the scroll when the hit test came
+          // back with an invalid element id. If we somehow get here, we should
+          // drop the scroll as continuing could cause us to infinitely bounce
+          // back and forth between here and hit testing on the main thread.
+          NOTREACHED();
+          scroll_status.main_thread_scrolling_reasons =
+              MainThreadScrollingReason::kNoScrollingLayer;
+          scroll_status.thread = InputHandler::ScrollThread::SCROLL_IGNORED;
+          return scroll_status;
+        }
+
+        // Touch dragging the scrollbar requires falling back to main-thread
+        // scrolling.
+        // TODO(bokan): This could be trivially handled in the compositor by
+        // the new ScrollbarController and should be removed.
+        {
+          LayerImpl* first_scrolling_layer_or_scrollbar =
+              ActiveTree().FindFirstScrollingLayerOrScrollbarThatIsHitByPoint(
+                  device_viewport_point);
+          if (IsTouchDraggingScrollbar(first_scrolling_layer_or_scrollbar,
+                                       type)) {
+            TRACE_EVENT_INSTANT0("cc", "Scrollbar Scrolling",
+                                 TRACE_EVENT_SCOPE_THREAD);
+            scroll_status.thread =
+                InputHandler::ScrollThread::SCROLL_ON_MAIN_THREAD;
+            scroll_status.main_thread_scrolling_reasons =
+                MainThreadScrollingReason::kScrollbarScrolling;
+            return scroll_status;
+          }
+        }
+
+        ScrollHitTestResult scroll_hit_test =
+            HitTestScrollNode(device_viewport_point);
+
+        if (!scroll_hit_test.hit_test_successful) {
+          // This result tells the client that the compositor doesn't have
+          // enough information to target this scroll. The client should
+          // perform a hit test in Blink and call this method again, with the
+          // ElementId of the hit-tested scroll node.
+          TRACE_EVENT_INSTANT0("cc", "Request Main Thread Hit Test",
+                               TRACE_EVENT_SCOPE_THREAD);
+          scroll_status.thread =
+              InputHandler::ScrollThread::SCROLL_ON_IMPL_THREAD;
+          scroll_status.needs_main_thread_hit_test = true;
+          return scroll_status;
+        }
+
+        starting_node = scroll_hit_test.scroll_node;
+      } else {
+        LayerImpl* layer_impl =
+            ActiveTree().FindLayerThatIsHitByPoint(device_viewport_point);
+
+        if (layer_impl) {
+          LayerImpl* first_scrolling_layer_or_scrollbar =
+              ActiveTree().FindFirstScrollingLayerOrScrollbarThatIsHitByPoint(
+                  device_viewport_point);
+
+          // Touch dragging the scrollbar requires falling back to main-thread
+          // scrolling.
+          if (IsTouchDraggingScrollbar(first_scrolling_layer_or_scrollbar,
+                                       type)) {
+            TRACE_EVENT_INSTANT0("cc", "Scrollbar Scrolling",
+                                 TRACE_EVENT_SCOPE_THREAD);
+            scroll_status.thread =
+                InputHandler::ScrollThread::SCROLL_ON_MAIN_THREAD;
+            scroll_status.main_thread_scrolling_reasons =
+                MainThreadScrollingReason::kScrollbarScrolling;
+            return scroll_status;
+          } else if (!IsInitialScrollHitTestReliable(
+                         layer_impl, first_scrolling_layer_or_scrollbar)) {
+            TRACE_EVENT_INSTANT0("cc", "Failed Hit Test",
+                                 TRACE_EVENT_SCOPE_THREAD);
+            scroll_status.thread = InputHandler::ScrollThread::SCROLL_UNKNOWN;
+            scroll_status.main_thread_scrolling_reasons =
+                MainThreadScrollingReason::kFailedHitTest;
+            return scroll_status;
+          }
+        }
+
+        starting_node = FindScrollNodeForCompositedScrolling(
+            device_viewport_point, layer_impl, &scroll_on_main_thread,
+            &scroll_status.main_thread_scrolling_reasons);
+      }
+    }
+
+    // The above finds the ScrollNode that's hit by the given point but we
+    // still need to walk up the scroll tree looking for the first node that
+    // can consume delta from the scroll state.
+    scrolling_node = FindNodeToLatch(scroll_state, starting_node, type);
+  }
+
+  if (scroll_on_main_thread) {
+    // Under scroll unification we can request a main thread hit test, but we
+    // should never send scrolls to the main thread.
+    DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
+
+    RecordCompositorSlowScrollMetric(type, MAIN_THREAD);
+    scroll_status.thread = InputHandler::ScrollThread::SCROLL_ON_MAIN_THREAD;
+    return scroll_status;
+  } else if (!scrolling_node) {
+    scroll_status.main_thread_scrolling_reasons =
+        MainThreadScrollingReason::kNoScrollingLayer;
+    if (Settings().is_layer_tree_for_subframe) {
+      // OOPIFs never have a viewport scroll node so if we can't scroll
+      // we need to be bubble up to the parent frame. This happens by
+      // returning SCROLL_UNKNOWN.
+      TRACE_EVENT_INSTANT0("cc", "Ignored - No ScrollNode (OOPIF)",
+                           TRACE_EVENT_SCOPE_THREAD);
+      scroll_status.thread = InputHandler::ScrollThread::SCROLL_UNKNOWN;
+    } else {
+      // If we didn't hit a layer above we'd usually fallback to the
+      // viewport scroll node. However, there may not be one if a scroll
+      // is received before the root layer has been attached. Chrome now
+      // drops input until the first commit is received so this probably
+      // can't happen in a typical browser session but there may still be
+      // configurations where input is allowed prior to a commit.
+      TRACE_EVENT_INSTANT0("cc", "Ignored - No ScrollNode",
+                           TRACE_EVENT_SCOPE_THREAD);
+      scroll_status.thread = InputHandler::ScrollThread::SCROLL_IGNORED;
+    }
+    return scroll_status;
+  }
+
+  DCHECK_EQ(scroll_status.main_thread_scrolling_reasons,
+            MainThreadScrollingReason::kNotScrollingOnMain);
+  DCHECK_EQ(scroll_status.thread,
+            InputHandler::ScrollThread::SCROLL_ON_IMPL_THREAD);
+
+  ActiveTree().SetCurrentlyScrollingNode(scrolling_node);
+
+  DidLatchToScroller(*scroll_state, type);
+
+  // If the viewport is scrolling and it cannot consume any delta hints, the
+  // scroll event will need to get bubbled if the viewport is for a guest or
+  // oopif.
+  if (GetViewport().ShouldScroll(*CurrentlyScrollingNode()) &&
+      !GetViewport().CanScroll(*CurrentlyScrollingNode(), *scroll_state)) {
+    scroll_status.bubble = true;
+  }
+
+  return scroll_status;
+}
+
+InputHandler::ScrollStatus ThreadedInputHandler::RootScrollBegin(
+    ScrollState* scroll_state,
+    ui::ScrollInputType type) {
+  TRACE_EVENT0("cc", "ThreadedInputHandler::RootScrollBegin");
+  if (!OuterViewportScrollNode()) {
+    InputHandler::ScrollStatus scroll_status;
+    scroll_status.thread = InputHandler::ScrollThread::SCROLL_IGNORED;
+    scroll_status.main_thread_scrolling_reasons =
+        MainThreadScrollingReason::kNoScrollingLayer;
+    return scroll_status;
+  }
+
+  scroll_state->data()->set_current_native_scrolling_element(
+      OuterViewportScrollNode()->element_id);
+  InputHandler::ScrollStatus scroll_status = ScrollBegin(scroll_state, type);
+
+  // Since we provided an ElementId, there should never be a need to perform a
+  // hit test.
+  DCHECK(!scroll_status.needs_main_thread_hit_test);
+
+  return scroll_status;
+}
+
+InputHandlerScrollResult ThreadedInputHandler::ScrollUpdate(
+    ScrollState* scroll_state,
+    base::TimeDelta delayed_by) {
+  DCHECK(scroll_state);
+
+  // The current_native_scrolling_element should only be set for ScrollBegin.
+  DCHECK(!scroll_state->data()->current_native_scrolling_element());
+  TRACE_EVENT2("cc", "ThreadedInputHandler::ScrollUpdate", "dx",
+               scroll_state->delta_x(), "dy", scroll_state->delta_y());
+
+  if (!CurrentlyScrollingNode())
+    return InputHandlerScrollResult();
+
+  last_scroll_update_state_ = *scroll_state;
+
+  gfx::Vector2dF resolvedScrollDelta = ResolveScrollGranularityToPixels(
+      *CurrentlyScrollingNode(),
+      gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y()),
+      scroll_state->delta_granularity());
+
+  scroll_state->data()->delta_x = resolvedScrollDelta.x();
+  scroll_state->data()->delta_y = resolvedScrollDelta.y();
+  // The decision of whether or not we'll animate a scroll comes down to
+  // whether the granularity is specified in precise pixels or not. Thus we
+  // need to preserve a precise granularity if that's what was specified; all
+  // others are animated and so can be resolved to regular pixels.
+  if (scroll_state->delta_granularity() !=
+      ui::ScrollGranularity::kScrollByPrecisePixel) {
+    scroll_state->data()->delta_granularity =
+        ui::ScrollGranularity::kScrollByPixel;
+  }
+
+  host_impl_.AccumulateScrollDeltaForTracing(
+      gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y()));
+
+  // Flash the overlay scrollbar even if the scroll delta is 0.
+  if (Settings().scrollbar_flash_after_any_scroll_update) {
+    host_impl_.FlashAllScrollbars(false);
+  } else {
+    ScrollbarAnimationController* animation_controller =
+        host_impl_.ScrollbarAnimationControllerForElementId(
+            CurrentlyScrollingNode()->element_id);
+    if (animation_controller)
+      animation_controller->WillUpdateScroll();
+  }
+
+  float initial_top_controls_offset =
+      host_impl_.browser_controls_manager()->ControlsTopOffset();
+
+  ScrollLatchedScroller(scroll_state, delayed_by);
+
+  bool did_scroll_x = scroll_state->caused_scroll_x();
+  bool did_scroll_y = scroll_state->caused_scroll_y();
+  did_scroll_x_for_scroll_gesture_ |= did_scroll_x;
+  did_scroll_y_for_scroll_gesture_ |= did_scroll_y;
+  bool did_scroll_content = did_scroll_x || did_scroll_y;
+  if (did_scroll_content) {
+    ShowScrollbarsForImplScroll(CurrentlyScrollingNode()->element_id);
+    bool is_animated_scroll = ShouldAnimateScroll(*scroll_state);
+    host_impl_.DidScrollContent(is_animated_scroll);
+  } else {
+    overscroll_delta_for_main_thread_ +=
+        gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y());
+  }
+
+  SetNeedsCommit();
+
+  // Scrolling along an axis resets accumulated root overscroll for that axis.
+  if (did_scroll_x)
+    accumulated_root_overscroll_.set_x(0);
+  if (did_scroll_y)
+    accumulated_root_overscroll_.set_y(0);
+
+  gfx::Vector2dF unused_root_delta;
+  if (GetViewport().ShouldScroll(*CurrentlyScrollingNode())) {
+    unused_root_delta =
+        gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y());
+  }
+
+  // When inner viewport is unscrollable, disable overscrolls.
+  if (auto* inner_viewport_scroll_node = InnerViewportScrollNode()) {
+    unused_root_delta =
+        UserScrollableDelta(*inner_viewport_scroll_node, unused_root_delta);
+  }
+
+  accumulated_root_overscroll_ += unused_root_delta;
+
+  bool did_scroll_top_controls =
+      initial_top_controls_offset !=
+      host_impl_.browser_controls_manager()->ControlsTopOffset();
+
+  InputHandlerScrollResult scroll_result;
+  scroll_result.did_scroll = did_scroll_content || did_scroll_top_controls;
+  scroll_result.did_overscroll_root = !unused_root_delta.IsZero();
+  scroll_result.accumulated_root_overscroll = accumulated_root_overscroll_;
+  scroll_result.unused_scroll_delta = unused_root_delta;
+  scroll_result.overscroll_behavior =
+      scroll_state->is_scroll_chain_cut()
+          ? OverscrollBehavior(OverscrollBehavior::OverscrollBehaviorType::
+                                   kOverscrollBehaviorTypeNone)
+          : ActiveTree().overscroll_behavior();
+
+  if (scroll_result.did_scroll) {
+    // Scrolling can change the root scroll offset, so inform the synchronous
+    // input handler.
+    UpdateRootLayerStateForSynchronousInputHandler();
+  }
+
+  scroll_result.current_visual_offset =
+      ScrollOffsetToVector2dF(GetVisualScrollOffset(*CurrentlyScrollingNode()));
+  float scale_factor = ActiveTree().page_scale_factor_for_scroll();
+  scroll_result.current_visual_offset.Scale(scale_factor);
+
+  // Run animations which need to respond to updated scroll offset.
+  host_impl_.mutator_host()->TickScrollAnimations(
+      host_impl_.CurrentBeginFrameArgs().frame_time, GetScrollTree());
+
+  return scroll_result;
+}
+
+void ThreadedInputHandler::ScrollEnd(bool should_snap) {
+  scrollbar_controller_->ResetState();
+  if (!CurrentlyScrollingNode())
+    return;
+
+  // Note that if we deferred the scroll end then we should not snap. We will
+  // snap once we deliver the deferred scroll end.
+  if (host_impl_.mutator_host()->ImplOnlyScrollAnimatingElement()) {
+    DCHECK(!deferred_scroll_end_);
+    deferred_scroll_end_ = true;
+    return;
+  }
+
+  if (should_snap && SnapAtScrollEnd()) {
+    deferred_scroll_end_ = true;
+    return;
+  }
+
+  DCHECK(latched_scroll_type_.has_value());
+
+  host_impl_.browser_controls_manager()->ScrollEnd();
+
+  ClearCurrentlyScrollingNode();
+  deferred_scroll_end_ = false;
+  scroll_gesture_did_end_ = true;
+  SetNeedsCommit();
+}
+
+void ThreadedInputHandler::RecordScrollBegin(
+    ui::ScrollInputType input_type,
+    ScrollBeginThreadState scroll_start_state) {
+  auto tracker_type = GetTrackerTypeForScroll(input_type);
+  DCHECK_NE(tracker_type, FrameSequenceTrackerType::kMaxType);
+
+  // The main-thread is the 'scrolling thread' if:
+  //   (1) the scroll is driven by the main thread, or
+  //   (2) the scroll is driven by the compositor, but blocked on the main
+  //       thread.
+  // Otherwise, the compositor-thread is the 'scrolling thread'.
+  // TODO(crbug.com/1060712): We should also count 'main thread' as the
+  // 'scrolling thread' if the layer being scrolled has scroll-event handlers.
+  FrameSequenceMetrics::ThreadType scrolling_thread;
+  switch (scroll_start_state) {
+    case ScrollBeginThreadState::kScrollingOnCompositor:
+      scrolling_thread = FrameSequenceMetrics::ThreadType::kCompositor;
+      break;
+    case ScrollBeginThreadState::kScrollingOnMain:
+    case ScrollBeginThreadState::kScrollingOnCompositorBlockedOnMain:
+      scrolling_thread = FrameSequenceMetrics::ThreadType::kMain;
+      break;
+  }
+  host_impl_.frame_trackers().StartScrollSequence(tracker_type,
+                                                  scrolling_thread);
+}
+
+void ThreadedInputHandler::RecordScrollEnd(ui::ScrollInputType input_type) {
+  host_impl_.frame_trackers().StopSequence(GetTrackerTypeForScroll(input_type));
+}
+
+InputHandlerPointerResult ThreadedInputHandler::MouseMoveAt(
+    const gfx::Point& viewport_point) {
+  InputHandlerPointerResult result;
+  if (Settings().compositor_threaded_scrollbar_scrolling) {
+    result =
+        scrollbar_controller_->HandlePointerMove(gfx::PointF(viewport_point));
+  }
+
+  // Early out if there are no animation controllers and avoid the hit test.
+  // This happens on platforms without animated scrollbars.
+  if (!host_impl_.HasAnimatedScrollbars())
+    return result;
+
+  gfx::PointF device_viewport_point = gfx::ScalePoint(
+      gfx::PointF(viewport_point), host_impl_.DeviceScaleFactor());
+
+  ScrollHitTestResult hit_test = HitTestScrollNode(device_viewport_point);
+
+  ScrollNode* scroll_node = hit_test.scroll_node;
+
+  // The hit test can fail in some cases, e.g. we don't know if a region of a
+  // squashed layer has content or is empty.
+  if (!hit_test.hit_test_successful || !scroll_node)
+    return result;
+
+  // Scrollbars for the viewport are registered with the outer viewport layer.
+  if (scroll_node->scrolls_inner_viewport)
+    scroll_node = OuterViewportScrollNode();
+
+  ElementId scroll_element_id = scroll_node->element_id;
+  ScrollbarAnimationController* new_animation_controller =
+      host_impl_.ScrollbarAnimationControllerForElementId(scroll_element_id);
+  if (scroll_element_id != scroll_element_id_mouse_currently_over_) {
+    ScrollbarAnimationController* old_animation_controller =
+        host_impl_.ScrollbarAnimationControllerForElementId(
+            scroll_element_id_mouse_currently_over_);
+    if (old_animation_controller)
+      old_animation_controller->DidMouseLeave();
+
+    scroll_element_id_mouse_currently_over_ = scroll_element_id;
+
+    // Experiment: Enables will flash scrollbar when user move mouse enter a
+    // scrollable area.
+    if (Settings().scrollbar_flash_when_mouse_enter && new_animation_controller)
+      new_animation_controller->DidScrollUpdate();
+  }
+
+  if (!new_animation_controller)
+    return result;
+
+  new_animation_controller->DidMouseMove(device_viewport_point);
+
+  return result;
+}
+
+InputHandlerPointerResult ThreadedInputHandler::MouseDown(
+    const gfx::PointF& viewport_point,
+    bool shift_modifier) {
+  ScrollbarAnimationController* animation_controller =
+      host_impl_.ScrollbarAnimationControllerForElementId(
+          scroll_element_id_mouse_currently_over_);
+  if (animation_controller) {
+    animation_controller->DidMouseDown();
+    scroll_element_id_mouse_currently_captured_ =
+        scroll_element_id_mouse_currently_over_;
+  }
+
+  InputHandlerPointerResult result;
+  if (Settings().compositor_threaded_scrollbar_scrolling) {
+    result = scrollbar_controller_->HandlePointerDown(viewport_point,
+                                                      shift_modifier);
+  }
+
+  return result;
+}
+
+InputHandlerPointerResult ThreadedInputHandler::MouseUp(
+    const gfx::PointF& viewport_point) {
+  if (scroll_element_id_mouse_currently_captured_) {
+    ScrollbarAnimationController* animation_controller =
+        host_impl_.ScrollbarAnimationControllerForElementId(
+            scroll_element_id_mouse_currently_captured_);
+
+    scroll_element_id_mouse_currently_captured_ = ElementId();
+
+    if (animation_controller)
+      animation_controller->DidMouseUp();
+  }
+
+  InputHandlerPointerResult result;
+  if (Settings().compositor_threaded_scrollbar_scrolling)
+    result = scrollbar_controller_->HandlePointerUp(viewport_point);
+
+  return result;
+}
+
+void ThreadedInputHandler::MouseLeave() {
+  for (auto& pair : host_impl_.get_scrollbar_animation_controllers())
+    pair.second->DidMouseLeave();
+  scroll_element_id_mouse_currently_over_ = ElementId();
+}
+
+ElementId ThreadedInputHandler::FindFrameElementIdAtPoint(
+    const gfx::PointF& viewport_point) {
+  gfx::PointF device_viewport_point = gfx::ScalePoint(
+      gfx::PointF(viewport_point), host_impl_.DeviceScaleFactor());
+  return ActiveTree().FindFrameElementIdAtPoint(device_viewport_point);
+}
+
+void ThreadedInputHandler::RequestUpdateForSynchronousInputHandler() {
+  UpdateRootLayerStateForSynchronousInputHandler();
+}
+
+void ThreadedInputHandler::SetSynchronousInputHandlerRootScrollOffset(
+    const gfx::ScrollOffset& root_content_offset) {
+  TRACE_EVENT2(
+      "cc", "ThreadedInputHandler::SetSynchronousInputHandlerRootScrollOffset",
+      "offset_x", root_content_offset.x(), "offset_y", root_content_offset.y());
+
+  gfx::Vector2dF physical_delta =
+      root_content_offset.DeltaFrom(GetViewport().TotalScrollOffset());
+  physical_delta.Scale(ActiveTree().page_scale_factor_for_scroll());
+
+  bool changed = !GetViewport()
+                      .ScrollBy(physical_delta,
+                                /*viewport_point=*/gfx::Point(),
+                                /*is_direct_manipulation=*/false,
+                                /*affect_browser_controls=*/false,
+                                /*scroll_outer_viewport=*/true)
+                      .consumed_delta.IsZero();
+  if (!changed)
+    return;
+
+  ShowScrollbarsForImplScroll(OuterViewportScrollNode()->element_id);
+  SetNeedsCommit();
+
+  // After applying the synchronous input handler's scroll offset, tell it what
+  // we ended up with.
+  UpdateRootLayerStateForSynchronousInputHandler();
+
+  host_impl_.DidSetRootScrollOffsetForSynchronousInputHandler();
+}
+
+void ThreadedInputHandler::PinchGestureBegin() {
+  pinch_gesture_active_ = true;
+  pinch_gesture_end_should_clear_scrolling_node_ = !CurrentlyScrollingNode();
+
+  TRACE_EVENT_INSTANT1("cc", "SetCurrentlyScrollingNode PinchGestureBegin",
+                       TRACE_EVENT_SCOPE_THREAD, "isNull",
+                       OuterViewportScrollNode() ? false : true);
+  ActiveTree().SetCurrentlyScrollingNode(OuterViewportScrollNode());
+  host_impl_.browser_controls_manager()->PinchBegin();
+  host_impl_.DidStartPinchZoom();
+}
+
+void ThreadedInputHandler::PinchGestureUpdate(float magnify_delta,
+                                              const gfx::Point& anchor) {
+  TRACE_EVENT0("cc", "ThreadedInputHandler::PinchGestureUpdate");
+  if (!InnerViewportScrollNode())
+    return;
+  has_pinch_zoomed_ = true;
+  GetViewport().PinchUpdate(magnify_delta, anchor);
+  SetNeedsCommit();
+  host_impl_.DidUpdatePinchZoom();
+  // Pinching can change the root scroll offset, so inform the synchronous input
+  // handler.
+  UpdateRootLayerStateForSynchronousInputHandler();
+}
+
+void ThreadedInputHandler::PinchGestureEnd(const gfx::Point& anchor,
+                                           bool snap_to_min) {
+  pinch_gesture_active_ = false;
+  if (pinch_gesture_end_should_clear_scrolling_node_) {
+    pinch_gesture_end_should_clear_scrolling_node_ = false;
+    ClearCurrentlyScrollingNode();
+  }
+  GetViewport().PinchEnd(anchor, snap_to_min);
+  host_impl_.browser_controls_manager()->PinchEnd();
+  SetNeedsCommit();
+  host_impl_.DidEndPinchZoom();
+}
+
+void ThreadedInputHandler::SetNeedsAnimateInput() {
+  host_impl_.SetNeedsAnimateInput();
+}
+
+bool ThreadedInputHandler::IsCurrentlyScrollingViewport() const {
+  auto* node = CurrentlyScrollingNode();
+  if (!node)
+    return false;
+  return GetViewport().ShouldScroll(*node);
+}
+
+EventListenerProperties ThreadedInputHandler::GetEventListenerProperties(
+    EventListenerClass event_class) const {
+  return ActiveTree().event_listener_properties(event_class);
+}
+
+bool ThreadedInputHandler::HasBlockingWheelEventHandlerAt(
+    const gfx::Point& viewport_point) const {
+  gfx::PointF device_viewport_point = gfx::ScalePoint(
+      gfx::PointF(viewport_point), host_impl_.DeviceScaleFactor());
+
+  LayerImpl* layer_impl_with_wheel_event_handler =
+      ActiveTree().FindLayerThatIsHitByPointInWheelEventHandlerRegion(
+          device_viewport_point);
+
+  return layer_impl_with_wheel_event_handler;
+}
+
+InputHandler::TouchStartOrMoveEventListenerType
+ThreadedInputHandler::EventListenerTypeForTouchStartOrMoveAt(
+    const gfx::Point& viewport_point,
+    TouchAction* out_touch_action) {
+  gfx::PointF device_viewport_point = gfx::ScalePoint(
+      gfx::PointF(viewport_point), host_impl_.DeviceScaleFactor());
+
+  LayerImpl* layer_impl_with_touch_handler =
+      ActiveTree().FindLayerThatIsHitByPointInTouchHandlerRegion(
+          device_viewport_point);
+
+  if (layer_impl_with_touch_handler == nullptr) {
+    if (out_touch_action)
+      *out_touch_action = TouchAction::kAuto;
+    return InputHandler::TouchStartOrMoveEventListenerType::NO_HANDLER;
+  }
+
+  if (out_touch_action) {
+    gfx::Transform layer_screen_space_transform =
+        layer_impl_with_touch_handler->ScreenSpaceTransform();
+    gfx::Transform inverse_layer_screen_space(
+        gfx::Transform::kSkipInitialization);
+    bool can_be_inversed =
+        layer_screen_space_transform.GetInverse(&inverse_layer_screen_space);
+    // Getting here indicates that |layer_impl_with_touch_handler| is non-null,
+    // which means that the |hit| in FindClosestMatchingLayer() is true, which
+    // indicates that the inverse is available.
+    DCHECK(can_be_inversed);
+    bool clipped = false;
+    gfx::Point3F planar_point = MathUtil::ProjectPoint3D(
+        inverse_layer_screen_space, device_viewport_point, &clipped);
+    gfx::PointF hit_test_point_in_layer_space =
+        gfx::PointF(planar_point.x(), planar_point.y());
+    const auto& region = layer_impl_with_touch_handler->touch_action_region();
+    gfx::Point point = gfx::ToRoundedPoint(hit_test_point_in_layer_space);
+    *out_touch_action = region.GetAllowedTouchAction(point);
+  }
+
+  if (!CurrentlyScrollingNode())
+    return InputHandler::TouchStartOrMoveEventListenerType::HANDLER;
+
+  // Check if the touch start (or move) hits on the current scrolling layer or
+  // its descendant. layer_impl_with_touch_handler is the layer hit by the
+  // pointer and has an event handler, otherwise it is null. We want to compare
+  // the most inner layer we are hitting on which may not have an event listener
+  // with the actual scrolling layer.
+  LayerImpl* layer_impl =
+      ActiveTree().FindLayerThatIsHitByPoint(device_viewport_point);
+  bool is_ancestor = IsScrolledBy(layer_impl, CurrentlyScrollingNode());
+  return is_ancestor ? InputHandler::TouchStartOrMoveEventListenerType::
+                           HANDLER_ON_SCROLLING_LAYER
+                     : InputHandler::TouchStartOrMoveEventListenerType::HANDLER;
+}
+
+std::unique_ptr<SwapPromiseMonitor>
+ThreadedInputHandler::CreateLatencyInfoSwapPromiseMonitor(
+    ui::LatencyInfo* latency) {
+  return host_impl_.CreateLatencyInfoSwapPromiseMonitor(latency);
+}
+
+std::unique_ptr<EventsMetricsManager::ScopedMonitor>
+ThreadedInputHandler::GetScopedEventMetricsMonitor(
+    std::unique_ptr<EventMetrics> event_metrics) {
+  return host_impl_.GetScopedEventMetricsMonitor(std::move(event_metrics));
+}
+
+ScrollElasticityHelper* ThreadedInputHandler::CreateScrollElasticityHelper() {
+  DCHECK(!scroll_elasticity_helper_);
+  if (Settings().enable_elastic_overscroll) {
+    scroll_elasticity_helper_.reset(
+        ScrollElasticityHelper::CreateForLayerTreeHostImpl(&host_impl_));
+  }
+  return scroll_elasticity_helper_.get();
+}
+
+bool ThreadedInputHandler::GetScrollOffsetForLayer(ElementId element_id,
+                                                   gfx::ScrollOffset* offset) {
+  ScrollTree& scroll_tree = GetScrollTree();
+  ScrollNode* scroll_node = scroll_tree.FindNodeFromElementId(element_id);
+  if (!scroll_node)
+    return false;
+  *offset = scroll_tree.current_scroll_offset(element_id);
+  return true;
+}
+
+bool ThreadedInputHandler::ScrollLayerTo(ElementId element_id,
+                                         const gfx::ScrollOffset& offset) {
+  ScrollTree& scroll_tree = GetScrollTree();
+  ScrollNode* scroll_node = scroll_tree.FindNodeFromElementId(element_id);
+  if (!scroll_node)
+    return false;
+
+  scroll_tree.ScrollBy(
+      *scroll_node,
+      ScrollOffsetToVector2dF(offset -
+                              scroll_tree.current_scroll_offset(element_id)),
+      &ActiveTree());
+  return true;
+}
+
+bool ThreadedInputHandler::ScrollingShouldSwitchtoMainThread() {
+  DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
+  ScrollTree& scroll_tree = GetScrollTree();
+  ScrollNode* scroll_node = scroll_tree.CurrentlyScrollingNode();
+
+  if (!scroll_node)
+    return true;
+
+  for (; scroll_tree.parent(scroll_node);
+       scroll_node = scroll_tree.parent(scroll_node)) {
+    if (!!scroll_node->main_thread_scrolling_reasons)
+      return true;
+  }
+
+  return false;
+}
+
+bool ThreadedInputHandler::GetSnapFlingInfoAndSetAnimatingSnapTarget(
+    const gfx::Vector2dF& natural_displacement_in_viewport,
+    gfx::Vector2dF* out_initial_position,
+    gfx::Vector2dF* out_target_position) {
+  ScrollNode* scroll_node = CurrentlyScrollingNode();
+  if (!scroll_node || !scroll_node->snap_container_data.has_value())
+    return false;
+  const SnapContainerData& data = scroll_node->snap_container_data.value();
+
+  float scale_factor = ActiveTree().page_scale_factor_for_scroll();
+  gfx::Vector2dF natural_displacement_in_content =
+      gfx::ScaleVector2d(natural_displacement_in_viewport, 1.f / scale_factor);
+
+  gfx::ScrollOffset current_offset = GetVisualScrollOffset(*scroll_node);
+  *out_initial_position = ScrollOffsetToVector2dF(current_offset);
+
+  // CC side always uses fractional scroll deltas.
+  bool use_fractional_offsets = true;
+  gfx::ScrollOffset snap_offset;
+  TargetSnapAreaElementIds snap_target_ids;
+  std::unique_ptr<SnapSelectionStrategy> strategy =
+      SnapSelectionStrategy::CreateForEndAndDirection(
+          current_offset, gfx::ScrollOffset(natural_displacement_in_content),
+          use_fractional_offsets);
+  if (!data.FindSnapPosition(*strategy, &snap_offset, &snap_target_ids))
+    return false;
+  scroll_animating_snap_target_ids_ = snap_target_ids;
+
+  *out_target_position = ScrollOffsetToVector2dF(snap_offset);
+  out_target_position->Scale(scale_factor);
+  out_initial_position->Scale(scale_factor);
+  return true;
+}
+
+void ThreadedInputHandler::ScrollEndForSnapFling(bool did_finish) {
+  ScrollNode* scroll_node = CurrentlyScrollingNode();
+  // When a snap fling animation reaches its intended target then we update the
+  // scrolled node's snap targets. This also ensures blink learns about the new
+  // snap targets for this scrolling element.
+  if (did_finish && scroll_node &&
+      scroll_node->snap_container_data.has_value()) {
+    scroll_node->snap_container_data.value().SetTargetSnapAreaElementIds(
+        scroll_animating_snap_target_ids_);
+    updated_snapped_elements_.insert(scroll_node->element_id);
+    SetNeedsCommit();
+  }
+  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
+  ScrollEnd(false /* should_snap */);
+}
+
+void ThreadedInputHandler::NotifyInputEvent() {
+  host_impl_.NotifyInputEvent();
+}
+
+ScrollNode* ThreadedInputHandler::CurrentlyScrollingNode() {
+  return GetScrollTree().CurrentlyScrollingNode();
+}
+
+const ScrollNode* ThreadedInputHandler::CurrentlyScrollingNode() const {
+  return GetScrollTree().CurrentlyScrollingNode();
+}
+
+ScrollTree& ThreadedInputHandler::GetScrollTree() {
+  return ActiveTree().property_trees()->scroll_tree;
+}
+
+ScrollTree& ThreadedInputHandler::GetScrollTree() const {
+  return ActiveTree().property_trees()->scroll_tree;
+}
+
+ScrollNode* ThreadedInputHandler::InnerViewportScrollNode() const {
+  return ActiveTree().InnerViewportScrollNode();
+}
+
+ScrollNode* ThreadedInputHandler::OuterViewportScrollNode() const {
+  return ActiveTree().OuterViewportScrollNode();
+}
+
+Viewport& ThreadedInputHandler::GetViewport() const {
+  return host_impl_.viewport();
+}
+
+void ThreadedInputHandler::SetNeedsCommit() {
+  host_impl_.SetNeedsCommitInputChanges();
+}
+
+LayerTreeImpl& ThreadedInputHandler::ActiveTree() {
+  DCHECK(host_impl_.active_tree());
+  return *host_impl_.active_tree();
+}
+
+LayerTreeImpl& ThreadedInputHandler::ActiveTree() const {
+  DCHECK(host_impl_.active_tree());
+  return *host_impl_.active_tree();
+}
+
+const LayerTreeSettings& ThreadedInputHandler::Settings() const {
+  return host_impl_.settings();
+}
+
+FrameSequenceTrackerType ThreadedInputHandler::GetTrackerTypeForScroll(
+    ui::ScrollInputType input_type) const {
+  switch (input_type) {
+    case ui::ScrollInputType::kWheel:
+      return FrameSequenceTrackerType::kWheelScroll;
+    case ui::ScrollInputType::kTouchscreen:
+      return FrameSequenceTrackerType::kTouchScroll;
+    case ui::ScrollInputType::kScrollbar:
+      return FrameSequenceTrackerType::kScrollbarScroll;
+    case ui::ScrollInputType::kAutoscroll:
+      return FrameSequenceTrackerType::kMaxType;
+  }
+}
+
+bool ThreadedInputHandler::IsMainThreadScrolling(
+    const InputHandler::ScrollStatus& status,
+    const ScrollNode* scroll_node) const {
+  if (status.thread == InputHandler::ScrollThread::SCROLL_ON_MAIN_THREAD) {
+    if (!!scroll_node->main_thread_scrolling_reasons) {
+      DCHECK(MainThreadScrollingReason::MainThreadCanSetScrollReasons(
+          status.main_thread_scrolling_reasons));
+    } else {
+      DCHECK(MainThreadScrollingReason::CompositorCanSetScrollReasons(
+          status.main_thread_scrolling_reasons));
+    }
+    return true;
+  }
+  return false;
+}
+
+gfx::Vector2dF ThreadedInputHandler::UserScrollableDelta(
+    const ScrollNode& node,
+    const gfx::Vector2dF& delta) const {
+  gfx::Vector2dF adjusted_delta = delta;
+  if (!node.user_scrollable_horizontal)
+    adjusted_delta.set_x(0);
+  if (!node.user_scrollable_vertical)
+    adjusted_delta.set_y(0);
+
+  return adjusted_delta;
+}
+
+gfx::Vector2dF ThreadedInputHandler::TakeOverscrollDeltaForCommit() {
+  gfx::Vector2dF overscroll_delta = overscroll_delta_for_main_thread_;
+  overscroll_delta_for_main_thread_ = gfx::Vector2dF();
+  return overscroll_delta;
+}
+
+bool ThreadedInputHandler::TakeScrollGestureDidEndForCommit() {
+  bool scroll_gesture_did_end = scroll_gesture_did_end_;
+  scroll_gesture_did_end_ = false;
+  return scroll_gesture_did_end;
+}
+
+base::flat_set<ElementId> ThreadedInputHandler::TakeUpdatedSnappedElements() {
+  base::flat_set<ElementId> ret;
+  updated_snapped_elements_.swap(ret);
+  return ret;
+}
+
+bool ThreadedInputHandler::TakeHasPinchZoomedForCommit() {
+  bool has_pinch_zoomed = has_pinch_zoomed_;
+  has_pinch_zoomed_ = false;
+  return has_pinch_zoomed;
+}
+
+bool ThreadedInputHandler::TakeHasScrolledByWheelForCommit() {
+  bool has_scrolled_by_wheel = has_scrolled_by_wheel_;
+  has_scrolled_by_wheel_ = false;
+  return has_scrolled_by_wheel;
+}
+
+bool ThreadedInputHandler::TakeHasScrolledByTouchForCommit() {
+  bool has_scrolled_by_touch = has_scrolled_by_touch_;
+  has_scrolled_by_touch_ = false;
+  return has_scrolled_by_touch;
+}
+
+bool ThreadedInputHandler::TakeHasScrolledByPrecisionTouchpadForCommit() {
+  bool has_scrolled_by_precisiontouchpad = has_scrolled_by_precisiontouchpad_;
+  has_scrolled_by_precisiontouchpad_ = false;
+  return has_scrolled_by_precisiontouchpad;
+}
+
+void ThreadedInputHandler::WillShutdown() {
+  if (input_handler_client_) {
+    input_handler_client_->WillShutdown();
+    input_handler_client_ = nullptr;
+  }
+
+  if (scroll_elasticity_helper_)
+    scroll_elasticity_helper_.reset();
+}
+
+void ThreadedInputHandler::WillDraw() {
+  if (input_handler_client_)
+    input_handler_client_->ReconcileElasticOverscrollAndRootScroll();
+}
+
+void ThreadedInputHandler::WillBeginImplFrame(const viz::BeginFrameArgs& args) {
+  if (input_handler_client_) {
+    scrollbar_controller_->WillBeginImplFrame();
+    input_handler_client_->DeliverInputForBeginFrame(args);
+  }
+}
+
+void ThreadedInputHandler::DidCommitFromBlink() {
+  // In high latency mode commit cannot finish within the same frame. We need to
+  // flush input here to make sure they got picked up by |PrepareTiles()|.
+  if (input_handler_client_ &&
+      host_impl_.GetCompositorThreadPhase() == ImplThreadPhase::IDLE)
+    input_handler_client_->DeliverInputForHighLatencyMode();
+}
+
+void ThreadedInputHandler::DidActivatePendingTree() {
+  // The previous scrolling node no longer exists in the new tree.
+  if (!ActiveTree().CurrentlyScrollingNode())
+    ClearCurrentlyScrollingNode();
+}
+
+void ThreadedInputHandler::TickAnimations(base::TimeTicks monotonic_time) {
+  if (input_handler_client_) {
+    // This does not set did_animate, because if the InputHandlerClient
+    // changes anything it will be through the InputHandler interface which
+    // does SetNeedsRedraw.
+    input_handler_client_->Animate(monotonic_time);
+  }
+}
+
+ElementId ThreadedInputHandler::GetLastLatchedScroller() const {
+  return last_latched_scroller_;
+}
+
+void ThreadedInputHandler::ClearLastLatchedScroller() {
+  last_latched_scroller_ = ElementId();
+}
+
+bool ThreadedInputHandler::CurrentScrollAffectsScrollHandler() const {
+  DCHECK(!scroll_affects_scroll_handler_ || CurrentlyScrollingNode());
+  return scroll_affects_scroll_handler_;
+}
+
+// Return true if scrollable node for 'ancestor' is the same as 'child' or an
+// ancestor along the scroll tree.
+bool ThreadedInputHandler::IsScrolledBy(LayerImpl* child,
+                                        ScrollNode* ancestor) {
+  DCHECK(ancestor && ancestor->scrollable);
+  if (!child)
+    return false;
+  DCHECK_EQ(child->layer_tree_impl(), &ActiveTree());
+  ScrollTree& scroll_tree = GetScrollTree();
+  for (ScrollNode* scroll_node = scroll_tree.Node(child->scroll_tree_index());
+       scroll_node; scroll_node = scroll_tree.parent(scroll_node)) {
+    if (scroll_node->id == ancestor->id)
+      return true;
+  }
+  return false;
+}
+
+bool ThreadedInputHandler::IsActivelyPrecisionScrolling() const {
+  if (!CurrentlyScrollingNode())
+    return false;
+
+  if (!last_scroll_update_state_)
+    return false;
+
+  bool did_scroll_content =
+      did_scroll_x_for_scroll_gesture_ || did_scroll_y_for_scroll_gesture_;
+  return !ShouldAnimateScroll(last_scroll_update_state_.value()) &&
+         did_scroll_content;
+}
+
+gfx::Vector2dF ThreadedInputHandler::ResolveScrollGranularityToPixels(
+    const ScrollNode& scroll_node,
+    const gfx::Vector2dF& scroll_delta,
+    ui::ScrollGranularity granularity) {
+  gfx::Vector2dF pixel_delta = scroll_delta;
+
+  if (granularity == ui::ScrollGranularity::kScrollByPage) {
+    // Page should use a percentage of the scroller so change the parameters
+    // and let the percentage case below resolve it.
+    granularity = ui::ScrollGranularity::kScrollByPercentage;
+    pixel_delta.Scale(kMinFractionToStepWhenPaging);
+  }
+
+  if (granularity == ui::ScrollGranularity::kScrollByPercentage) {
+    gfx::SizeF scroller_size = gfx::SizeF(scroll_node.container_bounds);
+
+    gfx::SizeF viewport_size =
+        InnerViewportScrollNode()
+            ? gfx::SizeF(InnerViewportScrollNode()->container_bounds)
+            : gfx::SizeF(ActiveTree().GetDeviceViewport().size());
+
+    // Convert from rootframe coordinates to screen coordinates (physical
+    // pixels).
+    scroller_size.Scale(ActiveTree().page_scale_factor_for_scroll());
+
+    pixel_delta = ScrollUtils::ResolveScrollPercentageToPixels(
+        pixel_delta, scroller_size, viewport_size);
+  }
+
+  return pixel_delta;
+}
+
+InputHandler::ScrollStatus ThreadedInputHandler::TryScroll(
+    const ScrollTree& scroll_tree,
+    ScrollNode* scroll_node) const {
+  DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
+
+  InputHandler::ScrollStatus scroll_status;
+  scroll_status.main_thread_scrolling_reasons =
+      MainThreadScrollingReason::kNotScrollingOnMain;
+  if (scroll_node->main_thread_scrolling_reasons) {
+    TRACE_EVENT1("cc", "LayerImpl::TryScroll: Failed ShouldScrollOnMainThread",
+                 "MainThreadScrollingReason",
+                 scroll_node->main_thread_scrolling_reasons);
+    scroll_status.thread = InputHandler::ScrollThread::SCROLL_ON_MAIN_THREAD;
+    scroll_status.main_thread_scrolling_reasons =
+        scroll_node->main_thread_scrolling_reasons;
+    return scroll_status;
+  }
+
+  gfx::Transform screen_space_transform =
+      scroll_tree.ScreenSpaceTransform(scroll_node->id);
+  if (!screen_space_transform.IsInvertible()) {
+    TRACE_EVENT0("cc", "LayerImpl::TryScroll: Ignored NonInvertibleTransform");
+    scroll_status.thread = InputHandler::ScrollThread::SCROLL_IGNORED;
+    scroll_status.main_thread_scrolling_reasons =
+        MainThreadScrollingReason::kNonInvertibleTransform;
+    return scroll_status;
+  }
+
+  if (!scroll_node->scrollable) {
+    TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored not scrollable");
+    scroll_status.thread = InputHandler::ScrollThread::SCROLL_IGNORED;
+    scroll_status.main_thread_scrolling_reasons =
+        MainThreadScrollingReason::kNotScrollable;
+    return scroll_status;
+  }
+
+  // If an associated scrolling layer is not found, the scroll node must not
+  // support impl-scrolling. The root, secondary root, and inner viewports
+  // are all exceptions to this and may not have a layer because it is not
+  // required for hit testing.
+  if (scroll_node->id != ScrollTree::kRootNodeId &&
+      scroll_node->id != ScrollTree::kSecondaryRootNodeId &&
+      !scroll_node->scrolls_inner_viewport &&
+      !ActiveTree().LayerByElementId(scroll_node->element_id)) {
+    TRACE_EVENT0("cc",
+                 "LayerImpl::tryScroll: Failed due to no scrolling layer");
+    scroll_status.thread = InputHandler::ScrollThread::SCROLL_ON_MAIN_THREAD;
+    scroll_status.main_thread_scrolling_reasons =
+        MainThreadScrollingReason::kNonFastScrollableRegion;
+    return scroll_status;
+  }
+
+  // The a viewport node should be scrolled even if it has no scroll extent
+  // since it'll scroll using the Viewport class which will generate browser
+  // controls movement and overscroll delta.
+  gfx::ScrollOffset max_scroll_offset =
+      scroll_tree.MaxScrollOffset(scroll_node->id);
+  if (max_scroll_offset.x() <= 0 && max_scroll_offset.y() <= 0 &&
+      !GetViewport().ShouldScroll(*scroll_node)) {
+    TRACE_EVENT0("cc",
+                 "LayerImpl::tryScroll: Ignored. Technically scrollable,"
+                 " but has no affordance in either direction.");
+    scroll_status.thread = InputHandler::ScrollThread::SCROLL_IGNORED;
+    scroll_status.main_thread_scrolling_reasons =
+        MainThreadScrollingReason::kNotScrollable;
+    return scroll_status;
+  }
+
+  scroll_status.thread = InputHandler::ScrollThread::SCROLL_ON_IMPL_THREAD;
+  return scroll_status;
+}
+
+base::flat_set<int> ThreadedInputHandler::NonFastScrollableNodes(
+    const gfx::PointF& device_viewport_point) const {
+  base::flat_set<int> non_fast_scrollable_nodes;
+
+  const auto& non_fast_layers =
+      ActiveTree().FindLayersHitByPointInNonFastScrollableRegion(
+          device_viewport_point);
+  for (const auto* layer : non_fast_layers)
+    non_fast_scrollable_nodes.insert(layer->scroll_tree_index());
+
+  return non_fast_scrollable_nodes;
+}
+
+ScrollNode* ThreadedInputHandler::FindScrollNodeForCompositedScrolling(
+    const gfx::PointF& device_viewport_point,
+    LayerImpl* layer_impl,
+    bool* scroll_on_main_thread,
+    uint32_t* main_thread_scrolling_reasons) {
+  DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
+  DCHECK(scroll_on_main_thread);
+  DCHECK(main_thread_scrolling_reasons);
+  *main_thread_scrolling_reasons =
+      MainThreadScrollingReason::kNotScrollingOnMain;
+
+  const auto& non_fast_scrollable_nodes =
+      NonFastScrollableNodes(device_viewport_point);
+
+  // Walk up the hierarchy and look for a scrollable layer.
+  ScrollTree& scroll_tree = GetScrollTree();
+  ScrollNode* impl_scroll_node = nullptr;
+  if (layer_impl) {
+    // If this is a scrollbar layer, we can't directly use the associated
+    // scroll_node (because the scroll_node associated with this layer will be
+    // the owning scroller's parent). Instead, we first retrieve the scrollable
+    // layer corresponding to the scrollbars owner and then use its
+    // scroll_tree_index instead.
+    int scroll_tree_index = layer_impl->scroll_tree_index();
+    if (layer_impl->IsScrollbarLayer()) {
+      LayerImpl* owner_scroll_layer = ActiveTree().LayerByElementId(
+          ToScrollbarLayer(layer_impl)->scroll_element_id());
+      scroll_tree_index = owner_scroll_layer->scroll_tree_index();
+    }
+
+    ScrollNode* scroll_node = scroll_tree.Node(scroll_tree_index);
+    for (; scroll_tree.parent(scroll_node);
+         scroll_node = scroll_tree.parent(scroll_node)) {
+      // The content layer can also block attempts to scroll outside the main
+      // thread.
+      InputHandler::ScrollStatus status = TryScroll(scroll_tree, scroll_node);
+      if (IsMainThreadScrolling(status, scroll_node)) {
+        *scroll_on_main_thread = true;
+        *main_thread_scrolling_reasons = status.main_thread_scrolling_reasons;
+        return scroll_node;
+      }
+
+      if (non_fast_scrollable_nodes.contains(scroll_node->id)) {
+        *scroll_on_main_thread = true;
+        *main_thread_scrolling_reasons =
+            MainThreadScrollingReason::kNonFastScrollableRegion;
+        return scroll_node;
+      }
+
+      if (status.thread == InputHandler::ScrollThread::SCROLL_ON_IMPL_THREAD &&
+          !impl_scroll_node) {
+        impl_scroll_node = scroll_node;
+      }
+    }
+  }
+
+  // TODO(bokan): We shouldn't need this - ordinarily all scrolls should pass
+  // through the outer viewport. If we aren't able to find a scroller we should
+  // return nullptr here and ignore the scroll. However, it looks like on some
+  // pages (reddit.com) we start scrolling from the inner node.
+  if (!impl_scroll_node)
+    impl_scroll_node = InnerViewportScrollNode();
+
+  if (!impl_scroll_node)
+    return nullptr;
+
+  impl_scroll_node = GetNodeToScroll(impl_scroll_node);
+
+  // Ensure that final scroll node scrolls on impl thread (crbug.com/625100)
+  InputHandler::ScrollStatus status = TryScroll(scroll_tree, impl_scroll_node);
+  if (IsMainThreadScrolling(status, impl_scroll_node)) {
+    *scroll_on_main_thread = true;
+    *main_thread_scrolling_reasons = status.main_thread_scrolling_reasons;
+  } else if (non_fast_scrollable_nodes.contains(impl_scroll_node->id)) {
+    *scroll_on_main_thread = true;
+    *main_thread_scrolling_reasons =
+        MainThreadScrollingReason::kNonFastScrollableRegion;
+  }
+
+  return impl_scroll_node;
+}
+
+ThreadedInputHandler::ScrollHitTestResult
+ThreadedInputHandler::HitTestScrollNode(
+    const gfx::PointF& device_viewport_point) const {
+  ScrollHitTestResult result;
+  result.scroll_node = nullptr;
+  result.hit_test_successful = false;
+
+  std::vector<const LayerImpl*> layers =
+      ActiveTree().FindAllLayersUpToAndIncludingFirstScrollable(
+          device_viewport_point);
+
+  // It's theoretically possible to hit no layers or only non-scrolling layers.
+  // e.g. an API hit test outside the viewport. In that case, just fallback to
+  // scrolling the viewport.
+  if (layers.empty() || !layers.back()->IsScrollerOrScrollbar()) {
+    result.hit_test_successful = true;
+    if (InnerViewportScrollNode())
+      result.scroll_node = GetNodeToScroll(InnerViewportScrollNode());
+
+    return result;
+  }
+
+  const LayerImpl* scroller_layer = layers.back();
+  layers.pop_back();
+
+  // Go through each layer in front of the scroller. Any of them may block
+  // scrolling if they come from outside the scroller's scroll-subtree or if we
+  // hit a non-fast-scrolling-region.
+  for (const auto* layer_impl : layers) {
+    DCHECK(!layer_impl->IsScrollbarLayer());
+
+    // There are some cases where the hit layer may not be correct (e.g. layer
+    // squashing, pointer-events:none layer) because the compositor doesn't
+    // know what parts of the layer (if any) are actually visible to hit
+    // testing. This is fine if we can determine that the scrolling node will
+    // be the same regardless of whether we hit an opaque or transparent (to
+    // hit testing) point of the layer. If the scrolling node may depend on
+    // this, we have to get a hit test from the main thread.
+    if (!IsInitialScrollHitTestReliable(layer_impl, scroller_layer)) {
+      TRACE_EVENT_INSTANT0("cc", "Failed Hit Test", TRACE_EVENT_SCOPE_THREAD);
+      return result;
+    }
+
+    // If we hit a non-fast scrollable region, that means there's some reason we
+    // can't scroll in this region. Primarily, because there's another scroller
+    // there that isn't composited and we don't know about so we'll return
+    // nullptr in that case.
+    if (ActiveTree().PointHitsNonFastScrollableRegion(device_viewport_point,
+                                                      *layer_impl)) {
+      return result;
+    }
+  }
+
+  // If we hit a scrollbar layer, get the ScrollNode from its associated
+  // scrolling layer, rather than directly from the scrollbar layer. The latter
+  // would return the parent scroller's ScrollNode.
+  if (scroller_layer->IsScrollbarLayer()) {
+    scroller_layer = ActiveTree().LayerByElementId(
+        ToScrollbarLayer(scroller_layer)->scroll_element_id());
+    DCHECK(scroller_layer);
+  } else {
+    // We need to also make sure the scroller itself doesn't have a non-fast
+    // scrolling region in the hit tested area.
+    if (ActiveTree().PointHitsNonFastScrollableRegion(device_viewport_point,
+                                                      *scroller_layer))
+      return result;
+  }
+
+  ScrollNode* scroll_node =
+      GetScrollTree().Node(scroller_layer->scroll_tree_index());
+
+  result.scroll_node = GetNodeToScroll(scroll_node);
+  result.hit_test_successful = true;
+  return result;
+}
+
+// Requires falling back to main thread scrolling when it hit tests in scrollbar
+// from touch.
+bool ThreadedInputHandler::IsTouchDraggingScrollbar(
+    LayerImpl* first_scrolling_layer_or_scrollbar,
+    ui::ScrollInputType type) {
+  return first_scrolling_layer_or_scrollbar &&
+         first_scrolling_layer_or_scrollbar->IsScrollbarLayer() &&
+         type == ui::ScrollInputType::kTouchscreen;
+}
+
+void ThreadedInputHandler::ShowScrollbarsForImplScroll(ElementId element_id) {
+  if (Settings().scrollbar_flash_after_any_scroll_update) {
+    host_impl_.FlashAllScrollbars(true);
+    return;
+  }
+  if (!element_id)
+    return;
+  if (ScrollbarAnimationController* animation_controller =
+          host_impl_.ScrollbarAnimationControllerForElementId(element_id))
+    animation_controller->DidScrollUpdate();
+}
+
+ScrollNode* ThreadedInputHandler::GetNodeToScroll(ScrollNode* node) const {
+  // Blink has a notion of a "root scroller", which is the scroller in a page
+  // that is considered to host the main content. Typically this will be the
+  // document/LayoutView contents; however, in some situations Blink may choose
+  // a sub-scroller (div, iframe) that should scroll with "viewport" behavior.
+  // The "root scroller" is the node designated as the outer viewport in CC.
+  // See third_party/blink/renderer/core/page/scrolling/README.md for details.
+  //
+  // "Viewport" scrolling ensures generation of overscroll events, top controls
+  // movement, as well as correct multi-viewport panning in pinch-zoom and
+  // other scenarios.  We use the viewport's outer scroll node to represent the
+  // viewport in the scroll chain and apply scroll delta using CC's Viewport
+  // class.
+  //
+  // Scrolling from position: fixed layers will chain directly up to the inner
+  // viewport. Whether that should use the outer viewport (and thus the
+  // Viewport class) to scroll or not depends on the root scroller scenario
+  // because we don't want setting a root scroller to change the scroll chain
+  // order. The |prevent_viewport_scrolling_from_inner| bit is used to
+  // communicate that context.
+  DCHECK(!node->prevent_viewport_scrolling_from_inner ||
+         node->scrolls_inner_viewport);
+
+  if (node->scrolls_inner_viewport &&
+      !node->prevent_viewport_scrolling_from_inner) {
+    DCHECK(OuterViewportScrollNode());
+    return OuterViewportScrollNode();
+  }
+
+  return node;
+}
+
+bool ThreadedInputHandler::IsInitialScrollHitTestReliable(
+    const LayerImpl* layer_impl,
+    const LayerImpl* first_scrolling_layer_or_scrollbar) const {
+  if (!first_scrolling_layer_or_scrollbar)
+    return true;
+
+  // Hit tests directly on a composited scrollbar are always reliable.
+  if (layer_impl->IsScrollbarLayer()) {
+    DCHECK(layer_impl == first_scrolling_layer_or_scrollbar);
+    return true;
+  }
+
+  ScrollNode* closest_scroll_node = nullptr;
+  auto& scroll_tree = GetScrollTree();
+  ScrollNode* scroll_node = scroll_tree.Node(layer_impl->scroll_tree_index());
+  for (; scroll_tree.parent(scroll_node);
+       scroll_node = scroll_tree.parent(scroll_node)) {
+    // TODO(bokan): |scrollable| appears to always be true in LayerList mode.
+    // In non-LayerList, scroll hit tests should always be reliable because we
+    // don't have situations where a layer can be hit testable but pass some
+    // points through (e.g. squashing layers). Perhaps we can remove this
+    // condition?
+    if (scroll_node->scrollable) {
+      closest_scroll_node = GetNodeToScroll(scroll_node);
+      break;
+    }
+  }
+  if (!closest_scroll_node)
+    return false;
+
+  // If |first_scrolling_layer_or_scrollbar| is not a scrollbar, it must be
+  // a scrollabe layer with a scroll node. If this scroll node corresponds to
+  // first scrollable ancestor along the scroll tree for |layer_impl|, the hit
+  // test has not escaped to other areas of the scroll tree and is reliable.
+  if (!first_scrolling_layer_or_scrollbar->IsScrollbarLayer()) {
+    return closest_scroll_node->id ==
+           first_scrolling_layer_or_scrollbar->scroll_tree_index();
+  }
+
+  return false;
+}
+
+gfx::Vector2dF ThreadedInputHandler::ComputeScrollDelta(
+    const ScrollNode& scroll_node,
+    const gfx::Vector2dF& delta) {
+  ScrollTree& scroll_tree = GetScrollTree();
+  float scale_factor = ActiveTree().page_scale_factor_for_scroll();
+
+  gfx::Vector2dF adjusted_scroll(delta);
+  adjusted_scroll.Scale(1.f / scale_factor);
+  adjusted_scroll = UserScrollableDelta(scroll_node, adjusted_scroll);
+
+  gfx::ScrollOffset old_offset =
+      scroll_tree.current_scroll_offset(scroll_node.element_id);
+  gfx::ScrollOffset new_offset = scroll_tree.ClampScrollOffsetToLimits(
+      old_offset + gfx::ScrollOffset(adjusted_scroll), scroll_node);
+
+  gfx::ScrollOffset scrolled = new_offset - old_offset;
+  return gfx::Vector2dF(scrolled.x(), scrolled.y());
+}
+
+bool ThreadedInputHandler::CalculateLocalScrollDeltaAndStartPoint(
+    const ScrollNode& scroll_node,
+    const gfx::PointF& viewport_point,
+    const gfx::Vector2dF& viewport_delta,
+    gfx::Vector2dF* out_local_scroll_delta,
+    gfx::PointF* out_local_start_point /*= nullptr*/) {
+  // Layers with non-invertible screen space transforms should not have passed
+  // the scroll hit test in the first place.
+  const gfx::Transform screen_space_transform =
+      GetScrollTree().ScreenSpaceTransform(scroll_node.id);
+  DCHECK(screen_space_transform.IsInvertible());
+  gfx::Transform inverse_screen_space_transform(
+      gfx::Transform::kSkipInitialization);
+  bool did_invert =
+      screen_space_transform.GetInverse(&inverse_screen_space_transform);
+  // TODO(shawnsingh): With the advent of impl-side scrolling for non-root
+  // layers, we may need to explicitly handle uninvertible transforms here.
+  DCHECK(did_invert);
+
+  float scale_from_viewport_to_screen_space = host_impl_.DeviceScaleFactor();
+  gfx::PointF screen_space_point =
+      gfx::ScalePoint(viewport_point, scale_from_viewport_to_screen_space);
+
+  gfx::Vector2dF screen_space_delta = viewport_delta;
+  screen_space_delta.Scale(scale_from_viewport_to_screen_space);
+
+  // Project the scroll start and end points to local layer space to find the
+  // scroll delta in layer coordinates.
+  bool start_clipped, end_clipped;
+  gfx::PointF screen_space_end_point = screen_space_point + screen_space_delta;
+  gfx::PointF local_start_point = MathUtil::ProjectPoint(
+      inverse_screen_space_transform, screen_space_point, &start_clipped);
+  gfx::PointF local_end_point = MathUtil::ProjectPoint(
+      inverse_screen_space_transform, screen_space_end_point, &end_clipped);
+  DCHECK(out_local_scroll_delta);
+  *out_local_scroll_delta = local_end_point - local_start_point;
+
+  if (out_local_start_point)
+    *out_local_start_point = local_start_point;
+
+  if (start_clipped || end_clipped)
+    return false;
+
+  return true;
+}
+
+gfx::Vector2dF ThreadedInputHandler::ScrollNodeWithViewportSpaceDelta(
+    const ScrollNode& scroll_node,
+    const gfx::PointF& viewport_point,
+    const gfx::Vector2dF& viewport_delta) {
+  ScrollTree& scroll_tree = GetScrollTree();
+  gfx::PointF local_start_point;
+  gfx::Vector2dF local_scroll_delta;
+  if (!CalculateLocalScrollDeltaAndStartPoint(
+          scroll_node, viewport_point, viewport_delta, &local_scroll_delta,
+          &local_start_point)) {
+    return gfx::Vector2dF();
+  }
+
+  bool scrolls_outer_viewport = scroll_node.scrolls_outer_viewport;
+  TRACE_EVENT2("cc", "ScrollNodeWithViewportSpaceDelta", "delta_y",
+               local_scroll_delta.y(), "is_outer", scrolls_outer_viewport);
+
+  // Apply the scroll delta.
+  gfx::ScrollOffset previous_offset =
+      scroll_tree.current_scroll_offset(scroll_node.element_id);
+  scroll_tree.ScrollBy(scroll_node, local_scroll_delta, &ActiveTree());
+  gfx::ScrollOffset scrolled =
+      scroll_tree.current_scroll_offset(scroll_node.element_id) -
+      previous_offset;
+
+  TRACE_EVENT_INSTANT1("cc", "ConsumedDelta", TRACE_EVENT_SCOPE_THREAD, "y",
+                       scrolled.y());
+
+  // Get the end point in the layer's content space so we can apply its
+  // ScreenSpaceTransform.
+  gfx::PointF actual_local_end_point =
+      local_start_point + gfx::Vector2dF(scrolled.x(), scrolled.y());
+
+  // Calculate the applied scroll delta in viewport space coordinates.
+  bool end_clipped;
+  const gfx::Transform screen_space_transform =
+      scroll_tree.ScreenSpaceTransform(scroll_node.id);
+  gfx::PointF actual_screen_space_end_point = MathUtil::MapPoint(
+      screen_space_transform, actual_local_end_point, &end_clipped);
+  DCHECK(!end_clipped);
+  if (end_clipped)
+    return gfx::Vector2dF();
+
+  float scale_from_viewport_to_screen_space = host_impl_.DeviceScaleFactor();
+  gfx::PointF actual_viewport_end_point = gfx::ScalePoint(
+      actual_screen_space_end_point, 1.f / scale_from_viewport_to_screen_space);
+  return actual_viewport_end_point - viewport_point;
+}
+
+gfx::Vector2dF ThreadedInputHandler::ScrollNodeWithLocalDelta(
+    const ScrollNode& scroll_node,
+    const gfx::Vector2dF& local_delta) const {
+  bool scrolls_outer_viewport = scroll_node.scrolls_outer_viewport;
+  TRACE_EVENT2("cc", "ScrollNodeWithLocalDelta", "delta_y", local_delta.y(),
+               "is_outer", scrolls_outer_viewport);
+  float page_scale_factor = ActiveTree().page_scale_factor_for_scroll();
+
+  ScrollTree& scroll_tree = GetScrollTree();
+  gfx::ScrollOffset previous_offset =
+      scroll_tree.current_scroll_offset(scroll_node.element_id);
+  gfx::Vector2dF delta = local_delta;
+  delta.Scale(1.f / page_scale_factor);
+  scroll_tree.ScrollBy(scroll_node, delta, &ActiveTree());
+  gfx::ScrollOffset scrolled =
+      scroll_tree.current_scroll_offset(scroll_node.element_id) -
+      previous_offset;
+  gfx::Vector2dF consumed_scroll(scrolled.x(), scrolled.y());
+  consumed_scroll.Scale(page_scale_factor);
+  TRACE_EVENT_INSTANT1("cc", "ConsumedDelta", TRACE_EVENT_SCOPE_THREAD, "y",
+                       consumed_scroll.y());
+
+  return consumed_scroll;
+}
+
+// TODO(danakj): Make this into two functions, one with delta, one with
+// viewport_point, no bool required.
+gfx::Vector2dF ThreadedInputHandler::ScrollSingleNode(
+    const ScrollNode& scroll_node,
+    const gfx::Vector2dF& delta,
+    const gfx::Point& viewport_point,
+    bool is_direct_manipulation) {
+  gfx::Vector2dF adjusted_delta = UserScrollableDelta(scroll_node, delta);
+
+  // Events representing direct manipulation of the screen (such as gesture
+  // events) need to be transformed from viewport coordinates to local layer
+  // coordinates so that the scrolling contents exactly follow the user's
+  // finger. In contrast, events not representing direct manipulation of the
+  // screen (such as wheel events) represent a fixed amount of scrolling so we
+  // can just apply them directly, but the page scale factor is applied to the
+  // scroll delta.
+  if (is_direct_manipulation) {
+    // For touch-scroll we need to scale the delta here, as the transform tree
+    // won't know anything about the external page scale factors used by OOPIFs.
+    gfx::Vector2dF scaled_delta(adjusted_delta);
+    scaled_delta.Scale(1 / ActiveTree().external_page_scale_factor());
+    return ScrollNodeWithViewportSpaceDelta(
+        scroll_node, gfx::PointF(viewport_point), scaled_delta);
+  }
+  return ScrollNodeWithLocalDelta(scroll_node, adjusted_delta);
+}
+
+void ThreadedInputHandler::ScrollLatchedScroller(ScrollState* scroll_state,
+                                                 base::TimeDelta delayed_by) {
+  DCHECK(CurrentlyScrollingNode());
+  DCHECK(scroll_state);
+  DCHECK(latched_scroll_type_.has_value());
+
+  ScrollNode& scroll_node = *CurrentlyScrollingNode();
+  const gfx::Vector2dF delta(scroll_state->delta_x(), scroll_state->delta_y());
+  TRACE_EVENT2("cc", "ThreadedInputHandler::ScrollLatchedScroller", "delta_x",
+               delta.x(), "delta_y", delta.y());
+  gfx::Vector2dF applied_delta;
+  gfx::Vector2dF delta_applied_to_content;
+  // TODO(tdresser): Use a more rational epsilon. See crbug.com/510550 for
+  // details.
+  const float kEpsilon = 0.1f;
+
+  if (ShouldAnimateScroll(*scroll_state)) {
+    DCHECK(!scroll_state->is_in_inertial_phase());
+
+    if (ElementId id =
+            host_impl_.mutator_host()->ImplOnlyScrollAnimatingElement()) {
+      TRACE_EVENT_INSTANT0("cc", "UpdateExistingAnimation",
+                           TRACE_EVENT_SCOPE_THREAD);
+
+      ScrollNode* animating_scroll_node =
+          GetScrollTree().FindNodeFromElementId(id);
+      DCHECK(animating_scroll_node);
+
+      // Usually the CurrentlyScrollingNode will be the currently animating
+      // one. The one exception is the inner viewport. Scrolling the combined
+      // viewport will always set the outer viewport as the currently scrolling
+      // node. However, if an animation is created on the inner viewport we
+      // must use it when updating the animation curve.
+      DCHECK(animating_scroll_node->id == scroll_node.id ||
+             animating_scroll_node->scrolls_inner_viewport);
+
+      bool animation_updated = ScrollAnimationUpdateTarget(
+          *animating_scroll_node, delta, delayed_by);
+
+      if (animation_updated) {
+        // Because we updated the animation target, consume delta so we notify
+        // the SwapPromiseMonitor to tell it that something happened that will
+        // cause a swap in the future.  This will happen within the scope of
+        // the dispatch of a gesture scroll update input event. If we don't
+        // notify during the handling of the input event, the LatencyInfo
+        // associated with the input event will not be added as a swap promise
+        // and we won't get any swap results.
+        applied_delta = delta;
+      } else {
+        TRACE_EVENT_INSTANT0("cc", "Didn't Update Animation",
+                             TRACE_EVENT_SCOPE_THREAD);
+      }
+    } else {
+      TRACE_EVENT_INSTANT0("cc", "CreateNewAnimation",
+                           TRACE_EVENT_SCOPE_THREAD);
+      if (scroll_node.scrolls_outer_viewport) {
+        applied_delta = GetViewport().ScrollAnimated(delta, delayed_by);
+      } else {
+        applied_delta = ComputeScrollDelta(scroll_node, delta);
+        host_impl_.ScrollAnimationCreate(scroll_node, applied_delta,
+                                         delayed_by);
+      }
+    }
+
+    // Animated scrolling always applied only to the content (i.e. not to the
+    // browser controls).
+    delta_applied_to_content = delta;
+  } else {
+    gfx::Point viewport_point(scroll_state->position_x(),
+                              scroll_state->position_y());
+    if (GetViewport().ShouldScroll(scroll_node)) {
+      // |scrolls_outer_viewport| will only ever be false if the scroll chains
+      // up to the viewport without going through the outer viewport scroll
+      // node. This is because we normally terminate the scroll chain at the
+      // outer viewport node.  For example, if we start scrolling from an
+      // element that's not a descendant of the root scroller. In these cases we
+      // want to scroll *only* the inner viewport -- to allow panning while
+      // zoomed -- but still use Viewport::ScrollBy to also move browser
+      // controls if needed.
+      Viewport::ScrollResult result = GetViewport().ScrollBy(
+          delta, viewport_point, scroll_state->is_direct_manipulation(),
+          latched_scroll_type_ != ui::ScrollInputType::kWheel,
+          scroll_node.scrolls_outer_viewport);
+
+      applied_delta = result.consumed_delta;
+      delta_applied_to_content = result.content_scrolled_delta;
+    } else {
+      applied_delta = ScrollSingleNode(scroll_node, delta, viewport_point,
+                                       scroll_state->is_direct_manipulation());
+    }
+  }
+
+  // If the layer wasn't able to move, try the next one in the hierarchy.
+  bool scrolled = std::abs(applied_delta.x()) > kEpsilon;
+  scrolled = scrolled || std::abs(applied_delta.y()) > kEpsilon;
+  if (!scrolled) {
+    // TODO(bokan): This preserves existing behavior by not allowing tiny
+    // scrolls to produce overscroll but is inconsistent in how delta gets
+    // chained up. We need to clean this up.
+    if (scroll_node.scrolls_outer_viewport)
+      scroll_state->ConsumeDelta(applied_delta.x(), applied_delta.y());
+    return;
+  }
+
+  if (!GetViewport().ShouldScroll(scroll_node)) {
+    // If the applied delta is within 45 degrees of the input
+    // delta, bail out to make it easier to scroll just one layer
+    // in one direction without affecting any of its parents.
+    float angle_threshold = 45;
+    if (MathUtil::SmallestAngleBetweenVectors(applied_delta, delta) <
+        angle_threshold) {
+      applied_delta = delta;
+    } else {
+      // Allow further movement only on an axis perpendicular to the direction
+      // in which the layer moved.
+      applied_delta = MathUtil::ProjectVector(delta, applied_delta);
+    }
+    delta_applied_to_content = applied_delta;
+  }
+
+  scroll_state->set_caused_scroll(
+      std::abs(delta_applied_to_content.x()) > kEpsilon,
+      std::abs(delta_applied_to_content.y()) > kEpsilon);
+  scroll_state->ConsumeDelta(applied_delta.x(), applied_delta.y());
+}
+
+bool ThreadedInputHandler::CanPropagate(ScrollNode* scroll_node,
+                                        float x,
+                                        float y) {
+  return (x == 0 || scroll_node->overscroll_behavior.x ==
+                        OverscrollBehavior::kOverscrollBehaviorTypeAuto) &&
+         (y == 0 || scroll_node->overscroll_behavior.y ==
+                        OverscrollBehavior::kOverscrollBehaviorTypeAuto);
+}
+
+ScrollNode* ThreadedInputHandler::FindNodeToLatch(ScrollState* scroll_state,
+                                                  ScrollNode* starting_node,
+                                                  ui::ScrollInputType type) {
+  ScrollTree& scroll_tree = GetScrollTree();
+  ScrollNode* scroll_node = nullptr;
+  for (ScrollNode* cur_node = starting_node; cur_node;
+       cur_node = scroll_tree.parent(cur_node)) {
+    if (GetViewport().ShouldScroll(*cur_node)) {
+      // Don't chain scrolls past a viewport node. Once we reach that, we
+      // should scroll using the appropriate viewport node which may not be
+      // |cur_node|.
+      scroll_node = GetNodeToScroll(cur_node);
+      break;
+    }
+
+    if (!cur_node->scrollable)
+      continue;
+
+    // For UX reasons, autoscrolling should always latch to the top-most
+    // scroller, even if it can't scroll in the initial direction.
+    if (type == ui::ScrollInputType::kAutoscroll ||
+        CanConsumeDelta(*scroll_state, *cur_node)) {
+      scroll_node = cur_node;
+      break;
+    }
+
+    float delta_x = scroll_state->is_beginning() ? scroll_state->delta_x_hint()
+                                                 : scroll_state->delta_x();
+    float delta_y = scroll_state->is_beginning() ? scroll_state->delta_y_hint()
+                                                 : scroll_state->delta_y();
+
+    if (!CanPropagate(cur_node, delta_x, delta_y)) {
+      // If we reach a node with non-auto overscroll-behavior and we still
+      // haven't latched, we must latch to it. Consider a fully scrolled node
+      // with non-auto overscroll-behavior: we are not allowed to further
+      // chain scroll delta passed to it in the current direction but if we
+      // reverse direction we should scroll it so we must be latched to it.
+      scroll_node = cur_node;
+      scroll_state->set_is_scroll_chain_cut(true);
+      break;
+    }
+  }
+
+  return scroll_node;
+}
+
+void ThreadedInputHandler::DidLatchToScroller(const ScrollState& scroll_state,
+                                              ui::ScrollInputType type) {
+  DCHECK(CurrentlyScrollingNode());
+  deferred_scroll_end_ = false;
+  host_impl_.browser_controls_manager()->ScrollBegin();
+  host_impl_.mutator_host()->ScrollAnimationAbort();
+
+  scroll_affects_scroll_handler_ = ActiveTree().have_scroll_event_handlers();
+  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
+  last_latched_scroller_ = CurrentlyScrollingNode()->element_id;
+  latched_scroll_type_ = type;
+  last_scroll_begin_state_ = scroll_state;
+
+  host_impl_.DidStartScroll();
+  RecordCompositorSlowScrollMetric(type, CC_THREAD);
+
+  UpdateScrollSourceInfo(scroll_state, type);
+}
+
+bool ThreadedInputHandler::CanConsumeDelta(const ScrollState& scroll_state,
+                                           const ScrollNode& scroll_node) {
+  gfx::Vector2dF delta_to_scroll;
+  if (scroll_state.is_beginning()) {
+    delta_to_scroll = gfx::Vector2dF(scroll_state.delta_x_hint(),
+                                     scroll_state.delta_y_hint());
+  } else {
+    delta_to_scroll =
+        gfx::Vector2dF(scroll_state.delta_x(), scroll_state.delta_y());
+  }
+
+  if (delta_to_scroll == gfx::Vector2dF())
+    return true;
+
+  if (scroll_state.is_direct_manipulation()) {
+    gfx::Vector2dF local_scroll_delta;
+    if (!CalculateLocalScrollDeltaAndStartPoint(
+            scroll_node,
+            gfx::PointF(scroll_state.position_x(), scroll_state.position_y()),
+            delta_to_scroll, &local_scroll_delta)) {
+      return false;
+    }
+    delta_to_scroll = local_scroll_delta;
+  } else {
+    delta_to_scroll = ResolveScrollGranularityToPixels(
+        scroll_node, delta_to_scroll, scroll_state.delta_granularity());
+  }
+
+  if (ComputeScrollDelta(scroll_node, delta_to_scroll) != gfx::Vector2dF())
+    return true;
+
+  return false;
+}
+
+bool ThreadedInputHandler::ShouldAnimateScroll(
+    const ScrollState& scroll_state) const {
+  if (!Settings().enable_smooth_scroll)
+    return false;
+
+  bool has_precise_scroll_deltas = scroll_state.delta_granularity() ==
+                                   ui::ScrollGranularity::kScrollByPrecisePixel;
+
+#if defined(OS_MAC)
+  if (has_precise_scroll_deltas)
+    return false;
+
+  // Mac does not smooth scroll wheel events (crbug.com/574283). We allow tests
+  // to force it on.
+  return latched_scroll_type_ == ui::ScrollInputType::kScrollbar
+             ? true
+             : force_smooth_wheel_scrolling_for_testing_;
+#else
+  return !has_precise_scroll_deltas;
+#endif
+}
+
+bool ThreadedInputHandler::SnapAtScrollEnd() {
+  ScrollNode* scroll_node = CurrentlyScrollingNode();
+  if (!scroll_node || !scroll_node->snap_container_data.has_value())
+    return false;
+
+  SnapContainerData& data = scroll_node->snap_container_data.value();
+  gfx::ScrollOffset current_position = GetVisualScrollOffset(*scroll_node);
+
+  // You might think that if a scroll never received a scroll update we could
+  // just drop the snap. However, if the GSB+GSE arrived while we were mid-snap
+  // from a previous gesture, this would leave the scroller at a
+  // non-snap-point.
+  DCHECK(last_scroll_update_state_ || last_scroll_begin_state_);
+  ScrollState& last_scroll_state = last_scroll_update_state_
+                                       ? *last_scroll_update_state_
+                                       : *last_scroll_begin_state_;
+
+  bool imprecise_wheel_scrolling =
+      latched_scroll_type_ == ui::ScrollInputType::kWheel &&
+      last_scroll_state.delta_granularity() !=
+          ui::ScrollGranularity::kScrollByPrecisePixel;
+  gfx::ScrollOffset last_scroll_delta = last_scroll_state.DeltaOrHint();
+
+  std::unique_ptr<SnapSelectionStrategy> strategy;
+
+  if (imprecise_wheel_scrolling && !last_scroll_delta.IsZero()) {
+    // This was an imprecise wheel scroll so use direction snapping.
+    strategy = SnapSelectionStrategy::CreateForDirection(
+        current_position, last_scroll_delta, true);
+  } else {
+    strategy = SnapSelectionStrategy::CreateForEndPosition(
+        current_position, did_scroll_x_for_scroll_gesture_,
+        did_scroll_y_for_scroll_gesture_);
+  }
+
+  gfx::ScrollOffset snap_position;
+  TargetSnapAreaElementIds snap_target_ids;
+  if (!data.FindSnapPosition(*strategy, &snap_position, &snap_target_ids))
+    return false;
+
+  if (GetViewport().ShouldScroll(*scroll_node)) {
+    // Flash the overlay scrollbar even if the scroll delta is 0.
+    if (Settings().scrollbar_flash_after_any_scroll_update) {
+      host_impl_.FlashAllScrollbars(false);
+    } else {
+      ScrollbarAnimationController* animation_controller =
+          host_impl_.ScrollbarAnimationControllerForElementId(
+              scroll_node->element_id);
+      if (animation_controller)
+        animation_controller->WillUpdateScroll();
+    }
+  }
+
+  gfx::Vector2dF delta =
+      ScrollOffsetToVector2dF(snap_position - current_position);
+  bool did_animate = false;
+  if (scroll_node->scrolls_outer_viewport) {
+    gfx::Vector2dF scaled_delta(delta);
+    scaled_delta.Scale(ActiveTree().page_scale_factor_for_scroll());
+    gfx::Vector2dF consumed_delta =
+        GetViewport().ScrollAnimated(scaled_delta, base::TimeDelta());
+    did_animate = !consumed_delta.IsZero();
+  } else {
+    did_animate = host_impl_.ScrollAnimationCreate(*scroll_node, delta,
+                                                   base::TimeDelta());
+  }
+  DCHECK(!IsAnimatingForSnap());
+  if (did_animate) {
+    // The snap target will be set when the animation is completed.
+    scroll_animating_snap_target_ids_ = snap_target_ids;
+  } else if (data.SetTargetSnapAreaElementIds(snap_target_ids)) {
+    updated_snapped_elements_.insert(scroll_node->element_id);
+    SetNeedsCommit();
+  }
+  return did_animate;
+}
+
+bool ThreadedInputHandler::IsAnimatingForSnap() const {
+  return scroll_animating_snap_target_ids_ != TargetSnapAreaElementIds();
+}
+
+gfx::ScrollOffset ThreadedInputHandler::GetVisualScrollOffset(
+    const ScrollNode& scroll_node) const {
+  if (scroll_node.scrolls_outer_viewport)
+    return GetViewport().TotalScrollOffset();
+  return GetScrollTree().current_scroll_offset(scroll_node.element_id);
+}
+
+void ThreadedInputHandler::ClearCurrentlyScrollingNode() {
+  TRACE_EVENT0("cc", "ThreadedInputHandler::ClearCurrentlyScrollingNode");
+  ActiveTree().ClearCurrentlyScrollingNode();
+  scroll_affects_scroll_handler_ = false;
+  accumulated_root_overscroll_ = gfx::Vector2dF();
+  did_scroll_x_for_scroll_gesture_ = false;
+  did_scroll_y_for_scroll_gesture_ = false;
+  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
+  latched_scroll_type_.reset();
+  last_scroll_update_state_.reset();
+  last_scroll_begin_state_.reset();
+}
+
+void ThreadedInputHandler::UpdateRootLayerStateForSynchronousInputHandler() {
+  if (!input_handler_client_)
+    return;
+  input_handler_client_->UpdateRootLayerStateForSynchronousInputHandler(
+      ActiveTree().TotalScrollOffset(), ActiveTree().TotalMaxScrollOffset(),
+      ActiveTree().ScrollableSize(), ActiveTree().current_page_scale_factor(),
+      ActiveTree().min_page_scale_factor(),
+      ActiveTree().max_page_scale_factor());
+}
+
+bool ThreadedInputHandler::ScrollAnimationUpdateTarget(
+    const ScrollNode& scroll_node,
+    const gfx::Vector2dF& scroll_delta,
+    base::TimeDelta delayed_by) {
+  // TODO(bokan): Remove |scroll_node| as a parameter and just use the value
+  // coming from |mutator_host|.
+  DCHECK_EQ(scroll_node.element_id,
+            host_impl_.mutator_host()->ImplOnlyScrollAnimatingElement());
+
+  float scale_factor = ActiveTree().page_scale_factor_for_scroll();
+  gfx::Vector2dF adjusted_delta =
+      gfx::ScaleVector2d(scroll_delta, 1.f / scale_factor);
+  adjusted_delta = UserScrollableDelta(scroll_node, adjusted_delta);
+
+  bool animation_updated =
+      host_impl_.mutator_host()->ImplOnlyScrollAnimationUpdateTarget(
+          adjusted_delta, GetScrollTree().MaxScrollOffset(scroll_node.id),
+          host_impl_.CurrentBeginFrameArgs().frame_time, delayed_by);
+  if (animation_updated) {
+    host_impl_.DidUpdateScrollAnimationCurve();
+
+    // The animation is no longer targeting a snap position. By clearing the
+    // target, this will ensure that we attempt to resnap at the end of this
+    // animation.
+    scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
+  }
+
+  return animation_updated;
+}
+
+void ThreadedInputHandler::ScrollOffsetAnimationFinished() {
+  TRACE_EVENT0("cc", "ThreadedInputHandler::ScrollOffsetAnimationFinished");
+  // ScrollOffsetAnimationFinished is called in two cases:
+  //  1- smooth scrolling animation is over (IsAnimatingForSnap == false).
+  //  2- snap scroll animation is over (IsAnimatingForSnap == true).
+  //
+  //  Only for case (1) we should check and run snap scroll animation if needed.
+  if (!IsAnimatingForSnap() && SnapAtScrollEnd())
+    return;
+
+  // The end of a scroll offset animation means that the scrolling node is at
+  // the target offset.
+  ScrollNode* scroll_node = CurrentlyScrollingNode();
+  if (scroll_node && scroll_node->snap_container_data.has_value()) {
+    scroll_node->snap_container_data.value().SetTargetSnapAreaElementIds(
+        scroll_animating_snap_target_ids_);
+    updated_snapped_elements_.insert(scroll_node->element_id);
+    SetNeedsCommit();
+  }
+  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
+
+  // Call scrollEnd with the deferred scroll end state when the scroll animation
+  // completes after GSE arrival.
+  if (deferred_scroll_end_) {
+    ScrollEnd(/*should_snap=*/false);
+    return;
+  }
+}
+
+void ThreadedInputHandler::UpdateScrollSourceInfo(
+    const ScrollState& scroll_state,
+    ui::ScrollInputType type) {
+  if (type == ui::ScrollInputType::kWheel &&
+      scroll_state.delta_granularity() ==
+          ui::ScrollGranularity::kScrollByPrecisePixel) {
+    has_scrolled_by_precisiontouchpad_ = true;
+  } else if (type == ui::ScrollInputType::kWheel) {
+    has_scrolled_by_wheel_ = true;
+  } else if (type == ui::ScrollInputType::kTouchscreen) {
+    has_scrolled_by_touch_ = true;
+  }
+}
+
+}  // namespace cc
diff --git a/cc/input/threaded_input_handler.h b/cc/input/threaded_input_handler.h
new file mode 100644
index 0000000..6f2d3c5c
--- /dev/null
+++ b/cc/input/threaded_input_handler.h
@@ -0,0 +1,451 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CC_INPUT_THREADED_INPUT_HANDLER_H_
+#define CC_INPUT_THREADED_INPUT_HANDLER_H_
+
+#include <memory>
+
+#include "base/containers/flat_set.h"
+#include "base/optional.h"
+#include "base/time/time.h"
+#include "cc/input/event_listener_properties.h"
+#include "cc/input/input_handler.h"
+#include "cc/input/scroll_snap_data.h"
+#include "cc/input/scroll_state.h"
+#include "cc/input/touch_action.h"
+#include "cc/metrics/events_metrics_manager.h"
+#include "cc/metrics/frame_sequence_metrics.h"
+#include "cc/paint/element_id.h"
+#include "components/viz/common/frame_sinks/begin_frame_args.h"
+#include "ui/events/types/scroll_input_type.h"
+
+namespace gfx {
+class Point;
+class PointF;
+class ScrollOffset;
+}  // namespace gfx
+
+namespace cc {
+
+class LayerImpl;
+class LayerTreeHostImpl;
+class LayerTreeSettings;
+class ScrollbarController;
+class ScrollElasticityHelper;
+struct ScrollNode;
+class ScrollTree;
+class SwapPromiseMonitor;
+class Viewport;
+
+class CC_EXPORT ThreadedInputHandler {
+ public:
+  explicit ThreadedInputHandler(LayerTreeHostImpl* host_impl);
+  ~ThreadedInputHandler();
+
+  // ============ InputHandler "Interface" - will override in a future CL
+  void BindToClient(InputHandlerClient* client);
+  InputHandler::ScrollStatus ScrollBegin(ScrollState* scroll_state,
+                                         ui::ScrollInputType type);
+  InputHandler::ScrollStatus RootScrollBegin(ScrollState* scroll_state,
+                                             ui::ScrollInputType type);
+  InputHandlerScrollResult ScrollUpdate(
+      ScrollState* scroll_state,
+      base::TimeDelta delayed_by = base::TimeDelta());
+  void ScrollEnd(bool should_snap = false);
+  void RecordScrollBegin(ui::ScrollInputType input_type,
+                         ScrollBeginThreadState scroll_start_state);
+  void RecordScrollEnd(ui::ScrollInputType input_type);
+  InputHandlerPointerResult MouseMoveAt(const gfx::Point& viewport_point);
+  InputHandlerPointerResult MouseDown(const gfx::PointF& viewport_point,
+                                      bool shift_modifier);
+  InputHandlerPointerResult MouseUp(const gfx::PointF& viewport_point);
+  void MouseLeave();
+  ElementId FindFrameElementIdAtPoint(const gfx::PointF& viewport_point);
+  void RequestUpdateForSynchronousInputHandler();
+  void SetSynchronousInputHandlerRootScrollOffset(
+      const gfx::ScrollOffset& root_content_offset);
+  void PinchGestureBegin();
+  void PinchGestureUpdate(float magnify_delta, const gfx::Point& anchor);
+  void PinchGestureEnd(const gfx::Point& anchor, bool snap_to_min);
+  void SetNeedsAnimateInput();
+  bool IsCurrentlyScrollingViewport() const;
+  EventListenerProperties GetEventListenerProperties(
+      EventListenerClass event_class) const;
+  bool HasBlockingWheelEventHandlerAt(const gfx::Point& viewport_point) const;
+  InputHandler::TouchStartOrMoveEventListenerType
+  EventListenerTypeForTouchStartOrMoveAt(const gfx::Point& viewport_port,
+                                         TouchAction* out_touch_action);
+  std::unique_ptr<SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor(
+      ui::LatencyInfo* latency);
+  std::unique_ptr<EventsMetricsManager::ScopedMonitor>
+  GetScopedEventMetricsMonitor(std::unique_ptr<EventMetrics> event_metrics);
+  ScrollElasticityHelper* CreateScrollElasticityHelper();
+  bool GetScrollOffsetForLayer(ElementId element_id, gfx::ScrollOffset* offset);
+  bool ScrollLayerTo(ElementId element_id, const gfx::ScrollOffset& offset);
+  bool ScrollingShouldSwitchtoMainThread();
+  bool GetSnapFlingInfoAndSetAnimatingSnapTarget(
+      const gfx::Vector2dF& natural_displacement_in_viewport,
+      gfx::Vector2dF* out_initial_position,
+      gfx::Vector2dF* out_target_position);
+  void ScrollEndForSnapFling(bool did_finish);
+  void NotifyInputEvent();
+
+  // ========== Rough Interface exposed for LTHI
+  // TODO(bokan): Merge these and scroll into into a single API to take scroll
+  // and input information for commit.
+  gfx::Vector2dF TakeOverscrollDeltaForCommit();
+  bool TakeScrollGestureDidEndForCommit();
+  base::flat_set<ElementId> TakeUpdatedSnappedElements();
+  bool TakeHasPinchZoomedForCommit();
+  bool TakeHasScrolledByWheelForCommit();
+  bool TakeHasScrolledByTouchForCommit();
+  bool TakeHasScrolledByPrecisionTouchpadForCommit();
+  ElementId GetLastLatchedScroller() const;
+  void ClearLastLatchedScroller();
+
+  void WillShutdown();
+  void WillDraw();
+  void WillBeginImplFrame(const viz::BeginFrameArgs& args);
+  void UpdateRootLayerStateForSynchronousInputHandler();
+  void DidCommitFromBlink();
+  void DidActivatePendingTree();
+  void TickAnimations(base::TimeTicks monotonic_time);
+  void ScrollOffsetAnimationFinished();
+
+  // Returns true if there is an ongoing scroll and the scroller has a scroll
+  // event handler.
+  bool CurrentScrollAffectsScrollHandler() const;
+
+  ScrollbarController* get_scrollbar_controller() const {
+    return scrollbar_controller_.get();
+  }
+
+  // =========== Public Interface
+
+  // This method gets the scroll offset for a regular scroller, or the combined
+  // visual and layout offsets of the viewport.
+  gfx::ScrollOffset GetVisualScrollOffset(const ScrollNode& scroll_node) const;
+
+  // Returns true if there is an active scroll in progress.  "Active" here
+  // means that it's been latched (i.e. we have a CurrentlyScrollingNode()) but
+  // also that some ScrollUpdates have been received and their delta consumed
+  // for scrolling. These can differ significantly e.g. the page allows the
+  // touchstart but preventDefaults all the touchmoves. In that case, we latch
+  // and have a CurrentlyScrollingNode() but will never receive a ScrollUpdate.
+  //
+  // "Precision" means it's a non-animated scroll like a touchscreen or
+  // high-precision touchpad. The latter distinction is important for things
+  // like scheduling decisions which might schedule a wheel and a touch
+  // scrolling differently due to user perception.
+  bool IsActivelyPrecisionScrolling() const;
+
+  bool CanConsumeDelta(const ScrollState& scroll_state,
+                       const ScrollNode& scroll_node);
+  // Returns the amount of delta that can be applied to scroll_node, taking
+  // page scale into account.
+  gfx::Vector2dF ComputeScrollDelta(const ScrollNode& scroll_node,
+                                    const gfx::Vector2dF& delta);
+  bool IsScrolledBy(LayerImpl* child, ScrollNode* ancestor);
+
+  gfx::Vector2dF ScrollSingleNode(const ScrollNode& scroll_node,
+                                  const gfx::Vector2dF& delta,
+                                  const gfx::Point& viewport_point,
+                                  bool is_direct_manipulation);
+
+  // Resolves a delta in the given granularity for the |scroll_node| into
+  // physical pixels to scroll.
+  gfx::Vector2dF ResolveScrollGranularityToPixels(
+      const ScrollNode& scroll_node,
+      const gfx::Vector2dF& scroll_delta,
+      ui::ScrollGranularity granularity);
+
+  bool IsAnimatingForSnap() const;
+
+  // Used to set the pinch gesture active state when the pinch gesture is
+  // handled on another layer tree. In a page with OOPIFs, only the main
+  // frame's layer tree directly handles pinch events. But layer trees for
+  // sub-frames need to know when pinch gestures are active so they can
+  // throttle the re-rastering. This function allows setting this flag on
+  // OOPIF layer trees using information sent (initially) from the main-frame.
+  void set_external_pinch_gesture_active(bool external_pinch_gesture_active) {
+    external_pinch_gesture_active_ = external_pinch_gesture_active;
+    // Only one of the flags should ever be true at any given time.
+    DCHECK(!pinch_gesture_active_ || !external_pinch_gesture_active_);
+  }
+
+  bool pinch_gesture_active() const {
+    return pinch_gesture_active_ || external_pinch_gesture_active_;
+  }
+
+  void set_force_smooth_wheel_scrolling_for_testing(bool enabled) {
+    force_smooth_wheel_scrolling_for_testing_ = enabled;
+  }
+
+  gfx::Vector2dF accumulated_root_overscroll_for_testing() const {
+    return accumulated_root_overscroll_;
+  }
+
+ private:
+  ScrollNode* CurrentlyScrollingNode();
+  const ScrollNode* CurrentlyScrollingNode() const;
+  void ClearCurrentlyScrollingNode();
+  ScrollTree& GetScrollTree();
+  ScrollTree& GetScrollTree() const;
+  Viewport& GetViewport() const;
+
+  ScrollNode* InnerViewportScrollNode() const;
+  ScrollNode* OuterViewportScrollNode() const;
+
+  void SetNeedsCommit();
+  LayerTreeImpl& ActiveTree();
+  LayerTreeImpl& ActiveTree() const;
+
+  const LayerTreeSettings& Settings() const;
+
+  bool IsMainThreadScrolling(const InputHandler::ScrollStatus& status,
+                             const ScrollNode* scroll_node) const;
+
+  bool IsTouchDraggingScrollbar(
+      LayerImpl* first_scrolling_layer_or_drawn_scrollbar,
+      ui::ScrollInputType type);
+
+  void ShowScrollbarsForImplScroll(ElementId element_id);
+
+  // Called during ScrollBegin once a scroller was successfully latched to
+  // (i.e.  it can and will consume scroll delta on the compositor thread). The
+  // latched scroller is now available in CurrentlyScrollingNode().
+  // TODO(bokan): There's some debate about the name of this method. We should
+  // get consensus on terminology to use and apply it consistently.
+  // https://crrev.com/c/1981336/9/cc/trees/layer_tree_host_impl.cc#4520
+  void DidLatchToScroller(const ScrollState& scroll_state,
+                          ui::ScrollInputType type);
+
+  // This function keeps track of sources of scrolls that are handled in the
+  // compositor side. The information gets shared by the main thread as part of
+  // the begin_main_frame_state. Finally Use counters are updated in the main
+  // thread side to keep track of the frequency of scrolling with different
+  // sources per page load. TODO(crbug.com/691886): Use GRC API to plumb the
+  // scroll source info for Use Counters.
+  void UpdateScrollSourceInfo(const ScrollState& scroll_state,
+                              ui::ScrollInputType type);
+
+  // Applies the scroll_state to the currently latched scroller. See comment in
+  // InputHandler::ScrollUpdate declaration for the meaning of |delayed_by|.
+  void ScrollLatchedScroller(ScrollState* scroll_state,
+                             base::TimeDelta delayed_by);
+
+  // Determines whether the given scroll node can scroll on the compositor
+  // thread or if there are any reasons it must be scrolled on the main thread
+  // or not at all. Note: in general, this is not sufficient to determine if a
+  // scroll can occur on the compositor thread. If hit testing to a scroll
+  // node, the caller must also check whether the hit point intersects a
+  // non-fast-scrolling-region of any ancestor scrolling layers. Can be removed
+  // after scroll unification https://crbug.com/476553.
+  InputHandler::ScrollStatus TryScroll(const ScrollTree& scroll_tree,
+                                       ScrollNode* scroll_node) const;
+
+  // Creates an animation curve and returns true if we need to update the
+  // scroll position to a snap point. Otherwise returns false.
+  bool SnapAtScrollEnd();
+
+  // |layer| is returned from a regular hit test, and
+  // |first_scrolling_layer_or_drawn_scrollbar| is returned from a hit test
+  // performed only on scrollers and scrollbars. Initial scroll hit testing can
+  // be unreliable if the latter is not the direct scroll ancestor of the
+  // former. In this case, we will fall back to main thread scrolling because
+  // the compositor thread doesn't know which layer to scroll. This happens when
+  // a layer covers a scroller that doesn't scroll the former, or a scroller is
+  // masked by a mask layer for mask image, clip-path, rounded border, etc.
+  //
+  // Note, position: fixed layers use the inner viewport as their ScrollNode
+  // (since they don't scroll with the outer viewport), however, scrolls from
+  // the fixed layer still chain to the outer viewport. It's also possible for a
+  // node to have the inner viewport as its ancestor without going through the
+  // outer viewport; however, it may still scroll using the viewport(). Hence,
+  // this method must use the same scroll chaining logic we use in ApplyScroll.
+  bool IsInitialScrollHitTestReliable(
+      const LayerImpl* layer,
+      const LayerImpl* first_scrolling_layer_or_drawn_scrollbar) const;
+
+  // Similar to above but includes complicated logic to determine whether the
+  // ScrollNode is able to be scrolled on the compositor or requires main
+  // thread scrolling. If main thread scrolling is required
+  // |scroll_on_main_thread| is set to true and the reason is given in
+  // |main_thread_scrolling_reason| to on of the enum values in
+  // main_thread_scrolling_reason.h. Can be removed after scroll unification
+  // https://crbug.com/476553.
+  ScrollNode* FindScrollNodeForCompositedScrolling(
+      const gfx::PointF& device_viewport_point,
+      LayerImpl* layer_hit_by_point,
+      bool* scroll_on_main_thread,
+      uint32_t* main_thread_scrolling_reason);
+
+  // Return all ScrollNode indices that have an associated layer with a non-fast
+  // region that intersects the point.
+  base::flat_set<int> NonFastScrollableNodes(
+      const gfx::PointF& device_viewport_point) const;
+
+  // Returns the ScrollNode we should use to scroll, accounting for viewport
+  // scroll chaining rules.
+  ScrollNode* GetNodeToScroll(ScrollNode* node) const;
+
+  // Given a starting node (determined by hit-test), walks up the scroll tree
+  // looking for the first node that can consume scroll from the given
+  // scroll_state and returns the first such node. If none is found, or if
+  // starting_node is nullptr, returns nullptr;
+  ScrollNode* FindNodeToLatch(ScrollState* scroll_state,
+                              ScrollNode* starting_node,
+                              ui::ScrollInputType type);
+
+  bool CanPropagate(ScrollNode* scroll_node, float x, float y);
+
+  // Performs a hit test to determine the ScrollNode to use when scrolling at
+  // |viewport_point|. If no layer is hit, this falls back to the inner
+  // viewport scroll node. Returns:
+  // - If |hit_test_sucessful| is false, hit testing has failed and the
+  //   compositor cannot determine the correct scroll node (e.g. see comments in
+  //   IsInitialScrollHitTestReliable). |scroll_node| is always nullptr in this
+  //   case.
+  // - If |hit_test_successful| is true, returns the ScrollNode to use in
+  //   |scroll_node|. This can be nullptr if no layer was hit and there are no
+  //   viewport nodes (e.g. OOPIF, UI compositor).
+  struct ScrollHitTestResult {
+    ScrollNode* scroll_node;
+    bool hit_test_successful;
+  };
+  ScrollHitTestResult HitTestScrollNode(
+      const gfx::PointF& device_viewport_point) const;
+
+  bool ShouldAnimateScroll(const ScrollState& scroll_state) const;
+
+  bool ScrollAnimationUpdateTarget(const ScrollNode& scroll_node,
+                                   const gfx::Vector2dF& scroll_delta,
+                                   base::TimeDelta delayed_by);
+
+  // Transforms viewport start point and scroll delta to local start point and
+  // local delta, respectively. If the transformation of either the start or end
+  // point of a scroll is clipped, the function returns false.
+  bool CalculateLocalScrollDeltaAndStartPoint(
+      const ScrollNode& scroll_node,
+      const gfx::PointF& viewport_point,
+      const gfx::Vector2dF& viewport_delta,
+      gfx::Vector2dF* out_local_scroll_delta,
+      gfx::PointF* out_local_start_point = nullptr);
+  gfx::Vector2dF ScrollNodeWithViewportSpaceDelta(
+      const ScrollNode& scroll_node,
+      const gfx::PointF& viewport_point,
+      const gfx::Vector2dF& viewport_delta);
+  gfx::Vector2dF ScrollNodeWithLocalDelta(
+      const ScrollNode& scroll_node,
+      const gfx::Vector2dF& local_delta) const;
+  // This helper returns an adjusted version of |delta| where the scroll delta
+  // is cleared in any axis in which user scrolling is disabled (e.g. by
+  // |overflow-x: hidden|).
+  gfx::Vector2dF UserScrollableDelta(const ScrollNode& node,
+                                     const gfx::Vector2dF& delta) const;
+
+  FrameSequenceTrackerType GetTrackerTypeForScroll(
+      ui::ScrollInputType input_type) const;
+
+  LayerTreeHostImpl& host_impl_;
+
+  InputHandlerClient* input_handler_client_ = nullptr;
+
+  // An object to implement the ScrollElasticityHelper interface and
+  // hold all state related to elasticity. May be nullptr if never requested.
+  std::unique_ptr<ScrollElasticityHelper> scroll_elasticity_helper_;
+
+  // Manages composited scrollbar hit testing.
+  std::unique_ptr<ScrollbarController> scrollbar_controller_;
+
+  // Overscroll delta accumulated on the viewport throughout a scroll gesture;
+  // reset when the gesture ends.
+  gfx::Vector2dF accumulated_root_overscroll_;
+
+  // Unconsumed scroll delta sent to the main thread for firing overscroll DOM
+  // events. Resets after each commit.
+  gfx::Vector2dF overscroll_delta_for_main_thread_;
+
+  // The source device type that started the scroll gesture. Only set between a
+  // ScrollBegin and ScrollEnd.
+  base::Optional<ui::ScrollInputType> latched_scroll_type_;
+
+  // Tracks the last scroll update/begin state received. Used to infer the most
+  // recent scroll type and direction.
+  base::Optional<ScrollState> last_scroll_begin_state_;
+  base::Optional<ScrollState> last_scroll_update_state_;
+
+  // If a scroll snap is being animated, then the value of this will be the
+  // element id(s) of the target(s). Otherwise, the ids will be invalid.
+  // At the end of a scroll animation, the target should be set as the scroll
+  // node's snap target.
+  TargetSnapAreaElementIds scroll_animating_snap_target_ids_;
+
+  // A set of elements that scroll-snapped to a new target since the last
+  // begin main frame. The snap target ids of these elements will be sent to
+  // the main thread in the next begin main frame.
+  base::flat_set<ElementId> updated_snapped_elements_;
+
+  ElementId scroll_element_id_mouse_currently_over_;
+  ElementId scroll_element_id_mouse_currently_captured_;
+
+  // Set in ScrollBegin and outlives the currently scrolling node so it can be
+  // used to send the scrollend and overscroll DOM events from the main thread
+  // when scrolling occurs on the compositor thread. This value is cleared at
+  // the first commit after a GSE.
+  ElementId last_latched_scroller_;
+
+  // Scroll animation can finish either before or after GSE arrival.
+  // deferred_scroll_end_ is set when the GSE has arrvied before scroll
+  // animation completion. ScrollEnd will get called once the animation is
+  // over.
+  bool deferred_scroll_end_ = false;
+
+  // Set to true when a scroll gesture being handled on the compositor has
+  // ended. i.e. When a GSE has arrived and any ongoing scroll animation has
+  // ended.
+  bool scroll_gesture_did_end_ = false;
+
+  // True iff some of the delta has been consumed for the current scroll
+  // sequence on the specific axis.
+  bool did_scroll_x_for_scroll_gesture_ = false;
+  bool did_scroll_y_for_scroll_gesture_ = false;
+
+  // This is used to tell the scheduler there are active scroll handlers on the
+  // page so we should prioritize latency during a scroll to try to keep
+  // scroll-linked effects up to data.
+  // TODO(bokan): This is quite old and scheduling has become much more
+  // sophisticated since so it's not clear how much value it's still providing.
+  bool scroll_affects_scroll_handler_ = false;
+
+  // TODO(bokan): Mac doesn't yet have smooth scrolling for wheel; however, to
+  // allow consistency in tests we use this bit to override that decision.
+  // https://crbug.com/574283.
+  bool force_smooth_wheel_scrolling_for_testing_ = false;
+
+  // This value is used to allow the compositor to throttle re-rastering during
+  // pinch gestures, when the page scale factor may be changing frequently. It
+  // is set in one of two ways:
+  // i) In a layer tree serving the root of the frame/compositor tree, it is
+  // directly set during processing of GesturePinch events on the impl thread
+  // (only the root layer tree has access to these).
+  // ii) In a layer tree serving a sub-frame in the frame/compositor tree, it
+  // is set from the main thread during the commit process, using information
+  // sent from the root layer tree via IPC messaging.
+  bool pinch_gesture_active_ = false;
+  bool external_pinch_gesture_active_ = false;
+  bool pinch_gesture_end_should_clear_scrolling_node_ = false;
+
+  // These are used to transfer usage of different types of scrolling to the
+  // main thread.
+  bool has_pinch_zoomed_ = false;
+  bool has_scrolled_by_wheel_ = false;
+  bool has_scrolled_by_touch_ = false;
+  bool has_scrolled_by_precisiontouchpad_ = false;
+};
+
+}  // namespace cc
+
+#endif  // CC_INPUT_THREADED_INPUT_HANDLER_H_
diff --git a/cc/layers/viewport.cc b/cc/layers/viewport.cc
index d3b83f9..0a9a9da3 100644
--- a/cc/layers/viewport.cc
+++ b/cc/layers/viewport.cc
@@ -54,15 +54,15 @@
   gfx::Vector2dF pending_scroll_node_delta = scroll_node_delta;
 
   // Attempt to scroll inner viewport first.
-  pending_scroll_node_delta -= host_impl_->ScrollSingleNode(
+  pending_scroll_node_delta -= host_impl_->GetInputHandler().ScrollSingleNode(
       *InnerScrollNode(), pending_scroll_node_delta, viewport_point,
-      is_direct_manipulation, &scroll_tree());
+      is_direct_manipulation);
 
   // Now attempt to scroll the outer viewport.
   if (scroll_outer_viewport) {
-    pending_scroll_node_delta -= host_impl_->ScrollSingleNode(
+    pending_scroll_node_delta -= host_impl_->GetInputHandler().ScrollSingleNode(
         *OuterScrollNode(), pending_scroll_node_delta, viewport_point,
-        is_direct_manipulation, &scroll_tree());
+        is_direct_manipulation);
   }
 
   ScrollResult result;
@@ -76,7 +76,8 @@
                          const ScrollState& scroll_state) const {
   DCHECK(ShouldScroll(node));
 
-  bool result = host_impl_->CanConsumeDelta(scroll_state, *InnerScrollNode());
+  bool result = host_impl_->GetInputHandler().CanConsumeDelta(
+      scroll_state, *InnerScrollNode());
 
   // If the passed in node is the inner viewport, we're not interested in the
   // scrollability of the outer viewport. See LTHI::GetNodeToScroll for how the
@@ -84,7 +85,8 @@
   if (node.scrolls_inner_viewport)
     return result;
 
-  result |= host_impl_->CanConsumeDelta(scroll_state, *OuterScrollNode());
+  result |= host_impl_->GetInputHandler().CanConsumeDelta(scroll_state,
+                                                          *OuterScrollNode());
   return result;
 }
 
@@ -95,8 +97,8 @@
   // from ComputeScrollDelta are unscaled, so we have to do scaling
   // conversions each step of the way.
   ScrollNode* inner_node = InnerScrollNode();
-  gfx::Vector2dF inner_delta =
-      host_impl_->ComputeScrollDelta(*inner_node, scroll_delta);
+  gfx::Vector2dF inner_delta = host_impl_->GetInputHandler().ComputeScrollDelta(
+      *inner_node, scroll_delta);
 
   float page_scale = host_impl_->active_tree()->page_scale_factor_for_scroll();
   gfx::Vector2dF unscaled_delta = scroll_delta;
@@ -106,8 +108,8 @@
   remaining_delta.Scale(page_scale);
 
   const ScrollNode* outer_node = OuterScrollNode();
-  gfx::Vector2dF outer_delta =
-      host_impl_->ComputeScrollDelta(*outer_node, remaining_delta);
+  gfx::Vector2dF outer_delta = host_impl_->GetInputHandler().ComputeScrollDelta(
+      *outer_node, remaining_delta);
 
   gfx::Vector2dF combined_delta = inner_delta + outer_delta;
   combined_delta.Scale(page_scale);
@@ -168,13 +170,13 @@
 
   ScrollNode* inner_node = InnerScrollNode();
   gfx::Vector2dF inner_delta =
-      host_impl_->ComputeScrollDelta(*inner_node, delta);
+      host_impl_->GetInputHandler().ComputeScrollDelta(*inner_node, delta);
 
   gfx::Vector2dF pending_delta = scaled_delta - inner_delta;
   pending_delta.Scale(scale_factor);
 
-  gfx::Vector2dF outer_delta =
-      host_impl_->ComputeScrollDelta(*outer_node, pending_delta);
+  gfx::Vector2dF outer_delta = host_impl_->GetInputHandler().ComputeScrollDelta(
+      *outer_node, pending_delta);
 
   if (inner_delta.IsZero() && outer_delta.IsZero())
     return gfx::Vector2dF(0, 0);
diff --git a/cc/metrics/video_playback_roughness_reporter.cc b/cc/metrics/video_playback_roughness_reporter.cc
index 72c57b9..8b670b4 100644
--- a/cc/metrics/video_playback_roughness_reporter.cc
+++ b/cc/metrics/video_playback_roughness_reporter.cc
@@ -8,6 +8,7 @@
 
 #include "base/bind_helpers.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/numerics/safe_conversions.h"
 #include "components/viz/common/quads/compositor_frame_metadata.h"
 
 namespace {
@@ -72,9 +73,9 @@
     }
 
     // Adjust frame window size to fit about 1 second of playback
-    double win_size = std::round(kDesiredWindowDuration /
-                                 info.intended_duration.value().InSecondsF());
-    frames_window_size_ = std::max(kMinWindowSize, static_cast<int>(win_size));
+    int win_size = base::ClampRound(
+        kDesiredWindowDuration / info.intended_duration.value().InSecondsF());
+    frames_window_size_ = std::max(kMinWindowSize, win_size);
     frames_window_size_ = std::min(frames_window_size_, kMaxWindowSize);
   }
 
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
index 933451c4..eb24bdd 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -1643,7 +1643,7 @@
 
 void LayerTreeHost::PushLayerTreeHostPropertiesTo(
     LayerTreeHostImpl* host_impl) {
-  host_impl->set_external_pinch_gesture_active(
+  host_impl->GetInputHandler().set_external_pinch_gesture_active(
       is_external_pinch_gesture_active_);
   RecordGpuRasterizationHistogram(host_impl);
 
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index c439f5a..e8aea9ee 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -148,20 +148,6 @@
 // kHitTestAsk after the threshold is reached.
 const size_t kAssumeOverlapThreshold = 100;
 
-FrameSequenceTrackerType GetTrackerTypeForScroll(
-    ui::ScrollInputType input_type) {
-  switch (input_type) {
-    case ui::ScrollInputType::kWheel:
-      return FrameSequenceTrackerType::kWheelScroll;
-    case ui::ScrollInputType::kTouchscreen:
-      return FrameSequenceTrackerType::kTouchScroll;
-    case ui::ScrollInputType::kScrollbar:
-      return FrameSequenceTrackerType::kScrollbarScroll;
-    case ui::ScrollInputType::kAutoscroll:
-      return FrameSequenceTrackerType::kMaxType;
-  }
-}
-
 bool HasFixedPageScale(LayerTreeImpl* active_tree) {
   return active_tree->min_page_scale_factor() ==
          active_tree->max_page_scale_factor();
@@ -180,20 +166,6 @@
   return has_fixed_page_scale || has_mobile_viewport;
 }
 
-// This helper returns an adjusted version of |delta| where the scroll delta is
-// cleared in any axis in which user scrolling is disabled (e.g. by
-// |overflow-x: hidden|).
-gfx::Vector2dF UserScrollableDelta(const ScrollNode& node,
-                                   const gfx::Vector2dF& delta) {
-  gfx::Vector2dF adjusted_delta = delta;
-  if (!node.user_scrollable_horizontal)
-    adjusted_delta.set_x(0);
-  if (!node.user_scrollable_vertical)
-    adjusted_delta.set_y(0);
-
-  return adjusted_delta;
-}
-
 viz::ResourceFormat TileRasterBufferFormat(
     const LayerTreeSettings& settings,
     viz::ContextProvider* context_provider,
@@ -230,20 +202,6 @@
                                   TRACE_ID_LOCAL(id));
 }
 
-enum SlowScrollMetricThread { MAIN_THREAD, CC_THREAD };
-
-void RecordCompositorSlowScrollMetric(ui::ScrollInputType type,
-                                      SlowScrollMetricThread scroll_thread) {
-  bool scroll_on_main_thread = (scroll_thread == MAIN_THREAD);
-  if (type == ui::ScrollInputType::kWheel) {
-    UMA_HISTOGRAM_BOOLEAN("Renderer4.CompositorWheelScrollUpdateThread",
-                          scroll_on_main_thread);
-  } else if (type == ui::ScrollInputType::kTouchscreen) {
-    UMA_HISTOGRAM_BOOLEAN("Renderer4.CompositorTouchScrollUpdateThread",
-                          scroll_on_main_thread);
-  }
-}
-
 void PopulateMetadataContentColorUsage(
     const LayerTreeHostImpl::FrameData* frame,
     viz::CompositorFrameMetadata* metadata) {
@@ -318,6 +276,60 @@
 DEFINE_SCOPED_UMA_HISTOGRAM_TIMER(PendingTreeRasterDurationHistogramTimer,
                                   "Scheduling.%s.PendingTreeRasterDuration")
 
+void LayerTreeHostImpl::SetNeedsCommitInputChanges() {
+  client_->SetNeedsCommitOnImplThread();
+}
+
+void LayerTreeHostImpl::DidUpdateScrollAnimationCurve() {
+  // Because we updated the animation target, notify the SwapPromiseMonitor
+  // to tell it that something happened that will cause a swap in the future.
+  // This will happen within the scope of the dispatch of a gesture scroll
+  // update input event. If we don't notify during the handling of the input
+  // event, the LatencyInfo associated with the input event will not be
+  // added as a swap promise and we won't get any swap results.
+  NotifySwapPromiseMonitorsOfSetNeedsRedraw();
+  events_metrics_manager_.SaveActiveEventMetrics();
+}
+
+void LayerTreeHostImpl::AccumulateScrollDeltaForTracing(
+    const gfx::Vector2dF& delta) {
+  scroll_accumulated_this_frame_ += delta;
+}
+
+void LayerTreeHostImpl::DidStartPinchZoom() {
+  client_->RenewTreePriority();
+  frame_trackers_.StartSequence(FrameSequenceTrackerType::kPinchZoom);
+}
+
+void LayerTreeHostImpl::DidEndPinchZoom() {
+  // When a pinch ends, we may be displaying content cached at incorrect scales,
+  // so updating draw properties and drawing will ensure we are using the right
+  // scales that we want when we're not inside a pinch.
+  active_tree_->set_needs_update_draw_properties();
+  SetNeedsRedraw();
+  frame_trackers_.StopSequence(FrameSequenceTrackerType::kPinchZoom);
+}
+
+void LayerTreeHostImpl::DidUpdatePinchZoom() {
+  SetNeedsRedraw();
+  client_->RenewTreePriority();
+}
+
+void LayerTreeHostImpl::DidStartScroll() {
+  client_->RenewTreePriority();
+}
+
+void LayerTreeHostImpl::DidSetRootScrollOffsetForSynchronousInputHandler() {
+  // TODO(bokan): Do these really need to be manually called? (Rather than
+  // damage/redraw being set from scroll offset changes).
+  SetFullViewportDamage();
+  SetNeedsRedraw();
+}
+
+ImplThreadPhase LayerTreeHostImpl::GetCompositorThreadPhase() const {
+  return impl_thread_phase_;
+}
+
 LayerTreeHostImpl::FrameData::FrameData() = default;
 LayerTreeHostImpl::FrameData::~FrameData() = default;
 LayerTreeHostImpl::UIResourceData::UIResourceData() = default;
@@ -361,6 +373,7 @@
           std::make_unique<CompositorFrameReportingController>(
               /*should_report_metrics=*/!settings
                   .single_thread_proxy_scheduler)),
+      input_handler_(this),
       settings_(settings),
       is_synchronous_single_threaded_(!task_runner_provider->HasImplThread() &&
                                       !settings_.single_thread_proxy_scheduler),
@@ -388,10 +401,8 @@
                                   this,
                                   settings_.enable_image_animation_resync),
       paint_image_generator_client_id_(PaintImage::GetNextGeneratorClientId()),
-      scrollbar_controller_(std::make_unique<ScrollbarController>(this)),
       frame_trackers_(settings.single_thread_proxy_scheduler,
                       compositor_frame_reporting_controller_.get()),
-      scroll_gesture_did_end_(false),
       lcd_text_metrics_reporter_(LCDTextMetricsReporter::CreateIfNeeded(this)),
       frame_rate_estimator_(GetTaskRunner()) {
   DCHECK(mutator_host_);
@@ -441,12 +452,7 @@
   DCHECK(!image_decode_cache_);
   DCHECK(!single_thread_synchronous_task_graph_runner_);
 
-  if (input_handler_client_) {
-    input_handler_client_->WillShutdown();
-    input_handler_client_ = nullptr;
-  }
-  if (scroll_elasticity_helper_)
-    scroll_elasticity_helper_.reset();
+  input_handler_.WillShutdown();
 
   // The layer trees must be destroyed before the LayerTreeHost. Also, if they
   // are holding onto any resources, destroying them will release them, before
@@ -471,6 +477,10 @@
   compositor_frame_reporting_controller_->SetUkmManager(nullptr);
 }
 
+ThreadedInputHandler& LayerTreeHostImpl::GetInputHandler() {
+  return input_handler_;
+}
+
 void LayerTreeHostImpl::WillSendBeginMainFrame() {
   if (scheduling_client_)
     scheduling_client_->DidScheduleBeginMainFrame();
@@ -519,10 +529,7 @@
 void LayerTreeHostImpl::CommitComplete() {
   TRACE_EVENT0("cc", "LayerTreeHostImpl::CommitComplete");
 
-  // In high latency mode commit cannot finish within the same frame. We need to
-  // flush input here to make sure they got picked up by |PrepareTiles()|.
-  if (input_handler_client_ && impl_thread_phase_ == ImplThreadPhase::IDLE)
-    input_handler_client_->DeliverInputForHighLatencyMode();
+  input_handler_.DidCommitFromBlink();
 
   if (CommitToActiveTree()) {
     active_tree_->HandleScrollbarShowRequestsFromMain();
@@ -839,12 +846,8 @@
 
   bool did_animate = false;
 
-  if (input_handler_client_) {
-    // This does not set did_animate, because if the InputHandlerClient
-    // changes anything it will be through the InputHandler interface which
-    // does SetNeedsRedraw.
-    input_handler_client_->Animate(monotonic_time);
-  }
+  // TODO(bokan): See TODO in ElasticOverscrollController::Animate
+  input_handler_.TickAnimations(monotonic_time);
 
   did_animate |= AnimatePageScale(monotonic_time);
   did_animate |= AnimateLayers(monotonic_time, /* is_active_tree */ true);
@@ -853,7 +856,7 @@
 
   // Animating stuff can change the root scroll offset, so inform the
   // synchronous input handler.
-  UpdateRootLayerStateForSynchronousInputHandler();
+  input_handler_.UpdateRootLayerStateForSynchronousInputHandler();
   if (did_animate) {
     // If the tree changed, then we want to draw at the end of the current
     // frame.
@@ -925,97 +928,25 @@
 }
 
 bool LayerTreeHostImpl::IsCurrentlyScrollingViewport() const {
-  auto* node = CurrentlyScrollingNode();
-  if (!node)
-    return false;
-  return viewport().ShouldScroll(*node);
+  return input_handler_.IsCurrentlyScrollingViewport();
 }
 
 EventListenerProperties LayerTreeHostImpl::GetEventListenerProperties(
     EventListenerClass event_class) const {
-  return active_tree_->event_listener_properties(event_class);
-}
-
-// Return true if scrollable node for 'ancestor' is the same as 'child' or an
-// ancestor along the scroll tree.
-bool LayerTreeHostImpl::IsScrolledBy(LayerImpl* child, ScrollNode* ancestor) {
-  DCHECK(ancestor && ancestor->scrollable);
-  if (!child)
-    return false;
-  DCHECK_EQ(child->layer_tree_impl(), active_tree_.get());
-  ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree;
-  for (ScrollNode* scroll_node = scroll_tree.Node(child->scroll_tree_index());
-       scroll_node; scroll_node = scroll_tree.parent(scroll_node)) {
-    if (scroll_node->id == ancestor->id)
-      return true;
-  }
-  return false;
+  return input_handler_.GetEventListenerProperties(event_class);
 }
 
 InputHandler::TouchStartOrMoveEventListenerType
 LayerTreeHostImpl::EventListenerTypeForTouchStartOrMoveAt(
     const gfx::Point& viewport_point,
     TouchAction* out_touch_action) {
-  gfx::PointF device_viewport_point = gfx::ScalePoint(
-      gfx::PointF(viewport_point), active_tree_->device_scale_factor());
-
-  LayerImpl* layer_impl_with_touch_handler =
-      active_tree_->FindLayerThatIsHitByPointInTouchHandlerRegion(
-          device_viewport_point);
-
-  if (layer_impl_with_touch_handler == nullptr) {
-    if (out_touch_action)
-      *out_touch_action = TouchAction::kAuto;
-    return InputHandler::TouchStartOrMoveEventListenerType::NO_HANDLER;
-  }
-
-  if (out_touch_action) {
-    gfx::Transform layer_screen_space_transform =
-        layer_impl_with_touch_handler->ScreenSpaceTransform();
-    gfx::Transform inverse_layer_screen_space(
-        gfx::Transform::kSkipInitialization);
-    bool can_be_inversed =
-        layer_screen_space_transform.GetInverse(&inverse_layer_screen_space);
-    // Getting here indicates that |layer_impl_with_touch_handler| is non-null,
-    // which means that the |hit| in FindClosestMatchingLayer() is true, which
-    // indicates that the inverse is available.
-    DCHECK(can_be_inversed);
-    bool clipped = false;
-    gfx::Point3F planar_point = MathUtil::ProjectPoint3D(
-        inverse_layer_screen_space, device_viewport_point, &clipped);
-    gfx::PointF hit_test_point_in_layer_space =
-        gfx::PointF(planar_point.x(), planar_point.y());
-    const auto& region = layer_impl_with_touch_handler->touch_action_region();
-    gfx::Point point = gfx::ToRoundedPoint(hit_test_point_in_layer_space);
-    *out_touch_action = region.GetAllowedTouchAction(point);
-  }
-
-  if (!CurrentlyScrollingNode())
-    return InputHandler::TouchStartOrMoveEventListenerType::HANDLER;
-
-  // Check if the touch start (or move) hits on the current scrolling layer or
-  // its descendant. layer_impl_with_touch_handler is the layer hit by the
-  // pointer and has an event handler, otherwise it is null. We want to compare
-  // the most inner layer we are hitting on which may not have an event listener
-  // with the actual scrolling layer.
-  LayerImpl* layer_impl =
-      active_tree_->FindLayerThatIsHitByPoint(device_viewport_point);
-  bool is_ancestor = IsScrolledBy(layer_impl, CurrentlyScrollingNode());
-  return is_ancestor ? InputHandler::TouchStartOrMoveEventListenerType::
-                           HANDLER_ON_SCROLLING_LAYER
-                     : InputHandler::TouchStartOrMoveEventListenerType::HANDLER;
+  return input_handler_.EventListenerTypeForTouchStartOrMoveAt(
+      viewport_point, out_touch_action);
 }
 
 bool LayerTreeHostImpl::HasBlockingWheelEventHandlerAt(
     const gfx::Point& viewport_point) const {
-  gfx::PointF device_viewport_point = gfx::ScalePoint(
-      gfx::PointF(viewport_point), active_tree_->device_scale_factor());
-
-  LayerImpl* layer_impl_with_wheel_event_handler =
-      active_tree_->FindLayerThatIsHitByPointInWheelEventHandlerRegion(
-          device_viewport_point);
-
-  return layer_impl_with_wheel_event_handler;
+  return input_handler_.HasBlockingWheelEventHandlerAt(viewport_point);
 }
 
 std::unique_ptr<SwapPromiseMonitor>
@@ -1032,54 +963,21 @@
 }
 
 ScrollElasticityHelper* LayerTreeHostImpl::CreateScrollElasticityHelper() {
-  DCHECK(!scroll_elasticity_helper_);
-  if (settings_.enable_elastic_overscroll) {
-    scroll_elasticity_helper_.reset(
-        ScrollElasticityHelper::CreateForLayerTreeHostImpl(this));
-  }
-  return scroll_elasticity_helper_.get();
+  return input_handler_.CreateScrollElasticityHelper();
 }
 
 bool LayerTreeHostImpl::GetScrollOffsetForLayer(ElementId element_id,
                                                 gfx::ScrollOffset* offset) {
-  ScrollTree& scroll_tree = active_tree()->property_trees()->scroll_tree;
-  ScrollNode* scroll_node = scroll_tree.FindNodeFromElementId(element_id);
-  if (!scroll_node)
-    return false;
-  *offset = scroll_tree.current_scroll_offset(element_id);
-  return true;
+  return input_handler_.GetScrollOffsetForLayer(element_id, offset);
 }
 
 bool LayerTreeHostImpl::ScrollLayerTo(ElementId element_id,
                                       const gfx::ScrollOffset& offset) {
-  ScrollTree& scroll_tree = active_tree()->property_trees()->scroll_tree;
-  ScrollNode* scroll_node = scroll_tree.FindNodeFromElementId(element_id);
-  if (!scroll_node)
-    return false;
-
-  scroll_tree.ScrollBy(
-      *scroll_node,
-      ScrollOffsetToVector2dF(offset -
-                              scroll_tree.current_scroll_offset(element_id)),
-      active_tree());
-  return true;
+  return input_handler_.ScrollLayerTo(element_id, offset);
 }
 
 bool LayerTreeHostImpl::ScrollingShouldSwitchtoMainThread() {
-  DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
-  ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree;
-  ScrollNode* scroll_node = scroll_tree.CurrentlyScrollingNode();
-
-  if (!scroll_node)
-    return true;
-
-  for (; scroll_tree.parent(scroll_node);
-       scroll_node = scroll_tree.parent(scroll_node)) {
-    if (!!scroll_node->main_thread_scrolling_reasons)
-      return true;
-  }
-
-  return false;
+  return input_handler_.ScrollingShouldSwitchtoMainThread();
 }
 
 void LayerTreeHostImpl::NotifyInputEvent() {
@@ -1566,8 +1464,7 @@
                          TRACE_ID_GLOBAL(CurrentBeginFrameArgs().trace_id),
                          TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT,
                          "step", "GenerateRenderPass");
-  if (input_handler_client_)
-    input_handler_client_->ReconcileElasticOverscrollAndRootScroll();
+  input_handler_.WillDraw();
 
   // |client_name| is used for various UMA histograms below.
   // GetClientNameForMetrics only returns one non-null value over the lifetime
@@ -2838,10 +2735,7 @@
     SetNeedsRedraw();
   }
 
-  if (input_handler_client_) {
-    scrollbar_controller_->WillBeginImplFrame();
-    input_handler_client_->DeliverInputForBeginFrame(args);
-  }
+  input_handler_.WillBeginImplFrame(args);
 
   Animate();
 
@@ -3093,16 +2987,7 @@
 }
 
 bool LayerTreeHostImpl::IsActivelyPrecisionScrolling() const {
-  if (!CurrentlyScrollingNode())
-    return false;
-
-  if (!last_scroll_update_state_)
-    return false;
-
-  bool did_scroll_content =
-      did_scroll_x_for_scroll_gesture_ || did_scroll_y_for_scroll_gesture_;
-  return !ShouldAnimateScroll(last_scroll_update_state_.value()) &&
-         did_scroll_content;
+  return input_handler_.IsActivelyPrecisionScrolling();
 }
 
 void LayerTreeHostImpl::CreatePendingTree() {
@@ -3194,9 +3079,7 @@
 
     active_tree_->lifecycle().AdvanceTo(LayerTreeLifecycle::kNotSyncing);
 
-    // The previous scrolling node no longer exists in the new tree.
-    if (!active_tree_->CurrentlyScrollingNode())
-      ClearCurrentlyScrollingNode();
+    input_handler_.DidActivatePendingTree();
 
     // Now that we've synced everything from the pending tree to the active
     // tree, rename the pending tree the recycle tree so we can reuse it on the
@@ -3258,7 +3141,7 @@
   }
   // Activation can change the root scroll offset, so inform the synchronous
   // input handler.
-  UpdateRootLayerStateForSynchronousInputHandler();
+  input_handler_.UpdateRootLayerStateForSynchronousInputHandler();
 
   // Update the child's LocalSurfaceId.
   if (active_tree()->local_surface_id_allocation_from_parent().IsValid()) {
@@ -3804,661 +3687,21 @@
 }
 
 void LayerTreeHostImpl::BindToClient(InputHandlerClient* client) {
-  DCHECK(input_handler_client_ == nullptr);
-  input_handler_client_ = client;
-}
-
-gfx::Vector2dF LayerTreeHostImpl::ResolveScrollGranularityToPixels(
-    const ScrollNode& scroll_node,
-    const gfx::Vector2dF& scroll_delta,
-    ui::ScrollGranularity granularity) {
-  gfx::Vector2dF pixel_delta = scroll_delta;
-
-  if (granularity == ui::ScrollGranularity::kScrollByPage) {
-    // Page should use a percentage of the scroller so change the parameters
-    // and let the percentage case below resolve it.
-    granularity = ui::ScrollGranularity::kScrollByPercentage;
-    pixel_delta.Scale(kMinFractionToStepWhenPaging);
-  }
-
-  if (granularity == ui::ScrollGranularity::kScrollByPercentage) {
-    gfx::SizeF scroller_size = gfx::SizeF(scroll_node.container_bounds);
-
-    gfx::SizeF viewport_size =
-        InnerViewportScrollNode()
-            ? gfx::SizeF(InnerViewportScrollNode()->container_bounds)
-            : gfx::SizeF(active_tree()->GetDeviceViewport().size());
-
-    // Convert from rootframe coordinates to screen coordinates (physical
-    // pixels).
-    scroller_size.Scale(active_tree()->page_scale_factor_for_scroll());
-
-    pixel_delta = ScrollUtils::ResolveScrollPercentageToPixels(
-        pixel_delta, scroller_size, viewport_size);
-  }
-
-  return pixel_delta;
-}
-
-InputHandler::ScrollStatus LayerTreeHostImpl::TryScroll(
-    const ScrollTree& scroll_tree,
-    ScrollNode* scroll_node) const {
-  DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
-
-  InputHandler::ScrollStatus scroll_status;
-  scroll_status.main_thread_scrolling_reasons =
-      MainThreadScrollingReason::kNotScrollingOnMain;
-  if (scroll_node->main_thread_scrolling_reasons) {
-    TRACE_EVENT1("cc", "LayerImpl::TryScroll: Failed ShouldScrollOnMainThread",
-                 "MainThreadScrollingReason",
-                 scroll_node->main_thread_scrolling_reasons);
-    scroll_status.thread = ScrollThread::SCROLL_ON_MAIN_THREAD;
-    scroll_status.main_thread_scrolling_reasons =
-        scroll_node->main_thread_scrolling_reasons;
-    return scroll_status;
-  }
-
-  gfx::Transform screen_space_transform =
-      scroll_tree.ScreenSpaceTransform(scroll_node->id);
-  if (!screen_space_transform.IsInvertible()) {
-    TRACE_EVENT0("cc", "LayerImpl::TryScroll: Ignored NonInvertibleTransform");
-    scroll_status.thread = ScrollThread::SCROLL_IGNORED;
-    scroll_status.main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNonInvertibleTransform;
-    return scroll_status;
-  }
-
-  if (!scroll_node->scrollable) {
-    TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored not scrollable");
-    scroll_status.thread = ScrollThread::SCROLL_IGNORED;
-    scroll_status.main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNotScrollable;
-    return scroll_status;
-  }
-
-  // If an associated scrolling layer is not found, the scroll node must not
-  // support impl-scrolling. The root, secondary root, and inner viewports
-  // are all exceptions to this and may not have a layer because it is not
-  // required for hit testing.
-  if (scroll_node->id != ScrollTree::kRootNodeId &&
-      scroll_node->id != ScrollTree::kSecondaryRootNodeId &&
-      !scroll_node->scrolls_inner_viewport &&
-      !active_tree_->LayerByElementId(scroll_node->element_id)) {
-    TRACE_EVENT0("cc",
-                 "LayerImpl::tryScroll: Failed due to no scrolling layer");
-    scroll_status.thread = ScrollThread::SCROLL_ON_MAIN_THREAD;
-    scroll_status.main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNonFastScrollableRegion;
-    return scroll_status;
-  }
-
-  // The a viewport node should be scrolled even if it has no scroll extent
-  // since it'll scroll using the Viewport class which will generate browser
-  // controls movement and overscroll delta.
-  gfx::ScrollOffset max_scroll_offset =
-      scroll_tree.MaxScrollOffset(scroll_node->id);
-  if (max_scroll_offset.x() <= 0 && max_scroll_offset.y() <= 0 &&
-      !viewport().ShouldScroll(*scroll_node)) {
-    TRACE_EVENT0("cc",
-                 "LayerImpl::tryScroll: Ignored. Technically scrollable,"
-                 " but has no affordance in either direction.");
-    scroll_status.thread = ScrollThread::SCROLL_IGNORED;
-    scroll_status.main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNotScrollable;
-    return scroll_status;
-  }
-
-  scroll_status.thread = ScrollThread::SCROLL_ON_IMPL_THREAD;
-  return scroll_status;
-}
-
-static bool IsMainThreadScrolling(const InputHandler::ScrollStatus& status,
-                                  const ScrollNode* scroll_node) {
-  if (status.thread == ScrollThread::SCROLL_ON_MAIN_THREAD) {
-    if (!!scroll_node->main_thread_scrolling_reasons) {
-      DCHECK(MainThreadScrollingReason::MainThreadCanSetScrollReasons(
-          status.main_thread_scrolling_reasons));
-    } else {
-      DCHECK(MainThreadScrollingReason::CompositorCanSetScrollReasons(
-          status.main_thread_scrolling_reasons));
-    }
-    return true;
-  }
-  return false;
-}
-
-base::flat_set<int> LayerTreeHostImpl::NonFastScrollableNodes(
-    const gfx::PointF& device_viewport_point) const {
-  base::flat_set<int> non_fast_scrollable_nodes;
-
-  const auto& non_fast_layers =
-      active_tree_->FindLayersHitByPointInNonFastScrollableRegion(
-          device_viewport_point);
-  for (const auto* layer : non_fast_layers)
-    non_fast_scrollable_nodes.insert(layer->scroll_tree_index());
-
-  return non_fast_scrollable_nodes;
-}
-
-ScrollNode* LayerTreeHostImpl::FindScrollNodeForCompositedScrolling(
-    const gfx::PointF& device_viewport_point,
-    LayerImpl* layer_impl,
-    bool* scroll_on_main_thread,
-    uint32_t* main_thread_scrolling_reasons) const {
-  DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
-  DCHECK(scroll_on_main_thread);
-  DCHECK(main_thread_scrolling_reasons);
-  *main_thread_scrolling_reasons =
-      MainThreadScrollingReason::kNotScrollingOnMain;
-
-  const auto& non_fast_scrollable_nodes =
-      NonFastScrollableNodes(device_viewport_point);
-
-  // Walk up the hierarchy and look for a scrollable layer.
-  ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree;
-  ScrollNode* impl_scroll_node = nullptr;
-  if (layer_impl) {
-    // If this is a scrollbar layer, we can't directly use the associated
-    // scroll_node (because the scroll_node associated with this layer will be
-    // the owning scroller's parent). Instead, we first retrieve the scrollable
-    // layer corresponding to the scrollbars owner and then use its
-    // scroll_tree_index instead.
-    int scroll_tree_index = layer_impl->scroll_tree_index();
-    if (layer_impl->IsScrollbarLayer()) {
-      LayerImpl* owner_scroll_layer = active_tree_->LayerByElementId(
-          ToScrollbarLayer(layer_impl)->scroll_element_id());
-      scroll_tree_index = owner_scroll_layer->scroll_tree_index();
-    }
-
-    ScrollNode* scroll_node = scroll_tree.Node(scroll_tree_index);
-    for (; scroll_tree.parent(scroll_node);
-         scroll_node = scroll_tree.parent(scroll_node)) {
-      // The content layer can also block attempts to scroll outside the main
-      // thread.
-      ScrollStatus status = TryScroll(scroll_tree, scroll_node);
-      if (IsMainThreadScrolling(status, scroll_node)) {
-        *scroll_on_main_thread = true;
-        *main_thread_scrolling_reasons = status.main_thread_scrolling_reasons;
-        return scroll_node;
-      }
-
-      if (non_fast_scrollable_nodes.contains(scroll_node->id)) {
-        *scroll_on_main_thread = true;
-        *main_thread_scrolling_reasons =
-            MainThreadScrollingReason::kNonFastScrollableRegion;
-        return scroll_node;
-      }
-
-      if (status.thread == ScrollThread::SCROLL_ON_IMPL_THREAD &&
-          !impl_scroll_node) {
-        impl_scroll_node = scroll_node;
-      }
-    }
-  }
-
-  // TODO(bokan): We shouldn't need this - ordinarily all scrolls should pass
-  // through the outer viewport. If we aren't able to find a scroller we should
-  // return nullptr here and ignore the scroll. However, it looks like on some
-  // pages (reddit.com) we start scrolling from the inner node.
-  if (!impl_scroll_node)
-    impl_scroll_node = InnerViewportScrollNode();
-
-  if (!impl_scroll_node)
-    return nullptr;
-
-  impl_scroll_node = GetNodeToScroll(impl_scroll_node);
-
-  // Ensure that final scroll node scrolls on impl thread (crbug.com/625100)
-  ScrollStatus status = TryScroll(scroll_tree, impl_scroll_node);
-  if (IsMainThreadScrolling(status, impl_scroll_node)) {
-    *scroll_on_main_thread = true;
-    *main_thread_scrolling_reasons = status.main_thread_scrolling_reasons;
-  } else if (non_fast_scrollable_nodes.contains(impl_scroll_node->id)) {
-    *scroll_on_main_thread = true;
-    *main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNonFastScrollableRegion;
-  }
-
-  return impl_scroll_node;
+  input_handler_.BindToClient(client);
 }
 
 InputHandler::ScrollStatus LayerTreeHostImpl::RootScrollBegin(
     ScrollState* scroll_state,
     ui::ScrollInputType type) {
-  TRACE_EVENT0("cc", "LayerTreeHostImpl::RootScrollBegin");
-  if (!OuterViewportScrollNode()) {
-    ScrollStatus scroll_status;
-    scroll_status.thread = ScrollThread::SCROLL_IGNORED;
-    scroll_status.main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNoScrollingLayer;
-    return scroll_status;
-  }
-
-  scroll_state->data()->set_current_native_scrolling_element(
-      OuterViewportScrollNode()->element_id);
-  InputHandler::ScrollStatus scroll_status = ScrollBegin(scroll_state, type);
-
-  // Since we provided an ElementId, there should never be a need to perform a
-  // hit test.
-  DCHECK(!scroll_status.needs_main_thread_hit_test);
-
-  return scroll_status;
+  return input_handler_.RootScrollBegin(scroll_state, type);
 }
 
 InputHandler::ScrollStatus LayerTreeHostImpl::ScrollBegin(
     ScrollState* scroll_state,
     ui::ScrollInputType type) {
-  DCHECK(scroll_state);
-  DCHECK(scroll_state->delta_x() == 0 && scroll_state->delta_y() == 0);
-
-  ScrollStatus scroll_status;
-  scroll_status.main_thread_scrolling_reasons =
-      MainThreadScrollingReason::kNotScrollingOnMain;
-  TRACE_EVENT0("cc", "LayerTreeHostImpl::ScrollBegin");
-
-  // If this ScrollBegin is non-animated then ensure we cancel any ongoing
-  // animated scrolls.
-  // TODO(bokan): This preserves existing behavior when we had diverging
-  // paths for animated and non-animated scrolls but we should probably
-  // decide when it best makes sense to cancel a scroll animation (maybe
-  // ScrollBy is a better place to do it).
-  if (scroll_state->delta_granularity() ==
-      ui::ScrollGranularity::kScrollByPrecisePixel) {
-    mutator_host_->ScrollAnimationAbort();
-    scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
-  }
-
-  if (CurrentlyScrollingNode() && type == latched_scroll_type_) {
-    // It's possible we haven't yet cleared the CurrentlyScrollingNode if we
-    // received a GSE but we're still animating the last scroll. If that's the
-    // case, we'll simply un-defer the GSE and continue latching to the same
-    // node.
-    DCHECK(deferred_scroll_end_);
-    deferred_scroll_end_ = false;
-    return scroll_status;
-  }
-
-  ScrollNode* scrolling_node = nullptr;
-  bool scroll_on_main_thread = false;
-
-  // TODO(bokan): ClearCurrentlyScrollingNode shouldn't happen in ScrollBegin,
-  // this should only happen in ScrollEnd. We should DCHECK here that the state
-  // is cleared instead. https://crbug.com/1016229
-  ClearCurrentlyScrollingNode();
-  auto& scroll_tree = active_tree_->property_trees()->scroll_tree;
-
-  ElementId target_element_id = scroll_state->target_element_id();
-
-  if (target_element_id && !scroll_state->is_main_thread_hit_tested()) {
-    TRACE_EVENT_INSTANT0("cc", "Latched scroll node provided",
-                         TRACE_EVENT_SCOPE_THREAD);
-    // If the caller passed in an element_id we can skip all the hit-testing
-    // bits and provide a node straight-away.
-    scrolling_node = scroll_tree.FindNodeFromElementId(target_element_id);
-
-    // In unified scrolling, if we found a node we get to scroll it.
-    if (!base::FeatureList::IsEnabled(features::kScrollUnification)) {
-      // We still need to confirm the targeted node exists and can scroll on
-      // the compositor.
-      if (scrolling_node) {
-        scroll_status = TryScroll(active_tree_->property_trees()->scroll_tree,
-                                  scrolling_node);
-        if (IsMainThreadScrolling(scroll_status, scrolling_node))
-          scroll_on_main_thread = true;
-      }
-    }
-  } else {
-    ScrollNode* starting_node = nullptr;
-    if (target_element_id) {
-      TRACE_EVENT_INSTANT0("cc", "Unlatched scroll node provided",
-                           TRACE_EVENT_SCOPE_THREAD);
-      // We had an element id but we should still perform the walk up the
-      // scroll tree from the targeted node to latch to a scroller that can
-      // scroll in the given direction. This mode is only used when scroll
-      // unification is enabled and the targeted scroller comes back from a
-      // main thread hit test.
-      DCHECK(scroll_state->data()->is_main_thread_hit_tested);
-      DCHECK(base::FeatureList::IsEnabled(features::kScrollUnification));
-      starting_node = scroll_tree.FindNodeFromElementId(target_element_id);
-
-      if (!starting_node) {
-        // The main thread sent us an element_id that the compositor doesn't
-        // have a scroll node for. This can happen in some racy conditions, a
-        // freshly created scroller hasn't yet been committed or a
-        // scroller-destroying commit beats the hit test back to the compositor
-        // thread. However, these cases shouldn't be user perceptible.
-        scroll_status.main_thread_scrolling_reasons =
-            MainThreadScrollingReason::kNoScrollingLayer;
-        scroll_status.thread = ScrollThread::SCROLL_IGNORED;
-        return scroll_status;
-      }
-    } else {
-      TRACE_EVENT_INSTANT0("cc", "Hit Testing for ScrollNode",
-                           TRACE_EVENT_SCOPE_THREAD);
-      gfx::Point viewport_point(scroll_state->position_x(),
-                                scroll_state->position_y());
-      gfx::PointF device_viewport_point = gfx::ScalePoint(
-          gfx::PointF(viewport_point), active_tree_->device_scale_factor());
-
-      if (base::FeatureList::IsEnabled(features::kScrollUnification)) {
-        if (scroll_state->data()->is_main_thread_hit_tested) {
-          // The client should have discarded the scroll when the hit test came
-          // back with an invalid element id. If we somehow get here, we should
-          // drop the scroll as continuing could cause us to infinitely bounce
-          // back and forth between here and hit testing on the main thread.
-          NOTREACHED();
-          scroll_status.main_thread_scrolling_reasons =
-              MainThreadScrollingReason::kNoScrollingLayer;
-          scroll_status.thread = ScrollThread::SCROLL_IGNORED;
-          return scroll_status;
-        }
-
-        // Touch dragging the scrollbar requires falling back to main-thread
-        // scrolling.
-        // TODO(bokan): This could be trivially handled in the compositor by
-        // the new ScrollbarController and should be removed.
-        {
-          LayerImpl* first_scrolling_layer_or_scrollbar =
-              active_tree_->FindFirstScrollingLayerOrScrollbarThatIsHitByPoint(
-                  device_viewport_point);
-          if (IsTouchDraggingScrollbar(first_scrolling_layer_or_scrollbar,
-                                       type)) {
-            TRACE_EVENT_INSTANT0("cc", "Scrollbar Scrolling",
-                                 TRACE_EVENT_SCOPE_THREAD);
-            scroll_status.thread = ScrollThread::SCROLL_ON_MAIN_THREAD;
-            scroll_status.main_thread_scrolling_reasons =
-                MainThreadScrollingReason::kScrollbarScrolling;
-            return scroll_status;
-          }
-        }
-
-        ScrollHitTestResult scroll_hit_test =
-            HitTestScrollNode(device_viewport_point);
-
-        if (!scroll_hit_test.hit_test_successful) {
-          // This result tells the client that the compositor doesn't have
-          // enough information to target this scroll. The client should
-          // perform a hit test in Blink and call this method again, with the
-          // ElementId of the hit-tested scroll node.
-          TRACE_EVENT_INSTANT0("cc", "Request Main Thread Hit Test",
-                               TRACE_EVENT_SCOPE_THREAD);
-          scroll_status.thread = ScrollThread::SCROLL_ON_IMPL_THREAD;
-          scroll_status.needs_main_thread_hit_test = true;
-          return scroll_status;
-        }
-
-        starting_node = scroll_hit_test.scroll_node;
-      } else {
-        LayerImpl* layer_impl =
-            active_tree_->FindLayerThatIsHitByPoint(device_viewport_point);
-
-        if (layer_impl) {
-          LayerImpl* first_scrolling_layer_or_scrollbar =
-              active_tree_->FindFirstScrollingLayerOrScrollbarThatIsHitByPoint(
-                  device_viewport_point);
-
-          // Touch dragging the scrollbar requires falling back to main-thread
-          // scrolling.
-          if (IsTouchDraggingScrollbar(first_scrolling_layer_or_scrollbar,
-                                       type)) {
-            TRACE_EVENT_INSTANT0("cc", "Scrollbar Scrolling",
-                                 TRACE_EVENT_SCOPE_THREAD);
-            scroll_status.thread = ScrollThread::SCROLL_ON_MAIN_THREAD;
-            scroll_status.main_thread_scrolling_reasons =
-                MainThreadScrollingReason::kScrollbarScrolling;
-            return scroll_status;
-          } else if (!IsInitialScrollHitTestReliable(
-                         layer_impl, first_scrolling_layer_or_scrollbar)) {
-            TRACE_EVENT_INSTANT0("cc", "Failed Hit Test",
-                                 TRACE_EVENT_SCOPE_THREAD);
-            scroll_status.thread = ScrollThread::SCROLL_UNKNOWN;
-            scroll_status.main_thread_scrolling_reasons =
-                MainThreadScrollingReason::kFailedHitTest;
-            return scroll_status;
-          }
-        }
-
-        starting_node = FindScrollNodeForCompositedScrolling(
-            device_viewport_point, layer_impl, &scroll_on_main_thread,
-            &scroll_status.main_thread_scrolling_reasons);
-      }
-    }
-
-    // The above finds the ScrollNode that's hit by the given point but we
-    // still need to walk up the scroll tree looking for the first node that
-    // can consume delta from the scroll state.
-    scrolling_node = FindNodeToLatch(scroll_state, starting_node, type);
-  }
-
-  if (scroll_on_main_thread) {
-    // Under scroll unification we can request a main thread hit test, but we
-    // should never send scrolls to the main thread.
-    DCHECK(!base::FeatureList::IsEnabled(features::kScrollUnification));
-
-    RecordCompositorSlowScrollMetric(type, MAIN_THREAD);
-    scroll_status.thread = ScrollThread::SCROLL_ON_MAIN_THREAD;
-    return scroll_status;
-  } else if (!scrolling_node) {
-    scroll_status.main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNoScrollingLayer;
-    if (settings_.is_layer_tree_for_subframe) {
-      // OOPIFs never have a viewport scroll node so if we can't scroll
-      // we need to be bubble up to the parent frame. This happens by
-      // returning SCROLL_UNKNOWN.
-      TRACE_EVENT_INSTANT0("cc", "Ignored - No ScrollNode (OOPIF)",
-                           TRACE_EVENT_SCOPE_THREAD);
-      scroll_status.thread = ScrollThread::SCROLL_UNKNOWN;
-    } else {
-      // If we didn't hit a layer above we'd usually fallback to the
-      // viewport scroll node. However, there may not be one if a scroll
-      // is received before the root layer has been attached. Chrome now
-      // drops input until the first commit is received so this probably
-      // can't happen in a typical browser session but there may still be
-      // configurations where input is allowed prior to a commit.
-      TRACE_EVENT_INSTANT0("cc", "Ignored - No ScrollNode",
-                           TRACE_EVENT_SCOPE_THREAD);
-      scroll_status.thread = ScrollThread::SCROLL_IGNORED;
-    }
-    return scroll_status;
-  }
-
-  DCHECK_EQ(scroll_status.main_thread_scrolling_reasons,
-            MainThreadScrollingReason::kNotScrollingOnMain);
-  DCHECK_EQ(scroll_status.thread, ScrollThread::SCROLL_ON_IMPL_THREAD);
-
-  active_tree_->SetCurrentlyScrollingNode(scrolling_node);
-
-  DidLatchToScroller(*scroll_state, type);
-
-  // If the viewport is scrolling and it cannot consume any delta hints, the
-  // scroll event will need to get bubbled if the viewport is for a guest or
-  // oopif.
-  if (viewport().ShouldScroll(*CurrentlyScrollingNode()) &&
-      !viewport().CanScroll(*CurrentlyScrollingNode(), *scroll_state)) {
-    scroll_status.bubble = true;
-  }
-
-  return scroll_status;
+  return input_handler_.ScrollBegin(scroll_state, type);
 }
 
-LayerTreeHostImpl::ScrollHitTestResult LayerTreeHostImpl::HitTestScrollNode(
-    const gfx::PointF& device_viewport_point) const {
-  ScrollHitTestResult result;
-  result.scroll_node = nullptr;
-  result.hit_test_successful = false;
-
-  std::vector<const LayerImpl*> layers =
-      active_tree_->FindAllLayersUpToAndIncludingFirstScrollable(
-          device_viewport_point);
-
-  // It's theoretically possible to hit no layers or only non-scrolling layers.
-  // e.g. an API hit test outside the viewport. In that case, just fallback to
-  // scrolling the viewport.
-  if (layers.empty() || !layers.back()->IsScrollerOrScrollbar()) {
-    result.hit_test_successful = true;
-    if (InnerViewportScrollNode())
-      result.scroll_node = GetNodeToScroll(InnerViewportScrollNode());
-
-    return result;
-  }
-
-  const LayerImpl* scroller_layer = layers.back();
-  layers.pop_back();
-
-  // Go through each layer in front of the scroller. Any of them may block
-  // scrolling if they come from outside the scroller's scroll-subtree or if we
-  // hit a non-fast-scrolling-region.
-  for (const auto* layer_impl : layers) {
-    DCHECK(!layer_impl->IsScrollbarLayer());
-
-    // There are some cases where the hit layer may not be correct (e.g. layer
-    // squashing, pointer-events:none layer) because the compositor doesn't
-    // know what parts of the layer (if any) are actually visible to hit
-    // testing. This is fine if we can determine that the scrolling node will
-    // be the same regardless of whether we hit an opaque or transparent (to
-    // hit testing) point of the layer. If the scrolling node may depend on
-    // this, we have to get a hit test from the main thread.
-    if (!IsInitialScrollHitTestReliable(layer_impl, scroller_layer)) {
-      TRACE_EVENT_INSTANT0("cc", "Failed Hit Test", TRACE_EVENT_SCOPE_THREAD);
-      return result;
-    }
-
-    // If we hit a non-fast scrollable region, that means there's some reason we
-    // can't scroll in this region. Primarily, because there's another scroller
-    // there that isn't composited and we don't know about so we'll return
-    // nullptr in that case.
-    if (active_tree_->PointHitsNonFastScrollableRegion(device_viewport_point,
-                                                       *layer_impl)) {
-      return result;
-    }
-  }
-
-  // If we hit a scrollbar layer, get the ScrollNode from its associated
-  // scrolling layer, rather than directly from the scrollbar layer. The latter
-  // would return the parent scroller's ScrollNode.
-  if (scroller_layer->IsScrollbarLayer()) {
-    scroller_layer = active_tree_->LayerByElementId(
-        ToScrollbarLayer(scroller_layer)->scroll_element_id());
-    DCHECK(scroller_layer);
-  } else {
-    // We need to also make sure the scroller itself doesn't have a non-fast
-    // scrolling region in the hit tested area.
-    if (active_tree_->PointHitsNonFastScrollableRegion(device_viewport_point,
-                                                       *scroller_layer))
-      return result;
-  }
-
-  ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree;
-  ScrollNode* scroll_node =
-      scroll_tree.Node(scroller_layer->scroll_tree_index());
-
-  result.scroll_node = GetNodeToScroll(scroll_node);
-  result.hit_test_successful = true;
-  return result;
-}
-
-// Requires falling back to main thread scrolling when it hit tests in scrollbar
-// from touch.
-bool LayerTreeHostImpl::IsTouchDraggingScrollbar(
-    LayerImpl* first_scrolling_layer_or_scrollbar,
-    ui::ScrollInputType type) {
-  return first_scrolling_layer_or_scrollbar &&
-         first_scrolling_layer_or_scrollbar->IsScrollbarLayer() &&
-         type == ui::ScrollInputType::kTouchscreen;
-}
-
-ScrollNode* LayerTreeHostImpl::GetNodeToScroll(ScrollNode* node) const {
-  // Blink has a notion of a "root scroller", which is the scroller in a page
-  // that is considered to host the main content. Typically this will be the
-  // document/LayoutView contents; however, in some situations Blink may choose
-  // a sub-scroller (div, iframe) that should scroll with "viewport" behavior.
-  // The "root scroller" is the node designated as the outer viewport in CC.
-  // See third_party/blink/renderer/core/page/scrolling/README.md for details.
-  //
-  // "Viewport" scrolling ensures generation of overscroll events, top controls
-  // movement, as well as correct multi-viewport panning in pinch-zoom and
-  // other scenarios.  We use the viewport's outer scroll node to represent the
-  // viewport in the scroll chain and apply scroll delta using CC's Viewport
-  // class.
-  //
-  // Scrolling from position: fixed layers will chain directly up to the inner
-  // viewport. Whether that should use the outer viewport (and thus the
-  // Viewport class) to scroll or not depends on the root scroller scenario
-  // because we don't want setting a root scroller to change the scroll chain
-  // order. The |prevent_viewport_scrolling_from_inner| bit is used to
-  // communicate that context.
-  DCHECK(!node->prevent_viewport_scrolling_from_inner ||
-         node->scrolls_inner_viewport);
-
-  if (node->scrolls_inner_viewport &&
-      !node->prevent_viewport_scrolling_from_inner) {
-    DCHECK(OuterViewportScrollNode());
-    return OuterViewportScrollNode();
-  }
-
-  return node;
-}
-
-bool LayerTreeHostImpl::IsInitialScrollHitTestReliable(
-    const LayerImpl* layer_impl,
-    const LayerImpl* first_scrolling_layer_or_scrollbar) const {
-  if (!first_scrolling_layer_or_scrollbar)
-    return true;
-
-  // Hit tests directly on a composited scrollbar are always reliable.
-  if (layer_impl->IsScrollbarLayer()) {
-    DCHECK(layer_impl == first_scrolling_layer_or_scrollbar);
-    return true;
-  }
-
-  ScrollNode* closest_scroll_node = nullptr;
-  auto& scroll_tree = active_tree_->property_trees()->scroll_tree;
-  ScrollNode* scroll_node = scroll_tree.Node(layer_impl->scroll_tree_index());
-  for (; scroll_tree.parent(scroll_node);
-       scroll_node = scroll_tree.parent(scroll_node)) {
-    // TODO(bokan): |scrollable| appears to always be true in LayerList mode.
-    // In non-LayerList, scroll hit tests should always be reliable because we
-    // don't have situations where a layer can be hit testable but pass some
-    // points through (e.g. squashing layers). Perhaps we can remove this
-    // condition?
-    if (scroll_node->scrollable) {
-      closest_scroll_node = GetNodeToScroll(scroll_node);
-      break;
-    }
-  }
-  if (!closest_scroll_node)
-    return false;
-
-  // If |first_scrolling_layer_or_scrollbar| is not a scrollbar, it must be
-  // a scrollabe layer with a scroll node. If this scroll node corresponds to
-  // first scrollable ancestor along the scroll tree for |layer_impl|, the hit
-  // test has not escaped to other areas of the scroll tree and is reliable.
-  if (!first_scrolling_layer_or_scrollbar->IsScrollbarLayer()) {
-    return closest_scroll_node->id ==
-           first_scrolling_layer_or_scrollbar->scroll_tree_index();
-  }
-
-  return false;
-}
-
-gfx::Vector2dF LayerTreeHostImpl::ComputeScrollDelta(
-    const ScrollNode& scroll_node,
-    const gfx::Vector2dF& delta) {
-  ScrollTree& scroll_tree = active_tree()->property_trees()->scroll_tree;
-  float scale_factor = active_tree()->page_scale_factor_for_scroll();
-
-  gfx::Vector2dF adjusted_scroll(delta);
-  adjusted_scroll.Scale(1.f / scale_factor);
-  adjusted_scroll = UserScrollableDelta(scroll_node, adjusted_scroll);
-
-  gfx::ScrollOffset old_offset =
-      scroll_tree.current_scroll_offset(scroll_node.element_id);
-  gfx::ScrollOffset new_offset = scroll_tree.ClampScrollOffsetToLimits(
-      old_offset + gfx::ScrollOffset(adjusted_scroll), scroll_node);
-
-  gfx::ScrollOffset scrolled = new_offset - old_offset;
-  return gfx::Vector2dF(scrolled.x(), scrolled.y());
-}
 
 bool LayerTreeHostImpl::AutoScrollAnimationCreate(const ScrollNode& scroll_node,
                                                   const gfx::Vector2dF& delta,
@@ -4517,392 +3760,6 @@
   return true;
 }
 
-bool LayerTreeHostImpl::CalculateLocalScrollDeltaAndStartPoint(
-    const ScrollNode& scroll_node,
-    const gfx::PointF& viewport_point,
-    const gfx::Vector2dF& viewport_delta,
-    const ScrollTree& scroll_tree,
-    gfx::Vector2dF* out_local_scroll_delta,
-    gfx::PointF* out_local_start_point /*= nullptr*/) {
-  // Layers with non-invertible screen space transforms should not have passed
-  // the scroll hit test in the first place.
-  const gfx::Transform screen_space_transform =
-      scroll_tree.ScreenSpaceTransform(scroll_node.id);
-  DCHECK(screen_space_transform.IsInvertible());
-  gfx::Transform inverse_screen_space_transform(
-      gfx::Transform::kSkipInitialization);
-  bool did_invert =
-      screen_space_transform.GetInverse(&inverse_screen_space_transform);
-  // TODO(shawnsingh): With the advent of impl-side scrolling for non-root
-  // layers, we may need to explicitly handle uninvertible transforms here.
-  DCHECK(did_invert);
-
-  float scale_from_viewport_to_screen_space =
-      active_tree_->device_scale_factor();
-  gfx::PointF screen_space_point =
-      gfx::ScalePoint(viewport_point, scale_from_viewport_to_screen_space);
-
-  gfx::Vector2dF screen_space_delta = viewport_delta;
-  screen_space_delta.Scale(scale_from_viewport_to_screen_space);
-
-  // Project the scroll start and end points to local layer space to find the
-  // scroll delta in layer coordinates.
-  bool start_clipped, end_clipped;
-  gfx::PointF screen_space_end_point = screen_space_point + screen_space_delta;
-  gfx::PointF local_start_point = MathUtil::ProjectPoint(
-      inverse_screen_space_transform, screen_space_point, &start_clipped);
-  gfx::PointF local_end_point = MathUtil::ProjectPoint(
-      inverse_screen_space_transform, screen_space_end_point, &end_clipped);
-  DCHECK(out_local_scroll_delta);
-  *out_local_scroll_delta = local_end_point - local_start_point;
-
-  if (out_local_start_point)
-    *out_local_start_point = local_start_point;
-
-  if (start_clipped || end_clipped)
-    return false;
-
-  return true;
-}
-
-gfx::Vector2dF LayerTreeHostImpl::ScrollNodeWithViewportSpaceDelta(
-    const ScrollNode& scroll_node,
-    const gfx::PointF& viewport_point,
-    const gfx::Vector2dF& viewport_delta,
-    ScrollTree* scroll_tree) {
-  gfx::PointF local_start_point;
-  gfx::Vector2dF local_scroll_delta;
-  if (!CalculateLocalScrollDeltaAndStartPoint(
-          scroll_node, viewport_point, viewport_delta, *scroll_tree,
-          &local_scroll_delta, &local_start_point)) {
-    return gfx::Vector2dF();
-  }
-
-  bool scrolls_outer_viewport = scroll_node.scrolls_outer_viewport;
-  TRACE_EVENT2("cc", "ScrollNodeWithViewportSpaceDelta", "delta_y",
-               local_scroll_delta.y(), "is_outer", scrolls_outer_viewport);
-
-  // Apply the scroll delta.
-  gfx::ScrollOffset previous_offset =
-      scroll_tree->current_scroll_offset(scroll_node.element_id);
-  scroll_tree->ScrollBy(scroll_node, local_scroll_delta, active_tree());
-  gfx::ScrollOffset scrolled =
-      scroll_tree->current_scroll_offset(scroll_node.element_id) -
-      previous_offset;
-
-  TRACE_EVENT_INSTANT1("cc", "ConsumedDelta", TRACE_EVENT_SCOPE_THREAD, "y",
-                       scrolled.y());
-
-  // Get the end point in the layer's content space so we can apply its
-  // ScreenSpaceTransform.
-  gfx::PointF actual_local_end_point =
-      local_start_point + gfx::Vector2dF(scrolled.x(), scrolled.y());
-
-  // Calculate the applied scroll delta in viewport space coordinates.
-  bool end_clipped;
-  const gfx::Transform screen_space_transform =
-      scroll_tree->ScreenSpaceTransform(scroll_node.id);
-  gfx::PointF actual_screen_space_end_point = MathUtil::MapPoint(
-      screen_space_transform, actual_local_end_point, &end_clipped);
-  DCHECK(!end_clipped);
-  if (end_clipped)
-    return gfx::Vector2dF();
-
-  float scale_from_viewport_to_screen_space =
-      active_tree_->device_scale_factor();
-  gfx::PointF actual_viewport_end_point = gfx::ScalePoint(
-      actual_screen_space_end_point, 1.f / scale_from_viewport_to_screen_space);
-  return actual_viewport_end_point - viewport_point;
-}
-
-static gfx::Vector2dF ScrollNodeWithLocalDelta(
-    const ScrollNode& scroll_node,
-    const gfx::Vector2dF& local_delta,
-    float page_scale_factor,
-    LayerTreeImpl* layer_tree_impl) {
-  bool scrolls_outer_viewport = scroll_node.scrolls_outer_viewport;
-  TRACE_EVENT2("cc", "ScrollNodeWithLocalDelta", "delta_y", local_delta.y(),
-               "is_outer", scrolls_outer_viewport);
-
-  ScrollTree& scroll_tree = layer_tree_impl->property_trees()->scroll_tree;
-  gfx::ScrollOffset previous_offset =
-      scroll_tree.current_scroll_offset(scroll_node.element_id);
-  gfx::Vector2dF delta = local_delta;
-  delta.Scale(1.f / page_scale_factor);
-  scroll_tree.ScrollBy(scroll_node, delta, layer_tree_impl);
-  gfx::ScrollOffset scrolled =
-      scroll_tree.current_scroll_offset(scroll_node.element_id) -
-      previous_offset;
-  gfx::Vector2dF consumed_scroll(scrolled.x(), scrolled.y());
-  consumed_scroll.Scale(page_scale_factor);
-  TRACE_EVENT_INSTANT1("cc", "ConsumedDelta", TRACE_EVENT_SCOPE_THREAD, "y",
-                       consumed_scroll.y());
-
-  return consumed_scroll;
-}
-
-// TODO(danakj): Make this into two functions, one with delta, one with
-// viewport_point, no bool required.
-gfx::Vector2dF LayerTreeHostImpl::ScrollSingleNode(
-    const ScrollNode& scroll_node,
-    const gfx::Vector2dF& delta,
-    const gfx::Point& viewport_point,
-    bool is_direct_manipulation,
-    ScrollTree* scroll_tree) {
-  gfx::Vector2dF adjusted_delta = UserScrollableDelta(scroll_node, delta);
-
-  // Events representing direct manipulation of the screen (such as gesture
-  // events) need to be transformed from viewport coordinates to local layer
-  // coordinates so that the scrolling contents exactly follow the user's
-  // finger. In contrast, events not representing direct manipulation of the
-  // screen (such as wheel events) represent a fixed amount of scrolling so we
-  // can just apply them directly, but the page scale factor is applied to the
-  // scroll delta.
-  if (is_direct_manipulation) {
-    // For touch-scroll we need to scale the delta here, as the transform tree
-    // won't know anything about the external page scale factors used by OOPIFs.
-    gfx::Vector2dF scaled_delta(adjusted_delta);
-    scaled_delta.Scale(1 / active_tree()->external_page_scale_factor());
-    return ScrollNodeWithViewportSpaceDelta(
-        scroll_node, gfx::PointF(viewport_point), scaled_delta, scroll_tree);
-  }
-  float scale_factor = active_tree()->page_scale_factor_for_scroll();
-  return ScrollNodeWithLocalDelta(scroll_node, adjusted_delta, scale_factor,
-                                  active_tree());
-}
-
-void LayerTreeHostImpl::ScrollLatchedScroller(ScrollState* scroll_state,
-                                              base::TimeDelta delayed_by) {
-  DCHECK(CurrentlyScrollingNode());
-  DCHECK(scroll_state);
-  DCHECK(latched_scroll_type_.has_value());
-
-  ScrollNode& scroll_node = *CurrentlyScrollingNode();
-  const gfx::Vector2dF delta(scroll_state->delta_x(), scroll_state->delta_y());
-  TRACE_EVENT2("cc", "LayerTreeHostImpl::ScrollLatchedScroller", "delta_x",
-               delta.x(), "delta_y", delta.y());
-  gfx::Vector2dF applied_delta;
-  gfx::Vector2dF delta_applied_to_content;
-  // TODO(tdresser): Use a more rational epsilon. See crbug.com/510550 for
-  // details.
-  const float kEpsilon = 0.1f;
-
-  if (ShouldAnimateScroll(*scroll_state)) {
-    DCHECK(!scroll_state->is_in_inertial_phase());
-
-    if (ElementId id = mutator_host_->ImplOnlyScrollAnimatingElement()) {
-      TRACE_EVENT_INSTANT0("cc", "UpdateExistingAnimation",
-                           TRACE_EVENT_SCOPE_THREAD);
-
-      ScrollTree& scroll_tree = active_tree()->property_trees()->scroll_tree;
-      ScrollNode* animating_scroll_node = scroll_tree.FindNodeFromElementId(id);
-      DCHECK(animating_scroll_node);
-
-      // Usually the CurrentlyScrollingNode will be the currently animating
-      // one. The one exception is the inner viewport. Scrolling the combined
-      // viewport will always set the outer viewport as the currently scrolling
-      // node. However, if an animation is created on the inner viewport we
-      // must use it when updating the animation curve.
-      DCHECK(animating_scroll_node->id == scroll_node.id ||
-             animating_scroll_node->scrolls_inner_viewport);
-
-      bool animation_updated = ScrollAnimationUpdateTarget(
-          *animating_scroll_node, delta, delayed_by);
-
-      if (animation_updated) {
-        // Because we updated the animation target, consume delta so we notify
-        // the SwapPromiseMonitor to tell it that something happened that will
-        // cause a swap in the future.  This will happen within the scope of
-        // the dispatch of a gesture scroll update input event. If we don't
-        // notify during the handling of the input event, the LatencyInfo
-        // associated with the input event will not be added as a swap promise
-        // and we won't get any swap results.
-        applied_delta = delta;
-      } else {
-        TRACE_EVENT_INSTANT0("cc", "Didn't Update Animation",
-                             TRACE_EVENT_SCOPE_THREAD);
-      }
-    } else {
-      TRACE_EVENT_INSTANT0("cc", "CreateNewAnimation",
-                           TRACE_EVENT_SCOPE_THREAD);
-      if (scroll_node.scrolls_outer_viewport) {
-        applied_delta = viewport().ScrollAnimated(delta, delayed_by);
-      } else {
-        applied_delta = ComputeScrollDelta(scroll_node, delta);
-        ScrollAnimationCreate(scroll_node, applied_delta, delayed_by);
-      }
-    }
-
-    // Animated scrolling always applied only to the content (i.e. not to the
-    // browser controls).
-    delta_applied_to_content = delta;
-  } else {
-    gfx::Point viewport_point(scroll_state->position_x(),
-                              scroll_state->position_y());
-    if (viewport().ShouldScroll(scroll_node)) {
-      // |scrolls_outer_viewport| will only ever be false if the scroll chains
-      // up to the viewport without going through the outer viewport scroll
-      // node. This is because we normally terminate the scroll chain at the
-      // outer viewport node.  For example, if we start scrolling from an
-      // element that's not a descendant of the root scroller. In these cases we
-      // want to scroll *only* the inner viewport -- to allow panning while
-      // zoomed -- but still use Viewport::ScrollBy to also move browser
-      // controls if needed.
-      Viewport::ScrollResult result = viewport().ScrollBy(
-          delta, viewport_point, scroll_state->is_direct_manipulation(),
-          latched_scroll_type_ != ui::ScrollInputType::kWheel,
-          scroll_node.scrolls_outer_viewport);
-
-      applied_delta = result.consumed_delta;
-      delta_applied_to_content = result.content_scrolled_delta;
-    } else {
-      applied_delta =
-          ScrollSingleNode(scroll_node, delta, viewport_point,
-                           scroll_state->is_direct_manipulation(),
-                           &active_tree_->property_trees()->scroll_tree);
-    }
-  }
-
-  // If the layer wasn't able to move, try the next one in the hierarchy.
-  bool scrolled = std::abs(applied_delta.x()) > kEpsilon;
-  scrolled = scrolled || std::abs(applied_delta.y()) > kEpsilon;
-  if (!scrolled) {
-    // TODO(bokan): This preserves existing behavior by not allowing tiny
-    // scrolls to produce overscroll but is inconsistent in how delta gets
-    // chained up. We need to clean this up.
-    if (scroll_node.scrolls_outer_viewport)
-      scroll_state->ConsumeDelta(applied_delta.x(), applied_delta.y());
-    return;
-  }
-
-  if (!viewport().ShouldScroll(scroll_node)) {
-    // If the applied delta is within 45 degrees of the input
-    // delta, bail out to make it easier to scroll just one layer
-    // in one direction without affecting any of its parents.
-    float angle_threshold = 45;
-    if (MathUtil::SmallestAngleBetweenVectors(applied_delta, delta) <
-        angle_threshold) {
-      applied_delta = delta;
-    } else {
-      // Allow further movement only on an axis perpendicular to the direction
-      // in which the layer moved.
-      applied_delta = MathUtil::ProjectVector(delta, applied_delta);
-    }
-    delta_applied_to_content = applied_delta;
-  }
-
-  scroll_state->set_caused_scroll(
-      std::abs(delta_applied_to_content.x()) > kEpsilon,
-      std::abs(delta_applied_to_content.y()) > kEpsilon);
-  scroll_state->ConsumeDelta(applied_delta.x(), applied_delta.y());
-}
-
-static bool CanPropagate(ScrollNode* scroll_node, float x, float y) {
-  return (x == 0 || scroll_node->overscroll_behavior.x ==
-                        OverscrollBehavior::kOverscrollBehaviorTypeAuto) &&
-         (y == 0 || scroll_node->overscroll_behavior.y ==
-                        OverscrollBehavior::kOverscrollBehaviorTypeAuto);
-}
-
-ScrollNode* LayerTreeHostImpl::FindNodeToLatch(ScrollState* scroll_state,
-                                               ScrollNode* starting_node,
-                                               ui::ScrollInputType type) {
-  ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree;
-  ScrollNode* scroll_node = nullptr;
-  for (ScrollNode* cur_node = starting_node; cur_node;
-       cur_node = scroll_tree.parent(cur_node)) {
-    if (viewport().ShouldScroll(*cur_node)) {
-      // Don't chain scrolls past a viewport node. Once we reach that, we
-      // should scroll using the appropriate viewport node which may not be
-      // |cur_node|.
-      scroll_node = GetNodeToScroll(cur_node);
-      break;
-    }
-
-    if (!cur_node->scrollable)
-      continue;
-
-    // For UX reasons, autoscrolling should always latch to the top-most
-    // scroller, even if it can't scroll in the initial direction.
-    if (type == ui::ScrollInputType::kAutoscroll ||
-        CanConsumeDelta(*scroll_state, *cur_node)) {
-      scroll_node = cur_node;
-      break;
-    }
-
-    float delta_x = scroll_state->is_beginning() ? scroll_state->delta_x_hint()
-                                                 : scroll_state->delta_x();
-    float delta_y = scroll_state->is_beginning() ? scroll_state->delta_y_hint()
-                                                 : scroll_state->delta_y();
-
-    if (!CanPropagate(cur_node, delta_x, delta_y)) {
-      // If we reach a node with non-auto overscroll-behavior and we still
-      // haven't latched, we must latch to it. Consider a fully scrolled node
-      // with non-auto overscroll-behavior: we are not allowed to further
-      // chain scroll delta passed to it in the current direction but if we
-      // reverse direction we should scroll it so we must be latched to it.
-      scroll_node = cur_node;
-      scroll_state->set_is_scroll_chain_cut(true);
-      break;
-    }
-  }
-
-  return scroll_node;
-}
-
-void LayerTreeHostImpl::DidLatchToScroller(const ScrollState& scroll_state,
-                                           ui::ScrollInputType type) {
-  DCHECK(CurrentlyScrollingNode());
-  deferred_scroll_end_ = false;
-  browser_controls_offset_manager_->ScrollBegin();
-  mutator_host_->ScrollAnimationAbort();
-
-  scroll_affects_scroll_handler_ = active_tree_->have_scroll_event_handlers();
-  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
-  last_latched_scroller_ = CurrentlyScrollingNode()->element_id;
-  latched_scroll_type_ = type;
-  last_scroll_begin_state_ = scroll_state;
-
-  client_->RenewTreePriority();
-  RecordCompositorSlowScrollMetric(type, CC_THREAD);
-
-  UpdateScrollSourceInfo(scroll_state, type);
-}
-
-bool LayerTreeHostImpl::CanConsumeDelta(const ScrollState& scroll_state,
-                                        const ScrollNode& scroll_node) {
-  gfx::Vector2dF delta_to_scroll;
-  if (scroll_state.is_beginning()) {
-    delta_to_scroll = gfx::Vector2dF(scroll_state.delta_x_hint(),
-                                     scroll_state.delta_y_hint());
-  } else {
-    delta_to_scroll =
-        gfx::Vector2dF(scroll_state.delta_x(), scroll_state.delta_y());
-  }
-
-  if (delta_to_scroll == gfx::Vector2dF())
-    return true;
-
-  ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree;
-  if (scroll_state.is_direct_manipulation()) {
-    gfx::Vector2dF local_scroll_delta;
-    if (!CalculateLocalScrollDeltaAndStartPoint(
-            scroll_node,
-            gfx::PointF(scroll_state.position_x(), scroll_state.position_y()),
-            delta_to_scroll, scroll_tree, &local_scroll_delta)) {
-      return false;
-    }
-    delta_to_scroll = local_scroll_delta;
-  } else {
-    delta_to_scroll = ResolveScrollGranularityToPixels(
-        scroll_node, delta_to_scroll, scroll_state.delta_granularity());
-  }
-
-  if (ComputeScrollDelta(scroll_node, delta_to_scroll) != gfx::Vector2dF())
-    return true;
-
-  return false;
-}
 
 void LayerTreeHostImpl::UpdateImageDecodingHints(
     base::flat_map<PaintImage::Id, PaintImage::DecodingMode>
@@ -4917,557 +3774,106 @@
   render_frame_metadata_observer_->BindToCurrentThread();
 }
 
-bool LayerTreeHostImpl::ShouldAnimateScroll(
-    const ScrollState& scroll_state) const {
-  if (!settings_.enable_smooth_scroll)
-    return false;
-
-  bool has_precise_scroll_deltas = scroll_state.delta_granularity() ==
-                                   ui::ScrollGranularity::kScrollByPrecisePixel;
-
-#if defined(OS_MAC)
-  if (has_precise_scroll_deltas)
-    return false;
-
-  // Mac does not smooth scroll wheel events (crbug.com/574283). We allow tests
-  // to force it on.
-  return latched_scroll_type_ == ui::ScrollInputType::kScrollbar
-             ? true
-             : force_smooth_wheel_scrolling_for_testing_;
-#else
-  return !has_precise_scroll_deltas;
-#endif
-}
-
 InputHandlerScrollResult LayerTreeHostImpl::ScrollUpdate(
     ScrollState* scroll_state,
     base::TimeDelta delayed_by) {
-  DCHECK(scroll_state);
+  return input_handler_.ScrollUpdate(scroll_state, delayed_by);
+}
 
-  // The current_native_scrolling_element should only be set for ScrollBegin.
-  DCHECK(!scroll_state->data()->current_native_scrolling_element());
-  TRACE_EVENT2("cc", "LayerTreeHostImpl::ScrollUpdate", "dx",
-               scroll_state->delta_x(), "dy", scroll_state->delta_y());
-
-  if (!CurrentlyScrollingNode())
-    return InputHandlerScrollResult();
-
-  last_scroll_update_state_ = *scroll_state;
-
-  gfx::Vector2dF resolvedScrollDelta = ResolveScrollGranularityToPixels(
-      *CurrentlyScrollingNode(),
-      gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y()),
-      scroll_state->delta_granularity());
-
-  scroll_state->data()->delta_x = resolvedScrollDelta.x();
-  scroll_state->data()->delta_y = resolvedScrollDelta.y();
-  // The decision of whether or not we'll animate a scroll comes down to
-  // whether the granularity is specified in precise pixels or not. Thus we
-  // need to preserve a precise granularity if that's what was specified; all
-  // others are animated and so can be resolved to regular pixels.
-  if (scroll_state->delta_granularity() !=
-      ui::ScrollGranularity::kScrollByPrecisePixel) {
-    scroll_state->data()->delta_granularity =
-        ui::ScrollGranularity::kScrollByPixel;
+void LayerTreeHostImpl::DidScrollContent(bool animated) {
+  client_->RenewTreePriority();
+  if (!animated) {
+    // SetNeedsRedraw is only called in non-animated cases since an animation
+    // won't actually update any scroll offsets until a frame produces a
+    // tick. Scheduling a redraw here before ticking means the draw gets
+    // aborted due to no damage and the swap promises broken so a LatencyInfo
+    // won't be recorded.
+    SetNeedsRedraw();
   }
+}
 
-  scroll_accumulated_this_frame_ +=
-      gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y());
-
-  // Flash the overlay scrollbar even if the scroll delta is 0.
-  if (settings_.scrollbar_flash_after_any_scroll_update) {
-    FlashAllScrollbars(false);
-  } else {
-    ScrollbarAnimationController* animation_controller =
-        ScrollbarAnimationControllerForElementId(
-            CurrentlyScrollingNode()->element_id);
-    if (animation_controller)
-      animation_controller->WillUpdateScroll();
-  }
-
-  float initial_top_controls_offset =
-      browser_controls_offset_manager_->ControlsTopOffset();
-
-  ScrollLatchedScroller(scroll_state, delayed_by);
-
-  bool did_scroll_x = scroll_state->caused_scroll_x();
-  bool did_scroll_y = scroll_state->caused_scroll_y();
-  did_scroll_x_for_scroll_gesture_ |= did_scroll_x;
-  did_scroll_y_for_scroll_gesture_ |= did_scroll_y;
-  bool did_scroll_content = did_scroll_x || did_scroll_y;
-  if (did_scroll_content) {
-    ShowScrollbarsForImplScroll(CurrentlyScrollingNode()->element_id);
-    client_->RenewTreePriority();
-    if (!ShouldAnimateScroll(*scroll_state)) {
-      // SetNeedsRedraw is only called in non-animated cases since an animation
-      // won't actually update any scroll offsets until a frame produces a
-      // tick. Scheduling a redraw here before ticking means the draw gets
-      // aborted due to no damage and the swap promises broken so a LatencyInfo
-      // won't be recorded.
-      SetNeedsRedraw();
-    }
-  } else {
-    overscroll_delta_for_main_thread_ +=
-        gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y());
-  }
-
-  client_->SetNeedsCommitOnImplThread();
-
-  // Scrolling along an axis resets accumulated root overscroll for that axis.
-  if (did_scroll_x)
-    accumulated_root_overscroll_.set_x(0);
-  if (did_scroll_y)
-    accumulated_root_overscroll_.set_y(0);
-
-  gfx::Vector2dF unused_root_delta;
-  if (viewport().ShouldScroll(*CurrentlyScrollingNode())) {
-    unused_root_delta =
-        gfx::Vector2dF(scroll_state->delta_x(), scroll_state->delta_y());
-  }
-
-  // When inner viewport is unscrollable, disable overscrolls.
-  if (auto* inner_viewport_scroll_node = InnerViewportScrollNode()) {
-    unused_root_delta =
-        UserScrollableDelta(*inner_viewport_scroll_node, unused_root_delta);
-  }
-
-  accumulated_root_overscroll_ += unused_root_delta;
-
-  bool did_scroll_top_controls =
-      initial_top_controls_offset !=
-      browser_controls_offset_manager_->ControlsTopOffset();
-
-  InputHandlerScrollResult scroll_result;
-  scroll_result.did_scroll = did_scroll_content || did_scroll_top_controls;
-  scroll_result.did_overscroll_root = !unused_root_delta.IsZero();
-  scroll_result.accumulated_root_overscroll = accumulated_root_overscroll_;
-  scroll_result.unused_scroll_delta = unused_root_delta;
-  scroll_result.overscroll_behavior =
-      scroll_state->is_scroll_chain_cut()
-          ? OverscrollBehavior(OverscrollBehavior::OverscrollBehaviorType::
-                                   kOverscrollBehaviorTypeNone)
-          : active_tree()->overscroll_behavior();
-
-  if (scroll_result.did_scroll) {
-    // Scrolling can change the root scroll offset, so inform the synchronous
-    // input handler.
-    UpdateRootLayerStateForSynchronousInputHandler();
-  }
-
-  scroll_result.current_visual_offset =
-      ScrollOffsetToVector2dF(GetVisualScrollOffset(*CurrentlyScrollingNode()));
-  float scale_factor = active_tree()->page_scale_factor_for_scroll();
-  scroll_result.current_visual_offset.Scale(scale_factor);
-
-  // Run animations which need to respond to updated scroll offset.
-  mutator_host_->TickScrollAnimations(
-      CurrentBeginFrameArgs().frame_time,
-      active_tree_->property_trees()->scroll_tree);
-
-  return scroll_result;
+float LayerTreeHostImpl::DeviceScaleFactor() const {
+  return active_tree_->device_scale_factor();
 }
 
 void LayerTreeHostImpl::RequestUpdateForSynchronousInputHandler() {
-  UpdateRootLayerStateForSynchronousInputHandler();
-}
-
-static gfx::Vector2dF ContentToPhysical(const gfx::Vector2dF& content_delta,
-                                        float page_scale_factor) {
-  gfx::Vector2dF physical_delta = content_delta;
-  physical_delta.Scale(page_scale_factor);
-  return physical_delta;
+  input_handler_.UpdateRootLayerStateForSynchronousInputHandler();
 }
 
 void LayerTreeHostImpl::SetSynchronousInputHandlerRootScrollOffset(
     const gfx::ScrollOffset& root_content_offset) {
-  TRACE_EVENT2(
-      "cc", "LayerTreeHostImpl::SetSynchronousInputHandlerRootScrollOffset",
-      "offset_x", root_content_offset.x(), "offset_y", root_content_offset.y());
-
-  gfx::Vector2dF physical_delta = ContentToPhysical(
-      root_content_offset.DeltaFrom(viewport().TotalScrollOffset()),
-      active_tree()->page_scale_factor_for_scroll());
-
-  bool changed = !viewport()
-                      .ScrollBy(physical_delta,
-                                /*viewport_point=*/gfx::Point(),
-                                /*is_direct_manipulation=*/false,
-                                /*affect_browser_controls=*/false,
-                                /*scroll_outer_viewport=*/true)
-                      .consumed_delta.IsZero();
-  if (!changed)
-    return;
-
-  ShowScrollbarsForImplScroll(OuterViewportScrollNode()->element_id);
-  client_->SetNeedsCommitOnImplThread();
-  // After applying the synchronous input handler's scroll offset, tell it what
-  // we ended up with.
-  UpdateRootLayerStateForSynchronousInputHandler();
-  SetFullViewportDamage();
-  SetNeedsRedraw();
-}
-
-bool LayerTreeHostImpl::SnapAtScrollEnd() {
-  ScrollNode* scroll_node = CurrentlyScrollingNode();
-  if (!scroll_node || !scroll_node->snap_container_data.has_value())
-    return false;
-
-  SnapContainerData& data = scroll_node->snap_container_data.value();
-  gfx::ScrollOffset current_position = GetVisualScrollOffset(*scroll_node);
-
-  // You might think that if a scroll never received a scroll update we could
-  // just drop the snap. However, if the GSB+GSE arrived while we were mid-snap
-  // from a previous gesture, this would leave the scroller at a
-  // non-snap-point.
-  DCHECK(last_scroll_update_state_ || last_scroll_begin_state_);
-  ScrollState& last_scroll_state = last_scroll_update_state_
-                                       ? *last_scroll_update_state_
-                                       : *last_scroll_begin_state_;
-
-  bool imprecise_wheel_scrolling =
-      latched_scroll_type_ == ui::ScrollInputType::kWheel &&
-      last_scroll_state.delta_granularity() !=
-          ui::ScrollGranularity::kScrollByPrecisePixel;
-  gfx::ScrollOffset last_scroll_delta = last_scroll_state.DeltaOrHint();
-
-  std::unique_ptr<SnapSelectionStrategy> strategy;
-
-  if (imprecise_wheel_scrolling && !last_scroll_delta.IsZero()) {
-    // This was an imprecise wheel scroll so use direction snapping.
-    strategy = SnapSelectionStrategy::CreateForDirection(
-        current_position, last_scroll_delta, true);
-  } else {
-    strategy = SnapSelectionStrategy::CreateForEndPosition(
-        current_position, did_scroll_x_for_scroll_gesture_,
-        did_scroll_y_for_scroll_gesture_);
-  }
-
-  gfx::ScrollOffset snap_position;
-  TargetSnapAreaElementIds snap_target_ids;
-  if (!data.FindSnapPosition(*strategy, &snap_position, &snap_target_ids))
-    return false;
-
-  if (viewport().ShouldScroll(*scroll_node)) {
-    // Flash the overlay scrollbar even if the scroll delta is 0.
-    if (settings_.scrollbar_flash_after_any_scroll_update) {
-      FlashAllScrollbars(false);
-    } else {
-      ScrollbarAnimationController* animation_controller =
-          ScrollbarAnimationControllerForElementId(scroll_node->element_id);
-      if (animation_controller)
-        animation_controller->WillUpdateScroll();
-    }
-  }
-
-  gfx::Vector2dF delta =
-      ScrollOffsetToVector2dF(snap_position - current_position);
-  bool did_animate = false;
-  if (scroll_node->scrolls_outer_viewport) {
-    gfx::Vector2dF scaled_delta(delta);
-    scaled_delta.Scale(active_tree()->page_scale_factor_for_scroll());
-    gfx::Vector2dF consumed_delta =
-        viewport().ScrollAnimated(scaled_delta, base::TimeDelta());
-    did_animate = !consumed_delta.IsZero();
-  } else {
-    did_animate = ScrollAnimationCreate(*scroll_node, delta, base::TimeDelta());
-  }
-  DCHECK(!IsAnimatingForSnap());
-  if (did_animate) {
-    // The snap target will be set when the animation is completed.
-    scroll_animating_snap_target_ids_ = snap_target_ids;
-  } else if (data.SetTargetSnapAreaElementIds(snap_target_ids)) {
-    updated_snapped_elements_.insert(scroll_node->element_id);
-    client_->SetNeedsCommitOnImplThread();
-  }
-  return did_animate;
-}
-
-bool LayerTreeHostImpl::IsAnimatingForSnap() const {
-  return scroll_animating_snap_target_ids_ != TargetSnapAreaElementIds();
-}
-
-gfx::ScrollOffset LayerTreeHostImpl::GetVisualScrollOffset(
-    const ScrollNode& scroll_node) const {
-  if (scroll_node.scrolls_outer_viewport)
-    return viewport().TotalScrollOffset();
-  return active_tree()->property_trees()->scroll_tree.current_scroll_offset(
-      scroll_node.element_id);
+  input_handler_.SetSynchronousInputHandlerRootScrollOffset(
+      root_content_offset);
 }
 
 bool LayerTreeHostImpl::GetSnapFlingInfoAndSetAnimatingSnapTarget(
     const gfx::Vector2dF& natural_displacement_in_viewport,
     gfx::Vector2dF* out_initial_position,
     gfx::Vector2dF* out_target_position) {
-  ScrollNode* scroll_node = CurrentlyScrollingNode();
-  if (!scroll_node || !scroll_node->snap_container_data.has_value())
-    return false;
-  const SnapContainerData& data = scroll_node->snap_container_data.value();
-
-  float scale_factor = active_tree()->page_scale_factor_for_scroll();
-  gfx::Vector2dF natural_displacement_in_content =
-      gfx::ScaleVector2d(natural_displacement_in_viewport, 1.f / scale_factor);
-
-  gfx::ScrollOffset current_offset = GetVisualScrollOffset(*scroll_node);
-  *out_initial_position = ScrollOffsetToVector2dF(current_offset);
-
-  // CC side always uses fractional scroll deltas.
-  bool use_fractional_offsets = true;
-  gfx::ScrollOffset snap_offset;
-  TargetSnapAreaElementIds snap_target_ids;
-  std::unique_ptr<SnapSelectionStrategy> strategy =
-      SnapSelectionStrategy::CreateForEndAndDirection(
-          current_offset, gfx::ScrollOffset(natural_displacement_in_content),
-          use_fractional_offsets);
-  if (!data.FindSnapPosition(*strategy, &snap_offset, &snap_target_ids))
-    return false;
-  scroll_animating_snap_target_ids_ = snap_target_ids;
-
-  *out_target_position = ScrollOffsetToVector2dF(snap_offset);
-  out_target_position->Scale(scale_factor);
-  out_initial_position->Scale(scale_factor);
-  return true;
+  return input_handler_.GetSnapFlingInfoAndSetAnimatingSnapTarget(
+      natural_displacement_in_viewport, out_initial_position,
+      out_target_position);
 }
 
 void LayerTreeHostImpl::ScrollEndForSnapFling(bool did_finish) {
-  ScrollNode* scroll_node = CurrentlyScrollingNode();
-  // When a snap fling animation reaches its intended target then we update the
-  // scrolled node's snap targets. This also ensures blink learns about the new
-  // snap targets for this scrolling element.
-  if (did_finish && scroll_node &&
-      scroll_node->snap_container_data.has_value()) {
-    scroll_node->snap_container_data.value().SetTargetSnapAreaElementIds(
-        scroll_animating_snap_target_ids_);
-    updated_snapped_elements_.insert(scroll_node->element_id);
-    client_->SetNeedsCommitOnImplThread();
-  }
-  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
-  ScrollEnd(false /* should_snap */);
-}
-
-void LayerTreeHostImpl::ClearCurrentlyScrollingNode() {
-  TRACE_EVENT0("cc", "LayerTreeHostImpl::ClearCurrentlyScrollingNode");
-  active_tree_->ClearCurrentlyScrollingNode();
-  scroll_affects_scroll_handler_ = false;
-  accumulated_root_overscroll_ = gfx::Vector2dF();
-  did_scroll_x_for_scroll_gesture_ = false;
-  did_scroll_y_for_scroll_gesture_ = false;
-  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
-  latched_scroll_type_.reset();
-  last_scroll_update_state_.reset();
-  last_scroll_begin_state_.reset();
+  input_handler_.ScrollEndForSnapFling(did_finish);
 }
 
 void LayerTreeHostImpl::ScrollEnd(bool should_snap) {
-  scrollbar_controller_->ResetState();
-  if (!CurrentlyScrollingNode())
-    return;
-
-  // Note that if we deferred the scroll end then we should not snap. We will
-  // snap once we deliver the deferred scroll end.
-  if (mutator_host_->ImplOnlyScrollAnimatingElement()) {
-    DCHECK(!deferred_scroll_end_);
-    deferred_scroll_end_ = true;
-    return;
-  }
-
-  if (should_snap && SnapAtScrollEnd()) {
-    deferred_scroll_end_ = true;
-    return;
-  }
-
-  DCHECK(latched_scroll_type_.has_value());
-
-  browser_controls_offset_manager_->ScrollEnd();
-
-  ClearCurrentlyScrollingNode();
-  deferred_scroll_end_ = false;
-  scroll_gesture_did_end_ = true;
-  client_->SetNeedsCommitOnImplThread();
+  input_handler_.ScrollEnd(should_snap);
 }
 
 void LayerTreeHostImpl::RecordScrollBegin(
     ui::ScrollInputType input_type,
     ScrollBeginThreadState scroll_start_state) {
-  auto tracker_type = GetTrackerTypeForScroll(input_type);
-  DCHECK_NE(tracker_type, FrameSequenceTrackerType::kMaxType);
-
-  // The main-thread is the 'scrolling thread' if:
-  //   (1) the scroll is driven by the main thread, or
-  //   (2) the scroll is driven by the compositor, but blocked on the main
-  //       thread.
-  // Otherwise, the compositor-thread is the 'scrolling thread'.
-  // TODO(crbug.com/1060712): We should also count 'main thread' as the
-  // 'scrolling thread' if the layer being scrolled has scroll-event handlers.
-  FrameSequenceMetrics::ThreadType scrolling_thread;
-  switch (scroll_start_state) {
-    case ScrollBeginThreadState::kScrollingOnCompositor:
-      scrolling_thread = FrameSequenceMetrics::ThreadType::kCompositor;
-      break;
-    case ScrollBeginThreadState::kScrollingOnMain:
-    case ScrollBeginThreadState::kScrollingOnCompositorBlockedOnMain:
-      scrolling_thread = FrameSequenceMetrics::ThreadType::kMain;
-      break;
-  }
-  frame_trackers_.StartScrollSequence(tracker_type, scrolling_thread);
+  input_handler_.RecordScrollBegin(input_type, scroll_start_state);
 }
 
 void LayerTreeHostImpl::RecordScrollEnd(ui::ScrollInputType input_type) {
-  frame_trackers_.StopSequence(GetTrackerTypeForScroll(input_type));
+  input_handler_.RecordScrollEnd(input_type);
 }
 
 InputHandlerPointerResult LayerTreeHostImpl::MouseDown(
     const gfx::PointF& viewport_point,
     bool shift_modifier) {
-  ScrollbarAnimationController* animation_controller =
-      ScrollbarAnimationControllerForElementId(
-          scroll_element_id_mouse_currently_over_);
-  if (animation_controller) {
-    animation_controller->DidMouseDown();
-    scroll_element_id_mouse_currently_captured_ =
-        scroll_element_id_mouse_currently_over_;
-  }
-
-  InputHandlerPointerResult result;
-  if (settings().compositor_threaded_scrollbar_scrolling) {
-    result = scrollbar_controller_->HandlePointerDown(viewport_point,
-                                                      shift_modifier);
-  }
-
-  return result;
+  return input_handler_.MouseDown(viewport_point, shift_modifier);
 }
 
 InputHandlerPointerResult LayerTreeHostImpl::MouseUp(
     const gfx::PointF& viewport_point) {
-  if (scroll_element_id_mouse_currently_captured_) {
-    ScrollbarAnimationController* animation_controller =
-        ScrollbarAnimationControllerForElementId(
-            scroll_element_id_mouse_currently_captured_);
-
-    scroll_element_id_mouse_currently_captured_ = ElementId();
-
-    if (animation_controller)
-      animation_controller->DidMouseUp();
-  }
-
-  InputHandlerPointerResult result;
-  if (settings().compositor_threaded_scrollbar_scrolling)
-    result = scrollbar_controller_->HandlePointerUp(viewport_point);
-
-  return result;
+  return input_handler_.MouseUp(viewport_point);
 }
 
 InputHandlerPointerResult LayerTreeHostImpl::MouseMoveAt(
     const gfx::Point& viewport_point) {
-  InputHandlerPointerResult result;
-  if (settings().compositor_threaded_scrollbar_scrolling) {
-    result =
-        scrollbar_controller_->HandlePointerMove(gfx::PointF(viewport_point));
-  }
+  return input_handler_.MouseMoveAt(viewport_point);
+}
 
-  // Early out if there are no animation controllers and avoid the hit test.
-  // This happens on platforms without animated scrollbars.
-  if (scrollbar_animation_controllers_.empty())
-    return result;
-
-  gfx::PointF device_viewport_point = gfx::ScalePoint(
-      gfx::PointF(viewport_point), active_tree_->device_scale_factor());
-
-  ScrollHitTestResult hit_test = HitTestScrollNode(device_viewport_point);
-
-  ScrollNode* scroll_node = hit_test.scroll_node;
-
-  // The hit test can fail in some cases, e.g. we don't know if a region of a
-  // squashed layer has content or is empty.
-  if (!hit_test.hit_test_successful || !scroll_node)
-    return result;
-
-  // Scrollbars for the viewport are registered with the outer viewport layer.
-  if (scroll_node->scrolls_inner_viewport)
-    scroll_node = OuterViewportScrollNode();
-
-  ElementId scroll_element_id = scroll_node->element_id;
-  ScrollbarAnimationController* new_animation_controller =
-      ScrollbarAnimationControllerForElementId(scroll_element_id);
-  if (scroll_element_id != scroll_element_id_mouse_currently_over_) {
-    ScrollbarAnimationController* old_animation_controller =
-        ScrollbarAnimationControllerForElementId(
-            scroll_element_id_mouse_currently_over_);
-    if (old_animation_controller)
-      old_animation_controller->DidMouseLeave();
-
-    scroll_element_id_mouse_currently_over_ = scroll_element_id;
-
-    // Experiment: Enables will flash scrollbar when user move mouse enter a
-    // scrollable area.
-    if (settings_.scrollbar_flash_when_mouse_enter && new_animation_controller)
-      new_animation_controller->DidScrollUpdate();
-  }
-
-  if (!new_animation_controller)
-    return result;
-
-  new_animation_controller->DidMouseMove(device_viewport_point);
-
-  return result;
+bool LayerTreeHostImpl::HasAnimatedScrollbars() const {
+  return !scrollbar_animation_controllers_.empty();
 }
 
 void LayerTreeHostImpl::MouseLeave() {
-  for (auto& pair : scrollbar_animation_controllers_)
-    pair.second->DidMouseLeave();
-  scroll_element_id_mouse_currently_over_ = ElementId();
+  input_handler_.MouseLeave();
 }
 
 ElementId LayerTreeHostImpl::FindFrameElementIdAtPoint(
     const gfx::PointF& viewport_point) {
-  gfx::PointF device_viewport_point = gfx::ScalePoint(
-      gfx::PointF(viewport_point), active_tree_->device_scale_factor());
-  return active_tree_->FindFrameElementIdAtPoint(device_viewport_point);
+  return input_handler_.FindFrameElementIdAtPoint(viewport_point);
 }
 
 void LayerTreeHostImpl::PinchGestureBegin() {
-  pinch_gesture_active_ = true;
-  client_->RenewTreePriority();
-  pinch_gesture_end_should_clear_scrolling_node_ = !CurrentlyScrollingNode();
-
-  TRACE_EVENT_INSTANT1("cc", "SetCurrentlyScrollingNode PinchGestureBegin",
-                       TRACE_EVENT_SCOPE_THREAD, "isNull",
-                       OuterViewportScrollNode() ? false : true);
-  active_tree_->SetCurrentlyScrollingNode(OuterViewportScrollNode());
-  browser_controls_offset_manager_->PinchBegin();
-  frame_trackers_.StartSequence(FrameSequenceTrackerType::kPinchZoom);
+  input_handler_.PinchGestureBegin();
 }
 
 void LayerTreeHostImpl::PinchGestureUpdate(float magnify_delta,
                                            const gfx::Point& anchor) {
-  TRACE_EVENT0("cc", "LayerTreeHostImpl::PinchGestureUpdate");
-  if (!InnerViewportScrollNode())
-    return;
-  has_pinch_zoomed_ = true;
-  viewport().PinchUpdate(magnify_delta, anchor);
-  client_->SetNeedsCommitOnImplThread();
-  SetNeedsRedraw();
-  client_->RenewTreePriority();
-  // Pinching can change the root scroll offset, so inform the synchronous input
-  // handler.
-  UpdateRootLayerStateForSynchronousInputHandler();
+  input_handler_.PinchGestureUpdate(magnify_delta, anchor);
 }
 
 void LayerTreeHostImpl::PinchGestureEnd(const gfx::Point& anchor,
                                         bool snap_to_min) {
-  pinch_gesture_active_ = false;
-  if (pinch_gesture_end_should_clear_scrolling_node_) {
-    pinch_gesture_end_should_clear_scrolling_node_ = false;
-    ClearCurrentlyScrollingNode();
-  }
-  viewport().PinchEnd(anchor, snap_to_min);
-  browser_controls_offset_manager_->PinchEnd();
-  client_->SetNeedsCommitOnImplThread();
-  // When a pinch ends, we may be displaying content cached at incorrect scales,
-  // so updating draw properties and drawing will ensure we are using the right
-  // scales that we want when we're not inside a pinch.
-  active_tree_->set_needs_update_draw_properties();
-  SetNeedsRedraw();
-  frame_trackers_.StopSequence(FrameSequenceTrackerType::kPinchZoom);
+  input_handler_.PinchGestureEnd(anchor, snap_to_min);
 }
 
 void LayerTreeHostImpl::CollectScrollDeltas(ScrollAndScaleSet* scroll_info) {
@@ -5481,8 +3887,7 @@
   active_tree_->property_trees()->scroll_tree.CollectScrollDeltas(
       scroll_info, inner_viewport_scroll_element_id,
       active_tree_->settings().commit_fractional_scroll_deltas,
-      updated_snapped_elements_);
-  updated_snapped_elements_.clear();
+      input_handler_.TakeUpdatedSnappedElements());
 }
 
 void LayerTreeHostImpl::CollectScrollbarUpdates(
@@ -5516,27 +3921,25 @@
   scroll_info->swap_promises.swap(swap_promises_for_main_thread_scroll_update_);
 
   // Record and reset scroll source flags.
-  if (has_scrolled_by_wheel_) {
+  if (input_handler_.TakeHasScrolledByWheelForCommit()) {
     scroll_info->manipulation_info |= kManipulationInfoHasScrolledByWheel;
   }
-  if (has_scrolled_by_touch_) {
+  if (input_handler_.TakeHasScrolledByTouchForCommit()) {
     scroll_info->manipulation_info |= kManipulationInfoHasScrolledByTouch;
   }
-  if (has_scrolled_by_precisiontouchpad_) {
+  if (input_handler_.TakeHasScrolledByPrecisionTouchpadForCommit()) {
     scroll_info->manipulation_info |=
         kManipulationInfoHasScrolledByPrecisionTouchPad;
   }
-  if (has_pinch_zoomed_) {
+  if (input_handler_.TakeHasPinchZoomedForCommit()) {
     scroll_info->manipulation_info |= kManipulationInfoHasPinchZoomed;
   }
 
-  has_scrolled_by_wheel_ = has_scrolled_by_touch_ =
-      has_scrolled_by_precisiontouchpad_ = has_pinch_zoomed_ = false;
-  scroll_info->scroll_gesture_did_end = scroll_gesture_did_end_;
+  scroll_info->scroll_gesture_did_end =
+      input_handler_.TakeScrollGestureDidEndForCommit();
 
   // Record and reset overscroll delta.
-  scroll_info->overscroll_delta = overscroll_delta_for_main_thread_;
-  overscroll_delta_for_main_thread_ = gfx::Vector2dF();
+  scroll_info->overscroll_delta = input_handler_.TakeOverscrollDeltaForCommit();
 
   scroll_info->ongoing_scroll_animation =
       !!mutator_host_->ImplOnlyScrollAnimatingElement();
@@ -5544,9 +3947,10 @@
   // Use the |last_latched_scroller_| rather than the |CurrentlyScrollingNode|
   // since the latter may be cleared by a GSE before we've committed these
   // values to the main thread.
-  scroll_info->scroll_latched_element_id = last_latched_scroller_;
-  if (scroll_gesture_did_end_)
-    last_latched_scroller_ = ElementId();
+  scroll_info->scroll_latched_element_id =
+      input_handler_.GetLastLatchedScroller();
+  if (scroll_info->scroll_gesture_did_end)
+    input_handler_.ClearLastLatchedScroller();
 
   if (browser_controls_manager()) {
     scroll_info->browser_controls_constraint =
@@ -5554,7 +3958,6 @@
             &scroll_info->browser_controls_constraint_changed);
   }
 
-  scroll_gesture_did_end_ = false;
   return scroll_info;
 }
 
@@ -5699,7 +4102,8 @@
 void LayerTreeHostImpl::DidUnregisterScrollbarLayer(
     ElementId scroll_element_id) {
   scrollbar_animation_controllers_.erase(scroll_element_id);
-  scrollbar_controller_->DidUnregisterScrollbar(scroll_element_id);
+  input_handler_.get_scrollbar_controller()->DidUnregisterScrollbar(
+      scroll_element_id);
 }
 
 ScrollbarAnimationController*
@@ -6213,54 +4617,6 @@
     (*it)->OnSetNeedsRedrawOnImpl();
 }
 
-void LayerTreeHostImpl::UpdateRootLayerStateForSynchronousInputHandler() {
-  if (!input_handler_client_)
-    return;
-  input_handler_client_->UpdateRootLayerStateForSynchronousInputHandler(
-      active_tree_->TotalScrollOffset(), active_tree_->TotalMaxScrollOffset(),
-      active_tree_->ScrollableSize(), active_tree_->current_page_scale_factor(),
-      active_tree_->min_page_scale_factor(),
-      active_tree_->max_page_scale_factor());
-}
-
-bool LayerTreeHostImpl::ScrollAnimationUpdateTarget(
-    const ScrollNode& scroll_node,
-    const gfx::Vector2dF& scroll_delta,
-    base::TimeDelta delayed_by) {
-  // TODO(bokan): Remove |scroll_node| as a parameter and just use the value
-  // coming from |mutator_host|.
-  DCHECK_EQ(scroll_node.element_id,
-            mutator_host_->ImplOnlyScrollAnimatingElement());
-
-  float scale_factor = active_tree()->page_scale_factor_for_scroll();
-  gfx::Vector2dF adjusted_delta =
-      gfx::ScaleVector2d(scroll_delta, 1.f / scale_factor);
-  adjusted_delta = UserScrollableDelta(scroll_node, adjusted_delta);
-
-  bool animation_updated = mutator_host_->ImplOnlyScrollAnimationUpdateTarget(
-      adjusted_delta,
-      active_tree_->property_trees()->scroll_tree.MaxScrollOffset(
-          scroll_node.id),
-      CurrentBeginFrameArgs().frame_time, delayed_by);
-  if (animation_updated) {
-    // Because we updated the animation target, notify the SwapPromiseMonitor
-    // to tell it that something happened that will cause a swap in the future.
-    // This will happen within the scope of the dispatch of a gesture scroll
-    // update input event. If we don't notify during the handling of the input
-    // event, the LatencyInfo associated with the input event will not be
-    // added as a swap promise and we won't get any swap results.
-    NotifySwapPromiseMonitorsOfSetNeedsRedraw();
-    events_metrics_manager_.SaveActiveEventMetrics();
-
-    // The animation is no longer targeting a snap position. By clearing the
-    // target, this will ensure that we attempt to resnap at the end of this
-    // animation.
-    scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
-  }
-
-  return animation_updated;
-}
-
 bool LayerTreeHostImpl::IsElementInPropertyTrees(
     ElementId element_id,
     ElementListType list_type) const {
@@ -6400,32 +4756,7 @@
 }
 
 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() {
-  TRACE_EVENT0("cc", "LayerTreeHostImpl::ScrollOffsetAnimationFinished");
-  // ScrollOffsetAnimationFinished is called in two cases:
-  //  1- smooth scrolling animation is over (IsAnimatingForSnap == false).
-  //  2- snap scroll animation is over (IsAnimatingForSnap == true).
-  //
-  //  Only for case (1) we should check and run snap scroll animation if needed.
-  if (!IsAnimatingForSnap() && SnapAtScrollEnd())
-    return;
-
-  // The end of a scroll offset animation means that the scrolling node is at
-  // the target offset.
-  ScrollNode* scroll_node = CurrentlyScrollingNode();
-  if (scroll_node && scroll_node->snap_container_data.has_value()) {
-    scroll_node->snap_container_data.value().SetTargetSnapAreaElementIds(
-        scroll_animating_snap_target_ids_);
-    updated_snapped_elements_.insert(scroll_node->element_id);
-    client_->SetNeedsCommitOnImplThread();
-  }
-  scroll_animating_snap_target_ids_ = TargetSnapAreaElementIds();
-
-  // Call scrollEnd with the deferred scroll end state when the scroll animation
-  // completes after GSE arrival.
-  if (deferred_scroll_end_) {
-    ScrollEnd(/*should_snap=*/false);
-    return;
-  }
+  input_handler_.ScrollOffsetAnimationFinished();
 }
 
 void LayerTreeHostImpl::NotifyAnimationWorkletStateChange(
@@ -6496,19 +4827,6 @@
   }
 }
 
-void LayerTreeHostImpl::UpdateScrollSourceInfo(const ScrollState& scroll_state,
-                                               ui::ScrollInputType type) {
-  if (type == ui::ScrollInputType::kWheel &&
-      scroll_state.delta_granularity() ==
-          ui::ScrollGranularity::kScrollByPrecisePixel) {
-    has_scrolled_by_precisiontouchpad_ = true;
-  } else if (type == ui::ScrollInputType::kWheel) {
-    has_scrolled_by_wheel_ = true;
-  } else if (type == ui::ScrollInputType::kTouchscreen) {
-    has_scrolled_by_touch_ = true;
-  }
-}
-
 void LayerTreeHostImpl::ShowScrollbarsForImplScroll(ElementId element_id) {
   if (settings_.scrollbar_flash_after_any_scroll_update) {
     FlashAllScrollbars(true);
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index 8b6b357d..05450b01 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -29,6 +29,7 @@
 #include "cc/input/input_handler.h"
 #include "cc/input/scrollbar_animation_controller.h"
 #include "cc/input/scrollbar_controller.h"
+#include "cc/input/threaded_input_handler.h"
 #include "cc/layers/layer_collections.h"
 #include "cc/metrics/average_lag_tracking_manager.h"
 #include "cc/metrics/dropped_frame_counter.h"
@@ -276,6 +277,8 @@
 
   LayerTreeHostImpl& operator=(const LayerTreeHostImpl&) = delete;
 
+  ThreadedInputHandler& GetInputHandler();
+
   // InputHandler implementation
   void BindToClient(InputHandlerClient* client) override;
   InputHandler::ScrollStatus ScrollBegin(ScrollState* scroll_state,
@@ -390,6 +393,27 @@
   void SetViewportDamage(const gfx::Rect& damage_rect);
   void SetEnableFrameRateThrottling(bool enable_frame_rate_throttling);
 
+  // Interface for ThreadedInputHandler
+  bool HasAnimatedScrollbars() const;
+  void SetNeedsCommitInputChanges();
+  void DidUpdateScrollAnimationCurve();
+  void AccumulateScrollDeltaForTracing(const gfx::Vector2dF& delta);
+  void DidStartPinchZoom();
+  void DidEndPinchZoom();
+  void DidUpdatePinchZoom();
+  void DidStartScroll();
+  void DidSetRootScrollOffsetForSynchronousInputHandler();
+  FrameSequenceTrackerCollection& frame_trackers() { return frame_trackers_; }
+  ImplThreadPhase GetCompositorThreadPhase() const;
+  std::unordered_map<ElementId,
+                     std::unique_ptr<ScrollbarAnimationController>,
+                     ElementIdHash>&
+  get_scrollbar_animation_controllers() {
+    return scrollbar_animation_controllers_;
+  }
+  void DidScrollContent(bool animated);
+  float DeviceScaleFactor() const;
+
   // Updates registered ElementIds present in |changed_list|. Call this after
   // changing the property trees for the |changed_list| trees.
   void UpdateElements(ElementListType changed_list);
@@ -480,7 +504,7 @@
   void ResetTreesForTesting();
 
   void set_force_smooth_wheel_scrolling_for_testing(bool enabled) {
-    force_smooth_wheel_scrolling_for_testing_ = enabled;
+    input_handler_.set_force_smooth_wheel_scrolling_for_testing(enabled);
   }
 
   size_t SourceAnimationFrameNumberForTesting() const;
@@ -632,29 +656,17 @@
 
   bool scroll_affects_scroll_handler() const {
     return settings_.enable_synchronized_scrolling &&
-           scroll_affects_scroll_handler_;
+           input_handler_.CurrentScrollAffectsScrollHandler();
   }
   void QueueSwapPromiseForMainThreadScrollUpdate(
       std::unique_ptr<SwapPromise> swap_promise);
 
-  // Returns true if there is an active scroll in progress.  "Active" here
-  // means that it's been latched (i.e. we have a CurrentlyScrollingNode()) but
-  // also that some ScrollUpdates have been received and their delta consumed
-  // for scrolling. These can differ significantly e.g. the page allows the
-  // touchstart but preventDefaults all the touchmoves. In that case, we latch
-  // and have a CurrentlyScrollingNode() but will never receive a ScrollUpdate.
-  //
-  // "Precision" means it's a non-animated scroll like a touchscreen or
-  // high-precision touchpad. The latter distinction is important for things
-  // like scheduling decisions which might schedule a wheel and a touch
-  // scrolling differently due to user perception.
+  // See comment in equivalent ThreadedInputHandler method for what this means.
   bool IsActivelyPrecisionScrolling() const;
 
   virtual void SetVisible(bool visible);
   bool visible() const { return visible_; }
 
-  bool IsAnimatingForSnap() const;
-
   void SetNeedsOneBeginImplFrame();
   void SetNeedsRedraw();
 
@@ -684,31 +696,12 @@
 
   MutatorHost* mutator_host() const { return mutator_host_.get(); }
   ScrollbarController* scrollbar_controller_for_testing() const {
-    return scrollbar_controller_.get();
+    return input_handler_.get_scrollbar_controller();
   }
 
   void SetDebugState(const LayerTreeDebugState& new_debug_state);
   const LayerTreeDebugState& debug_state() const { return debug_state_; }
 
-  gfx::Vector2dF accumulated_root_overscroll() const {
-    return accumulated_root_overscroll_;
-  }
-
-  bool pinch_gesture_active() const {
-    return pinch_gesture_active_ || external_pinch_gesture_active_;
-  }
-  // Used to set the pinch gesture active state when the pinch gesture is
-  // handled on another layer tree. In a page with OOPIFs, only the main
-  // frame's layer tree directly handles pinch events. But layer trees for
-  // sub-frames need to know when pinch gestures are active so they can
-  // throttle the re-rastering. This function allows setting this flag on
-  // OOPIF layer trees using information sent (initially) from the main-frame.
-  void set_external_pinch_gesture_active(bool external_pinch_gesture_active) {
-    external_pinch_gesture_active_ = external_pinch_gesture_active;
-    // Only one of the flags should ever be true at any given time.
-    DCHECK(!pinch_gesture_active_ || !external_pinch_gesture_active_);
-  }
-
   void SetTreePriority(TreePriority priority);
   TreePriority GetTreePriority() const;
 
@@ -740,10 +733,6 @@
 
   virtual bool IsUIResourceOpaque(UIResourceId uid) const;
 
-  // This method gets the scroll offset for a regular scroller, or the combined
-  // visual and layout offsets of the viewport.
-  gfx::ScrollOffset GetVisualScrollOffset(const ScrollNode& scroll_node) const;
-
   bool GetSnapFlingInfoAndSetAnimatingSnapTarget(
       const gfx::Vector2dF& natural_displacement_in_viewport,
       gfx::Vector2dF* out_initial_position,
@@ -751,18 +740,6 @@
 
   void ScrollEndForSnapFling(bool did_finish) override;
 
-  // Returns the amount of delta that can be applied to scroll_node, taking
-  // page scale into account.
-  gfx::Vector2dF ComputeScrollDelta(const ScrollNode& scroll_node,
-                                    const gfx::Vector2dF& delta);
-
-  // Resolves a delta in the given granularity for the |scroll_node| into
-  // physical pixels to scroll.
-  gfx::Vector2dF ResolveScrollGranularityToPixels(
-      const ScrollNode& scroll_node,
-      const gfx::Vector2dF& scroll_delta,
-      ui::ScrollGranularity granularity);
-
   void ScheduleMicroBenchmark(std::unique_ptr<MicroBenchmarkImpl> benchmark);
 
   viz::CompositorFrameMetadata MakeCompositorFrameMetadata();
@@ -800,12 +777,6 @@
 
   bool prepare_tiles_needed() const { return tile_priorities_dirty_; }
 
-  gfx::Vector2dF ScrollSingleNode(const ScrollNode& scroll_node,
-                                  const gfx::Vector2dF& delta,
-                                  const gfx::Point& viewport_point,
-                                  bool is_direct_manipulation,
-                                  ScrollTree* scroll_tree);
-
   base::SingleThreadTaskRunner* GetTaskRunner() const {
     DCHECK(task_runner_provider_);
     return task_runner_provider_->HasImplThread()
@@ -813,11 +784,6 @@
                : task_runner_provider_->MainThreadTaskRunner();
   }
 
-  // Return all ScrollNode indices that have an associated layer with a non-fast
-  // region that intersects the point.
-  base::flat_set<int> NonFastScrollableNodes(
-      const gfx::PointF& device_viewport_point) const;
-
   // Returns true if a scroll offset animation is created and false if we scroll
   // by the desired amount without an animation.
   bool ScrollAnimationCreate(const ScrollNode& scroll_node,
@@ -842,9 +808,6 @@
 
   void ClearCaches();
 
-  bool CanConsumeDelta(const ScrollState& scroll_state,
-                       const ScrollNode& scroll_node);
-
   void UpdateImageDecodingHints(
       base::flat_map<PaintImage::Id, PaintImage::DecodingMode>
           decoding_mode_map);
@@ -914,36 +877,6 @@
  private:
   void CollectScrollDeltas(ScrollAndScaleSet* scroll_info);
   void CollectScrollbarUpdates(ScrollAndScaleSet* scroll_info) const;
-
-  // Returns the ScrollNode we should use to scroll, accounting for viewport
-  // scroll chaining rules.
-  ScrollNode* GetNodeToScroll(ScrollNode* node) const;
-
-  // Determines whether the given scroll node can scroll on the compositor
-  // thread or if there are any reasons it must be scrolled on the main thread
-  // or not at all. Note: in general, this is not sufficient to determine if a
-  // scroll can occur on the compositor thread. If hit testing to a scroll
-  // node, the caller must also check whether the hit point intersects a
-  // non-fast-scrolling-region of any ancestor scrolling layers. Can be removed
-  // after scroll unification https://crbug.com/476553.
-  InputHandler::ScrollStatus TryScroll(const ScrollTree& scroll_tree,
-                                       ScrollNode* scroll_node) const;
-
-  // Transforms viewport start point and scroll delta to local start point and
-  // local delta, respectively. If the transformation of either the start or end
-  // point of a scroll is clipped, the function returns false.
-  bool CalculateLocalScrollDeltaAndStartPoint(
-      const ScrollNode& scroll_node,
-      const gfx::PointF& viewport_point,
-      const gfx::Vector2dF& viewport_delta,
-      const ScrollTree& scroll_tree,
-      gfx::Vector2dF* out_local_scroll_delta,
-      gfx::PointF* out_local_start_point = nullptr);
-  gfx::Vector2dF ScrollNodeWithViewportSpaceDelta(
-      const ScrollNode& scroll_node,
-      const gfx::PointF& viewport_point,
-      const gfx::Vector2dF& viewport_delta,
-      ScrollTree* scroll_tree);
   bool ScrollAnimationCreateInternal(const ScrollNode& scroll_node,
                                      const gfx::Vector2dF& delta,
                                      base::TimeDelta delayed_by,
@@ -978,53 +911,6 @@
   bool UpdateGpuRasterizationStatus();
   void UpdateTreeResourcesForGpuRasterizationIfNeeded();
 
-  bool IsTouchDraggingScrollbar(
-      LayerImpl* first_scrolling_layer_or_drawn_scrollbar,
-      ui::ScrollInputType type);
-
-  // |layer| is returned from a regular hit test, and
-  // |first_scrolling_layer_or_drawn_scrollbar| is returned from a hit test
-  // performed only on scrollers and scrollbars. Initial scroll hit testing can
-  // be unreliable if the latter is not the direct scroll ancestor of the
-  // former. In this case, we will fall back to main thread scrolling because
-  // the compositor thread doesn't know which layer to scroll. This happens when
-  // a layer covers a scroller that doesn't scroll the former, or a scroller is
-  // masked by a mask layer for mask image, clip-path, rounded border, etc.
-  //
-  // Note, position: fixed layers use the inner viewport as their ScrollNode
-  // (since they don't scroll with the outer viewport), however, scrolls from
-  // the fixed layer still chain to the outer viewport. It's also possible for a
-  // node to have the inner viewport as its ancestor without going through the
-  // outer viewport; however, it may still scroll using the viewport(). Hence,
-  // this method must use the same scroll chaining logic we use in ApplyScroll.
-  bool IsInitialScrollHitTestReliable(
-      const LayerImpl* layer,
-      const LayerImpl* first_scrolling_layer_or_drawn_scrollbar) const;
-
-  // Given a starting node (determined by hit-test), walks up the scroll tree
-  // looking for the first node that can consume scroll from the given
-  // scroll_state and returns the first such node. If none is found, or if
-  // starting_node is nullptr, returns nullptr;
-  ScrollNode* FindNodeToLatch(ScrollState* scroll_state,
-                              ScrollNode* starting_node,
-                              ui::ScrollInputType type);
-
-  // Called during ScrollBegin once a scroller was successfully latched to
-  // (i.e.  it can and will consume scroll delta on the compositor thread). The
-  // latched scroller is now available in CurrentlyScrollingNode().
-  // TODO(bokan): There's some debate about the name of this method. We should
-  // get consensus on terminology to use and apply it consistently.
-  // https://crrev.com/c/1981336/9/cc/trees/layer_tree_host_impl.cc#4520
-  void DidLatchToScroller(const ScrollState& scroll_state,
-                          ui::ScrollInputType type);
-
-  // Applies the scroll_state to the currently latched scroller. See comment in
-  // InputHandler::ScrollUpdate declaration for the meaning of |delayed_by|.
-  void ScrollLatchedScroller(ScrollState* scroll_state,
-                             base::TimeDelta delayed_by);
-
-  bool ShouldAnimateScroll(const ScrollState& scroll_state) const;
-
   bool AnimatePageScale(base::TimeTicks monotonic_time);
   bool AnimateScrollbars(base::TimeTicks monotonic_time);
   bool AnimateBrowserControls(base::TimeTicks monotonic_time);
@@ -1041,38 +927,6 @@
   // the frame should be drawn.
   DrawResult CalculateRenderPasses(FrameData* frame);
 
-  void ClearCurrentlyScrollingNode();
-
-  // Performs a hit test to determine the ScrollNode to use when scrolling at
-  // |viewport_point|. If no layer is hit, this falls back to the inner
-  // viewport scroll node. Returns:
-  // - If |hit_test_sucessful| is false, hit testing has failed and the
-  //   compositor cannot determine the correct scroll node (e.g. see comments in
-  //   IsInitialScrollHitTestReliable). |scroll_node| is always nullptr in this
-  //   case.
-  // - If |hit_test_successful| is true, returns the ScrollNode to use in
-  //   |scroll_node|. This can be nullptr if no layer was hit and there are no
-  //   viewport nodes (e.g. OOPIF, UI compositor).
-  struct ScrollHitTestResult {
-    ScrollNode* scroll_node;
-    bool hit_test_successful;
-  };
-  ScrollHitTestResult HitTestScrollNode(
-      const gfx::PointF& device_viewport_point) const;
-
-  // Similar to above but includes complicated logic to determine whether the
-  // ScrollNode is able to be scrolled on the compositor or requires main
-  // thread scrolling. If main thread scrolling is required
-  // |scroll_on_main_thread| is set to true and the reason is given in
-  // |main_thread_scrolling_reason| to on of the enum values in
-  // main_thread_scrolling_reason.h. Can be removed after scroll unification
-  // https://crbug.com/476553.
-  ScrollNode* FindScrollNodeForCompositedScrolling(
-      const gfx::PointF& device_viewport_point,
-      LayerImpl* layer_hit_by_point,
-      bool* scroll_on_main_thread,
-      uint32_t* main_thread_scrolling_reason) const;
-
   void StartScrollbarFadeRecursive(LayerImpl* layer);
   void SetManagedMemoryPolicy(const ManagedMemoryPolicy& policy);
 
@@ -1095,29 +949,10 @@
 
   void NotifySwapPromiseMonitorsOfSetNeedsRedraw();
 
-  void UpdateRootLayerStateForSynchronousInputHandler();
-
-  bool ScrollAnimationUpdateTarget(const ScrollNode& scroll_node,
-                                   const gfx::Vector2dF& scroll_delta,
-                                   base::TimeDelta delayed_by);
-
-  // Creates an animation curve and returns true if we need to update the
-  // scroll position to a snap point. Otherwise returns false.
-  bool SnapAtScrollEnd();
-
+ private:
   void SetContextVisibility(bool is_visible);
   void ImageDecodeFinished(int request_id, bool decode_succeeded);
 
-  // This function keeps track of sources of scrolls that are handled in the
-  // compositor side. The information gets shared by the main thread as part of
-  // the begin_main_frame_state. Finally Use counters are updated in the main
-  // thread side to keep track of the frequency of scrolling with different
-  // sources per page load. TODO(crbug.com/691886): Use GRC API to plumb the
-  // scroll source info for Use Counters.
-  void UpdateScrollSourceInfo(const ScrollState& scroll_state,
-                              ui::ScrollInputType type);
-
-  bool IsScrolledBy(LayerImpl* child, ScrollNode* ancestor);
   void ShowScrollbarsForImplScroll(ElementId element_id);
 
   // Copy any opacity values already in the active tree to the pending
@@ -1140,6 +975,8 @@
   void LogAverageLagEvents(uint32_t frame_token,
                            const viz::FrameTimingDetails& details);
 
+  ThreadedInputHandler input_handler_;
+
   const LayerTreeSettings settings_;
 
   // This is set to true only if:
@@ -1205,35 +1042,14 @@
   // by the next sync from the main thread.
   std::unique_ptr<LayerTreeImpl> recycle_tree_;
 
-  InputHandlerClient* input_handler_client_ = nullptr;
-
-  // This is used to tell the scheduler there are active scroll handlers on the
-  // page so we should prioritize latency during a scroll to try to keep
-  // scroll-linked effects up to data.
-  // TODO(bokan): This is quite old and scheduling has become much more
-  // sophisticated since so it's not clear how much value it's still providing.
-  bool scroll_affects_scroll_handler_ = false;
-
-  ElementId scroll_element_id_mouse_currently_over_;
-  ElementId scroll_element_id_mouse_currently_captured_;
-
   // Tracks, for debugging purposes, the amount of scroll received (not
   // necessarily applied) in this compositor frame. This will be reset each
   // time a CompositorFrame is generated.
   gfx::Vector2dF scroll_accumulated_this_frame_;
 
-  // Tracks the last scroll update/begin state received. Used to infer the most
-  // recent scroll type and direction.
-  base::Optional<ScrollState> last_scroll_begin_state_;
-  base::Optional<ScrollState> last_scroll_update_state_;
-
   std::vector<std::unique_ptr<SwapPromise>>
       swap_promises_for_main_thread_scroll_update_;
 
-  // An object to implement the ScrollElasticityHelper interface and
-  // hold all state related to elasticity. May be NULL if never requested.
-  std::unique_ptr<ScrollElasticityHelper> scroll_elasticity_helper_;
-
   bool tile_priorities_dirty_ = false;
 
   LayerTreeDebugState debug_state_;
@@ -1242,30 +1058,6 @@
 
   TileManager tile_manager_;
 
-  gfx::Vector2dF accumulated_root_overscroll_;
-
-  // Unconsumed scroll delta sent to the main thread for firing overscroll DOM
-  // events. Resets after each commit.
-  gfx::Vector2dF overscroll_delta_for_main_thread_;
-
-  // True iff some of the delta has been consumed for the current scroll
-  // sequence on the specific axis.
-  bool did_scroll_x_for_scroll_gesture_;
-  bool did_scroll_y_for_scroll_gesture_;
-
-  // This value is used to allow the compositor to throttle re-rastering during
-  // pinch gestures, when the page scale factor may be changing frequently. It
-  // is set in one of two ways:
-  // i) In a layer tree serving the root of the frame/compositor tree, it is
-  // directly set during processing of GesturePinch events on the impl thread
-  // (only the root layer tree has access to these).
-  // ii) In a layer tree serving a sub-frame in the frame/compositor tree, it
-  // is set from the main thread during the commit process, using information
-  // sent from the root layer tree via IPC messaging.
-  bool pinch_gesture_active_ = false;
-  bool external_pinch_gesture_active_ = false;
-  bool pinch_gesture_end_should_clear_scrolling_node_ = false;
-
   std::unique_ptr<BrowserControlsOffsetManager>
       browser_controls_offset_manager_;
 
@@ -1334,29 +1126,11 @@
   std::unique_ptr<PendingTreeRasterDurationHistogramTimer>
       pending_tree_raster_duration_timer_;
 
-  // If a scroll snap is being animated, then the value of this will be the
-  // element id(s) of the target(s). Otherwise, the ids will be invalid.
-  // At the end of a scroll animation, the target should be set as the scroll
-  // node's snap target.
-  TargetSnapAreaElementIds scroll_animating_snap_target_ids_;
-
-  // A set of elements that scroll-snapped to a new target since the last
-  // begin main frame. The snap target ids of these elements will be sent to
-  // the main thread in the next begin main frame.
-  base::flat_set<ElementId> updated_snapped_elements_;
-
   // These completion states to be transfered to the main thread when we
   // begin main frame. The pair represents a request id and the completion (ie
   // success) state.
   std::vector<std::pair<int, bool>> completed_image_decode_requests_;
 
-  // These are used to transfer usage of different types of scrolling to the
-  // main thread.
-  bool has_scrolled_by_wheel_ = false;
-  bool has_scrolled_by_touch_ = false;
-  bool has_scrolled_by_precisiontouchpad_ = false;
-  bool has_pinch_zoomed_ = false;
-
   ImplThreadPhase impl_thread_phase_ = ImplThreadPhase::IDLE;
 
   ImageAnimationController image_animation_controller_;
@@ -1386,37 +1160,8 @@
 
   const PaintImage::GeneratorClientId paint_image_generator_client_id_;
 
-  // Manages composited scrollbar hit testing.
-  std::unique_ptr<ScrollbarController> scrollbar_controller_;
-
   FrameSequenceTrackerCollection frame_trackers_;
 
-  // Set to true when a scroll gesture being handled on the compositor has
-  // ended. i.e. When a GSE has arrived and any ongoing scroll animation has
-  // ended.
-  bool scroll_gesture_did_end_;
-
-  // Set in ScrollBegin and outlives the currently scrolling node so it can be
-  // used to send the scrollend and overscroll DOM events from the main thread
-  // when scrolling occurs on the compositor thread. This value is cleared at
-  // the first commit after a GSE.
-  ElementId last_latched_scroller_;
-
-  // The source device type that started the scroll gesture. Only set between a
-  // ScrollBegin and ScrollEnd.
-  base::Optional<ui::ScrollInputType> latched_scroll_type_;
-
-  // Scroll animation can finish either before or after GSE arrival.
-  // deferred_scroll_end_ is set when the GSE has arrvied before scroll
-  // animation completion. ScrollEnd will get called once the animation is
-  // over.
-  bool deferred_scroll_end_ = false;
-
-  // TODO(bokan): Mac doesn't yet have smooth scrolling for wheel; however, to
-  // allow consistency in tests we use this bit to override that decision.
-  // https://crbug.com/574283.
-  bool force_smooth_wheel_scrolling_for_testing_ = false;
-
   // PaintWorklet painting is controlled from the LayerTreeHostImpl, dispatched
   // to the worklet thread via |paint_worklet_painter_|.
   std::unique_ptr<PaintWorkletLayerPainter> paint_worklet_painter_;
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 025bc3c6..146cfb8 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -951,26 +951,26 @@
 
 TEST_P(ScrollUnifiedLayerTreeHostImplTest, LocalAndExternalPinchState) {
   // PinchGestureBegin/End update pinch_gesture_active() properly.
-  EXPECT_FALSE(host_impl_->pinch_gesture_active());
+  EXPECT_FALSE(host_impl_->GetInputHandler().pinch_gesture_active());
   host_impl_->PinchGestureBegin();
-  EXPECT_TRUE(host_impl_->pinch_gesture_active());
+  EXPECT_TRUE(host_impl_->GetInputHandler().pinch_gesture_active());
   host_impl_->PinchGestureEnd(gfx::Point(), false /* snap_to_min */);
-  EXPECT_FALSE(host_impl_->pinch_gesture_active());
+  EXPECT_FALSE(host_impl_->GetInputHandler().pinch_gesture_active());
 
   // set_external_pinch_gesture_active updates pinch_gesture_active() properly.
-  host_impl_->set_external_pinch_gesture_active(true);
-  EXPECT_TRUE(host_impl_->pinch_gesture_active());
-  host_impl_->set_external_pinch_gesture_active(false);
-  EXPECT_FALSE(host_impl_->pinch_gesture_active());
+  host_impl_->GetInputHandler().set_external_pinch_gesture_active(true);
+  EXPECT_TRUE(host_impl_->GetInputHandler().pinch_gesture_active());
+  host_impl_->GetInputHandler().set_external_pinch_gesture_active(false);
+  EXPECT_FALSE(host_impl_->GetInputHandler().pinch_gesture_active());
 
   // Clearing external_pinch_gesture_active doesn't affect
   // pinch_gesture_active() if it was set by PinchGestureBegin().
   host_impl_->PinchGestureBegin();
-  EXPECT_TRUE(host_impl_->pinch_gesture_active());
-  host_impl_->set_external_pinch_gesture_active(false);
-  EXPECT_TRUE(host_impl_->pinch_gesture_active());
+  EXPECT_TRUE(host_impl_->GetInputHandler().pinch_gesture_active());
+  host_impl_->GetInputHandler().set_external_pinch_gesture_active(false);
+  EXPECT_TRUE(host_impl_->GetInputHandler().pinch_gesture_active());
   host_impl_->PinchGestureEnd(gfx::Point(), false /* snap_to_min */);
-  EXPECT_FALSE(host_impl_->pinch_gesture_active());
+  EXPECT_FALSE(host_impl_->GetInputHandler().pinch_gesture_active());
 }
 
 TEST_P(ScrollUnifiedLayerTreeHostImplTest, NotifyIfCanDrawChanged) {
@@ -2442,7 +2442,7 @@
   host_impl_->ScrollEnd(true);
 
   // Snap target should not be set until the end of the animation.
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2454,7 +2454,7 @@
   BeginImplFrameAndAnimate(
       begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
 
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), CurrentScrollOffset(overflow));
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId()),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
@@ -2487,7 +2487,7 @@
   host_impl_->ScrollEnd(true);
 
   // Snap target should not be set until the end of the animation.
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2499,7 +2499,7 @@
   BeginImplFrameAndAnimate(
       begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
 
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 50), CurrentScrollOffset(overflow));
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(), ElementId(10)),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
@@ -2531,7 +2531,7 @@
   host_impl_->ScrollEnd(true);
 
   // Snap target should not be set until the end of the animation.
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2543,7 +2543,7 @@
   BeginImplFrameAndAnimate(
       begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
 
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50), CurrentScrollOffset(overflow));
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId(10)),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
@@ -2597,7 +2597,7 @@
   // Animating for the wheel scroll.
   BeginImplFrameAndAnimate(begin_frame_args,
                            start_time + base::TimeDelta::FromMilliseconds(50));
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   gfx::ScrollOffset current_offset = CurrentScrollOffset(overflow);
   EXPECT_LT(0, current_offset.x());
   EXPECT_GT(20, current_offset.x());
@@ -2611,7 +2611,7 @@
       begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
 
   // The snap target should not be set until the end of the animation.
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2619,7 +2619,7 @@
   BeginImplFrameAndAnimate(
       begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1500));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50), CurrentScrollOffset(overflow));
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId(10)),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 }
@@ -2641,7 +2641,7 @@
   host_impl_->ScrollUpdate(
       UpdateState(pointer_position, y_delta, ui::ScrollInputType::kWheel)
           .get());
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -2653,7 +2653,7 @@
   // Finish smooth wheel scroll animation which starts a snap animation.
   BeginImplFrameAndAnimate(begin_frame_args,
                            start_time + base::TimeDelta::FromMilliseconds(100));
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2666,20 +2666,20 @@
   // animation.
   host_impl_->ScrollUpdate(
       AnimatedUpdateState(gfx::Point(10, 10), gfx::Vector2dF(0, -10)).get());
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   // Finish the smooth scroll animation for wheel.
   BeginImplFrameAndAnimate(begin_frame_args,
                            start_time + base::TimeDelta::FromMilliseconds(150));
 
   // At the end of the previous scroll animation, a new animation for the
   // snapping should have started.
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
 
   // Finish the snap animation.
   BeginImplFrameAndAnimate(
       begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
 
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   // At the end of snap animation we should have updated the
   // TargetSnapAreaElementIds.
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(), ElementId(10)),
@@ -2704,7 +2704,7 @@
   host_impl_->ScrollUpdate(
       UpdateState(pointer_position, x_delta, ui::ScrollInputType::kWheel)
           .get());
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -2716,7 +2716,7 @@
   // Animating for the snap.
   BeginImplFrameAndAnimate(begin_frame_args,
                            start_time + base::TimeDelta::FromMilliseconds(100));
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2734,7 +2734,7 @@
       ScrollThread::SCROLL_ON_IMPL_THREAD,
       host_impl_->ScrollBegin(begin_state.get(), ui::ScrollInputType::kWheel)
           .thread);
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2769,14 +2769,14 @@
   host_impl_->ScrollUpdate(
       UpdateState(pointer_position, x_delta, ui::ScrollInputType::kWheel)
           .get());
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
   host_impl_->ScrollEnd(true);
 
   // No animation is created, but the snap target should be updated.
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId()),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
@@ -2785,13 +2785,13 @@
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
 
   // We are already at a snap target so we should not animate for snap.
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
 
   // Verify that we are not actually animating by running one frame and ensuring
   // scroll offset has not changed.
   BeginImplFrameAndAnimate(begin_frame_args,
                            start_time + base::TimeDelta::FromMilliseconds(100));
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), CurrentScrollOffset(overflow));
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId()),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
@@ -2824,7 +2824,7 @@
   gfx::Vector2dF initial_offset, target_offset;
   EXPECT_TRUE(host_impl_->GetSnapFlingInfoAndSetAnimatingSnapTarget(
       gfx::Vector2dF(10, 10), &initial_offset, &target_offset));
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(4, 4), initial_offset);
   EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), target_offset);
   // Snap targets shouldn't be set until the fling animation is complete.
@@ -2832,7 +2832,7 @@
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
   host_impl_->ScrollEndForSnapFling(true /* did_finish */);
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId(10)),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 }
@@ -2864,7 +2864,7 @@
   gfx::Vector2dF initial_offset, target_offset;
   EXPECT_TRUE(host_impl_->GetSnapFlingInfoAndSetAnimatingSnapTarget(
       gfx::Vector2dF(10, 10), &initial_offset, &target_offset));
-  EXPECT_TRUE(host_impl_->IsAnimatingForSnap());
+  EXPECT_TRUE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(4, 4), initial_offset);
   EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), target_offset);
   // Snap targets shouldn't be set until the fling animation is complete.
@@ -2873,7 +2873,7 @@
 
   // The snap targets should not be set if the snap fling did not finish.
   host_impl_->ScrollEndForSnapFling(false /* did_finish */);
-  EXPECT_FALSE(host_impl_->IsAnimatingForSnap());
+  EXPECT_FALSE(host_impl_->GetInputHandler().IsAnimatingForSnap());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 }
@@ -9218,7 +9218,9 @@
 
   host_impl_->active_tree()->PushPageScaleFromMainThread(1, 0.5f, 4);
   DrawFrame();
-  EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   // In-bounds scrolling does not affect overscroll.
   EXPECT_EQ(ScrollThread::SCROLL_ON_IMPL_THREAD,
@@ -9235,7 +9237,9 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_FALSE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   // Overscroll events are reflected immediately.
   scroll_result =
@@ -9245,9 +9249,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, 10), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, 10), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, 10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   // In-bounds scrolling resets accumulated overscroll for the scrolled axes.
   scroll_result =
@@ -9257,9 +9264,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_FALSE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, 0), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, 0),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   scroll_result =
       host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, -10),
@@ -9268,9 +9278,12 @@
   EXPECT_FALSE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, -10), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, -10), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, -10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   scroll_result =
       host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(10, 0),
@@ -9279,9 +9292,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_FALSE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, 0), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, -10), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, -10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   scroll_result =
       host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(-15, 0),
@@ -9290,9 +9306,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(-5, 0), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(-5, -10), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(-5, -10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   scroll_result =
       host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, 60),
@@ -9301,9 +9320,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, 10), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(-5, 10), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(-5, 10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   scroll_result =
       host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(10, -60),
@@ -9312,9 +9334,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, -10), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, -10), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, -10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   // Overscroll accumulates within the scope of ScrollBegin/ScrollEnd as long
   // as no scroll occurs.
@@ -9325,9 +9350,12 @@
   EXPECT_FALSE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, -20), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, -30), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, -30),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   scroll_result =
       host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, -20),
@@ -9336,9 +9364,12 @@
   EXPECT_FALSE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, -20), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, -50), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, -50),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   // Overscroll resets on valid scroll.
   scroll_result =
@@ -9348,9 +9379,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_FALSE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, 0), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, 0), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, 0),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   scroll_result =
       host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, -20),
@@ -9359,9 +9393,12 @@
   EXPECT_TRUE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
   EXPECT_EQ(gfx::Vector2dF(0, -10), scroll_result.unused_scroll_delta);
-  EXPECT_EQ(gfx::Vector2dF(0, -10), host_impl_->accumulated_root_overscroll());
-  EXPECT_EQ(scroll_result.accumulated_root_overscroll,
-            host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, -10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
+  EXPECT_EQ(
+      scroll_result.accumulated_root_overscroll,
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   host_impl_->ScrollEnd();
 }
@@ -9410,7 +9447,8 @@
               grand_child_layer->scroll_tree_index());
     EXPECT_TRUE(scroll_result.did_scroll);
     EXPECT_FALSE(scroll_result.did_overscroll_root);
-    EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+    EXPECT_EQ(gfx::Vector2dF(), host_impl_->GetInputHandler()
+                                    .accumulated_root_overscroll_for_testing());
     host_impl_->ScrollEnd();
 
     // The next time we scroll we should only scroll the parent, but overscroll
@@ -9425,7 +9463,8 @@
                   .thread);
     EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id,
               child_layer->scroll_tree_index());
-    EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+    EXPECT_EQ(gfx::Vector2dF(), host_impl_->GetInputHandler()
+                                    .accumulated_root_overscroll_for_testing());
     host_impl_->ScrollEnd();
 
     EXPECT_EQ(ScrollThread::SCROLL_ON_IMPL_THREAD,
@@ -9443,7 +9482,8 @@
     EXPECT_FALSE(scroll_result.did_overscroll_root);
     EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id,
               child_layer->scroll_tree_index());
-    EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+    EXPECT_EQ(gfx::Vector2dF(), host_impl_->GetInputHandler()
+                                    .accumulated_root_overscroll_for_testing());
     host_impl_->ScrollEnd();
 
     // After scrolling the parent, another scroll on the opposite direction
@@ -9466,7 +9506,8 @@
     EXPECT_FALSE(scroll_result.did_overscroll_root);
     EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id,
               grand_child_layer->scroll_tree_index());
-    EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+    EXPECT_EQ(gfx::Vector2dF(), host_impl_->GetInputHandler()
+                                    .accumulated_root_overscroll_for_testing());
     host_impl_->ScrollEnd();
   }
 }
@@ -9492,19 +9533,24 @@
             .get());
     EXPECT_TRUE(scroll_result.did_scroll);
     EXPECT_FALSE(scroll_result.did_overscroll_root);
-    EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+    EXPECT_EQ(gfx::Vector2dF(), host_impl_->GetInputHandler()
+                                    .accumulated_root_overscroll_for_testing());
     scroll_result = host_impl_->ScrollUpdate(
         UpdateState(gfx::Point(), scroll_delta, ui::ScrollInputType::kWheel)
             .get());
     EXPECT_TRUE(scroll_result.did_scroll);
     EXPECT_TRUE(scroll_result.did_overscroll_root);
-    EXPECT_EQ(gfx::Vector2dF(0, 6), host_impl_->accumulated_root_overscroll());
+    EXPECT_EQ(gfx::Vector2dF(0, 6),
+              host_impl_->GetInputHandler()
+                  .accumulated_root_overscroll_for_testing());
     scroll_result = host_impl_->ScrollUpdate(
         UpdateState(gfx::Point(), scroll_delta, ui::ScrollInputType::kWheel)
             .get());
     EXPECT_FALSE(scroll_result.did_scroll);
     EXPECT_TRUE(scroll_result.did_overscroll_root);
-    EXPECT_EQ(gfx::Vector2dF(0, 14), host_impl_->accumulated_root_overscroll());
+    EXPECT_EQ(gfx::Vector2dF(0, 14),
+              host_impl_->GetInputHandler()
+                  .accumulated_root_overscroll_for_testing());
     host_impl_->ScrollEnd();
   }
 }
@@ -9519,7 +9565,9 @@
 
   host_impl_->active_tree()->PushPageScaleFromMainThread(1, 0.5f, 4);
   DrawFrame();
-  EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 
   // Even though the layer can't scroll the overscroll still happens.
   EXPECT_EQ(ScrollThread::SCROLL_ON_IMPL_THREAD,
@@ -9535,7 +9583,9 @@
                                    .get());
   EXPECT_FALSE(scroll_result.did_scroll);
   EXPECT_TRUE(scroll_result.did_overscroll_root);
-  EXPECT_EQ(gfx::Vector2dF(0, 10), host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(0, 10),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 }
 
 TEST_P(ScrollUnifiedLayerTreeHostImplTest, NoOverscrollWhenNotAtEdge) {
@@ -9563,7 +9613,9 @@
     EXPECT_TRUE(scroll_result.did_scroll);
     EXPECT_FALSE(scroll_result.did_overscroll_root);
     EXPECT_EQ(gfx::Vector2dF().ToString(),
-              host_impl_->accumulated_root_overscroll().ToString());
+              host_impl_->GetInputHandler()
+                  .accumulated_root_overscroll_for_testing()
+                  .ToString());
     scroll_result = host_impl_->ScrollUpdate(
         UpdateState(gfx::Point(), gfx::Vector2dF(0, -2.30f),
                     ui::ScrollInputType::kWheel)
@@ -9571,7 +9623,9 @@
     EXPECT_TRUE(scroll_result.did_scroll);
     EXPECT_FALSE(scroll_result.did_overscroll_root);
     EXPECT_EQ(gfx::Vector2dF().ToString(),
-              host_impl_->accumulated_root_overscroll().ToString());
+              host_impl_->GetInputHandler()
+                  .accumulated_root_overscroll_for_testing()
+                  .ToString());
     host_impl_->ScrollEnd();
     // unusedrootDelta should be subtracted from applied delta so that
     // unwanted glow effect calls are not called.
@@ -9590,7 +9644,8 @@
     EXPECT_TRUE(scroll_result.did_scroll);
     EXPECT_TRUE(scroll_result.did_overscroll_root);
     EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0.000000f, 17.699997f),
-                        host_impl_->accumulated_root_overscroll());
+                        host_impl_->GetInputHandler()
+                            .accumulated_root_overscroll_for_testing());
 
     scroll_result = host_impl_->ScrollUpdate(
         UpdateState(gfx::Point(), gfx::Vector2dF(0.02f, -0.01f),
@@ -9599,7 +9654,8 @@
     EXPECT_FALSE(scroll_result.did_scroll);
     EXPECT_FALSE(scroll_result.did_overscroll_root);
     EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0.000000f, 17.699997f),
-                        host_impl_->accumulated_root_overscroll());
+                        host_impl_->GetInputHandler()
+                            .accumulated_root_overscroll_for_testing());
     host_impl_->ScrollEnd();
     // TestCase to check  kEpsilon, which prevents minute values to trigger
     // gloweffect without reaching edge.
@@ -9618,7 +9674,9 @@
     EXPECT_FALSE(scroll_result.did_scroll);
     EXPECT_FALSE(scroll_result.did_overscroll_root);
     EXPECT_EQ(gfx::Vector2dF().ToString(),
-              host_impl_->accumulated_root_overscroll().ToString());
+              host_impl_->GetInputHandler()
+                  .accumulated_root_overscroll_for_testing()
+                  .ToString());
     host_impl_->ScrollEnd();
   }
 }
@@ -12351,7 +12409,9 @@
   EXPECT_EQ(gfx::Vector2dF(0, 2 * offset).ToString(),
             CurrentScrollOffset(scroll_layer).ToString());
   EXPECT_EQ(gfx::Vector2dF(0, overscrollamount).ToString(),
-            host_impl_->accumulated_root_overscroll().ToString());
+            host_impl_->GetInputHandler()
+                .accumulated_root_overscroll_for_testing()
+                .ToString());
 
   EXPECT_TRUE(host_impl_
                   ->ScrollUpdate(UpdateState(gfx::Point(),
@@ -12593,7 +12653,9 @@
 
   // When inner viewport is unscrollable, a fling gives zero overscroll.
   EXPECT_FALSE(scroll_result.did_overscroll_root);
-  EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
+  EXPECT_EQ(
+      gfx::Vector2dF(),
+      host_impl_->GetInputHandler().accumulated_root_overscroll_for_testing());
 }
 
 class LayerTreeHostImplWithImplicitLimitsTest : public LayerTreeHostImplTest {
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index 524e79f..eed3a76 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -8514,7 +8514,7 @@
   }
 
   void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
-    if (!impl->pinch_gesture_active())
+    if (!impl->GetInputHandler().pinch_gesture_active())
       return;
 
     // We just drew a frame, stats for it should have been recorded. End the
diff --git a/cc/trees/layer_tree_host_unittest_scroll.cc b/cc/trees/layer_tree_host_unittest_scroll.cc
index 3eaf72e..8002aad 100644
--- a/cc/trees/layer_tree_host_unittest_scroll.cc
+++ b/cc/trees/layer_tree_host_unittest_scroll.cc
@@ -1270,10 +1270,11 @@
 
       DoGestureScroll(host_impl, scroller_, impl_thread_scroll_);
 
-      EXPECT_TRUE(host_impl->IsAnimatingForSnap());
+      EXPECT_TRUE(host_impl->GetInputHandler().IsAnimatingForSnap());
       EXPECT_VECTOR_EQ(impl_thread_scroll_, ScrollDelta(scroller_impl));
     } else {
-      snap_animation_finished_ = !host_impl->IsAnimatingForSnap();
+      snap_animation_finished_ =
+          !host_impl->GetInputHandler().IsAnimatingForSnap();
     }
   }
 
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index d1ced35d..123377b 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -1666,7 +1666,7 @@
 }
 
 bool LayerTreeImpl::PinchGestureActive() const {
-  return host_impl_->pinch_gesture_active();
+  return host_impl_->GetInputHandler().pinch_gesture_active();
 }
 
 const viz::BeginFrameArgs& LayerTreeImpl::CurrentBeginFrameArgs() const {
diff --git a/cc/trees/proxy_impl.cc b/cc/trees/proxy_impl.cc
index bf27a858..a24241b 100644
--- a/cc/trees/proxy_impl.cc
+++ b/cc/trees/proxy_impl.cc
@@ -8,6 +8,8 @@
 
 #include <algorithm>
 #include <string>
+#include <utility>
+#include <vector>
 
 #include "base/auto_reset.h"
 #include "base/bind.h"
@@ -389,7 +391,7 @@
 void ProxyImpl::RenewTreePriority() {
   DCHECK(IsImplThread());
   const bool user_interaction_in_progress =
-      host_impl_->pinch_gesture_active() ||
+      host_impl_->GetInputHandler().pinch_gesture_active() ||
       host_impl_->page_scale_animation_active() ||
       host_impl_->IsActivelyPrecisionScrolling();
 
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb
index bc9ad87..83aca56 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Inligting ontbreek</translation>
 <translation id="1932278019417741381">Om jou te help om take te voltooi, sal Google die URL'e en inhoud ontvang van werwe waarop jy Assistent gebruik, asook inligting wat jy deur Assistent indien. Hierdie inligting kan in jou Google-rekening geberg word. Jy kan Assistent in Chrome-instellings afskakel. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Verminder waarde</translation>
+<translation id="2581111578809745440">Handel betaling vinnig af deur net 'n paar keer te tik</translation>
 <translation id="3018033505440165876">Probeer Google Assistent\nin Chrome</translation>
 <translation id="4130750466177569591">Ek stem in</translation>
 <translation id="4437727785356380473">Google Assistent in Chrome is toegemaak.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Google Assistent in Chrome kan vir jou handelinge op webwerwe voltooi</translation>
 <translation id="6973932557599545801">Jammer dat ek nie kan help nie; gaan asseblief op jou eie voort.</translation>
 <translation id="7135664311366978968">Koop fliekkaartjies\ndeur net 'n paar keer te tik</translation>
+<translation id="7455021968451468078">Laat Google Assistent jou help om jou wagwoord te verander</translation>
 <translation id="7658239707568436148">Kanselleer</translation>
 <translation id="7953600313732929223">Probeer stemaksies\nop webwerwe</translation>
 <translation id="8253702004019660079">Google Assistent in Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
index cfeb993..87065cc 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">መረጃ ይጎድላል</translation>
 <translation id="1932278019417741381">ተግባራትን እንዲያጠናቅቁ ለማገዝ Google ረዳትን የሚጠቀሙባቸው የጣቢያዎች ዩአርኤሎች እና ይዘቶችና እንዲሁም በረዳት በኩል የሚያስገቡት መረጃን ይቀበላል። ይህ መረጃ በGoogle መለያዎ ላይ ሊከማች ይችላል። ረዳትን በChrome ቅንብሮች ላይ ማጥፋት ይችላሉ። <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">እሴትን ይቀንሱ</translation>
+<translation id="2581111578809745440">በጥቂት መታ ማድረጎች ብቻ\nፈጣን ተመዝግቦ መውጣት</translation>
 <translation id="3018033505440165876">በChrome ውስጥ\n Google ረዳትን ይሞክሩ</translation>
 <translation id="4130750466177569591">እስማማለሁ</translation>
 <translation id="4437727785356380473">Google ረዳት በChrome ውስጥ ተዘግቷል።</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">በChrome ውስጥ Google ረዳት በመላ ድር ጣቢያዎች ላይ ለእርስዎ እርምጃዎችን ማጠናቀቅ ይችላል</translation>
 <translation id="6973932557599545801">ከእንግዲህ ላግዝ አልችልም፣ እባክዎ በራስዎ ይቀጥሉ።</translation>
 <translation id="7135664311366978968">በጥቂት መታ ማድረጎች ብቻ\nየፊልም ቲኬቶችን ይግዙ</translation>
+<translation id="7455021968451468078">Google ረዳት የይለፍ ቃልዎን\nእንዲቀይሩ ያግዘዎት</translation>
 <translation id="7658239707568436148">ይቅር</translation>
 <translation id="7953600313732929223">በድር ጣቢያዎች ላይ\nየድምፅ እርምጃዎችን ይሞክሩ</translation>
 <translation id="8253702004019660079">በChrome ውስጥ Google ረዳት።</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb
index 68f29d94..d35a5a6 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb
@@ -5,7 +5,7 @@
 <translation id="1699570257714336246">Podaci nedostaju</translation>
 <translation id="1932278019417741381">Radi lakšeg završavanja zadataka, Google će primati URL-ove i sadržaj web lokacija na kojima koristite Asistenta, kao i informacije koje pošaljete putem Asistenta. Ove informacije se mogu pohraniti na vaš Google račun. Možete isključiti Asistenta u postavkama Chromea. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Smanji vrijednost</translation>
-<translation id="2581111578809745440">Brza odjava\nu samo nekoliko dodira</translation>
+<translation id="2581111578809745440">Brzo plaćanje\nu svega nekoliko dodira</translation>
 <translation id="3018033505440165876">Isprobajte Google Asistenta\nna Chromeu</translation>
 <translation id="4130750466177569591">Slažem se</translation>
 <translation id="4437727785356380473">Google Asistent u Chromeu je zatvoren.</translation>
@@ -19,7 +19,7 @@
 <translation id="6785872064505734160">Google Asistent u Chromeu može za vas završavati radnje na svim web lokacijama</translation>
 <translation id="6973932557599545801">Nažalost, ne mogu vam pomoći. Nastavite sami.</translation>
 <translation id="7135664311366978968">Kupite karte za kino\nu svega nekoliko dodira</translation>
-<translation id="7455021968451468078">Neka vam Google asistent pomogne promijeniti zaporku</translation>
+<translation id="7455021968451468078">Dozvolite Google Asistentu da vam pomogne\nda promijenite lozinku</translation>
 <translation id="7658239707568436148">Otkaži</translation>
 <translation id="7953600313732929223">Isprobajte glasovne aktivnosti\nna web lokacijama</translation>
 <translation id="8253702004019660079">Google Asistent u Chromeu.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
index d444c6a..a603234b 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Falta informació</translation>
 <translation id="1932278019417741381">Per ajudar-te a dur a terme tasques, Google rebrà els URL i el contingut dels llocs web en què facis servir l'Assistent, així com la informació que enviïs amb l'Assistent. Pot ser que aquesta informació s'emmagatzemi al teu Compte de Google. Pots desactivar l'Assistent a la configuració de Chrome. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Disminueix el valor</translation>
+<translation id="2581111578809745440">Tramitació ràpida de la compra\namb només uns quants tocs</translation>
 <translation id="3018033505440165876">Prova l'Assistent de Google\na Chrome</translation>
 <translation id="4130750466177569591">Accepto</translation>
 <translation id="4437727785356380473">L'Assistent de Google a Chrome s'ha tancat.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">L'Assistent de Google a Chrome pot dur a terme accions per tu en llocs web</translation>
 <translation id="6973932557599545801">Em sap greu, però no et puc ajudar. Continua pel teu compte.</translation>
 <translation id="7135664311366978968">Compra entrades de cinema\namb només uns quants tocs</translation>
+<translation id="7455021968451468078">Permet que l'Assistent de Google t'ajudi\na canviar la contrasenya</translation>
 <translation id="7658239707568436148">Cancel·la</translation>
 <translation id="7953600313732929223">Prova les accions de veu\nals llocs web</translation>
 <translation id="8253702004019660079">Assistent de Google a Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
index a64ff02..f1b29c99 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Der mangler oplysninger</translation>
 <translation id="1932278019417741381">For at hjælpe dig med at udføre opgaver modtager Google webadresser for og indhold på websites, hvor du bruger Assistent, samt oplysninger du indsender via Assistent. Disse oplysninger gemmes muligvis på din Google-konto. Du kan deaktivere Assistent i indstillingerne for Chrome. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Sænk værdien</translation>
+<translation id="2581111578809745440">Hurtig betaling\nmed nogle få tryk</translation>
 <translation id="3018033505440165876">Prøv Google Assistent\ni Chrome</translation>
 <translation id="4130750466177569591">Jeg accepterer</translation>
 <translation id="4437727785356380473">Google Assistent i Chrome er lukket.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Google Assistent i Chrome kan udføre handlinger for dig på websites</translation>
 <translation id="6973932557599545801">Jeg kan desværre ikke hjælpe. Fortsæt på egen hånd.</translation>
 <translation id="7135664311366978968">Køb biografbilletter\nmed nogle få tryk</translation>
+<translation id="7455021968451468078">Lad Google Assistent hjælpe dig\nmed at skifte adgangskode</translation>
 <translation id="7658239707568436148">Annuller</translation>
 <translation id="7953600313732929223">Prøv stemmekommandoer\npå websites</translation>
 <translation id="8253702004019660079">Google Assistent i Chrome</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb
index 763e4fb..b9e955e 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">اطلاعات از دست می‌رود</translation>
 <translation id="1932278019417741381">‏برای کمک به انجام کارها، Google نشانی‌های وب و محتوای سایت‌هایی را که در آن‌ها از «دستیار» استفاده می‌کنید، و همچنین اطلاعاتی را که ازطریق «دستیار» ارسال می‌کنید دریافت خواهد کرد. ممکن است این اطلاعات در «حساب Google» شما ذخیره شود. می‌توانید «دستیار» را در «تنظیمات Chrome» خاموش کنید. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">کاهش مقدار</translation>
+<translation id="2581111578809745440">‏فقط با چند ضربه\nسریع تسویه‌حساب کنید</translation>
 <translation id="3018033505440165876">‏«دستیار Google» را در‏\n‏Chrome امتحان کنید</translation>
 <translation id="4130750466177569591">موافقم</translation>
 <translation id="4437727785356380473">‏«دستیار Google» در Chrome بسته شد.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">‏«دستیار Google» در Chrome می‌تواند کنش‌هایی را در وب‌سایت‌ها برایتان انجام دهد</translation>
 <translation id="6973932557599545801">متأسفم، نمی‌توانم کمک کنم، لطفاً خودتان ادامه دهید.</translation>
 <translation id="7135664311366978968">‏فقط با چند ضربه\nبلیط سینما بخرید</translation>
+<translation id="7455021968451468078">‏به «دستیار Google» اجازه دهید در\nتغییر گذرواژه به شما کمک کند</translation>
 <translation id="7658239707568436148">لغو</translation>
 <translation id="7953600313732929223">‏از کنش‌های گفتاری در‏\nوب‌سایت‌ها استفاده کنید</translation>
 <translation id="8253702004019660079">‏«دستیار Google» در Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gl.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gl.xtb
index 6f59cae..5c9fd81 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gl.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gl.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Falta información</translation>
 <translation id="1932278019417741381">Para axudarche a completar tarefas, Google recibirá os URL e os contidos dos sitios nos que uses o Asistente, ademais da información que envíes a través del. Esta información pode almacenarse na túa Conta de Google. Podes desactivar o Asistente de Google na configuración de Chrome. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Diminuír o valor</translation>
+<translation id="2581111578809745440">Paga rápido\ncon só uns toques</translation>
 <translation id="3018033505440165876">Proba o Asistente de Google\nen Chrome</translation>
 <translation id="4130750466177569591">Acepto</translation>
 <translation id="4437727785356380473">O Asistente de Google en Chrome está pechado.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">O Asistente de Google en Chrome pode completar accións por ti nos sitios web</translation>
 <translation id="6973932557599545801">Síntoo, non podo axudar. Continúa sen asistencia.</translation>
 <translation id="7135664311366978968">Compra entradas de cine\ncon só uns toques</translation>
+<translation id="7455021968451468078">Permite que o Asistente de Google che axude\na cambiar o contrasinal</translation>
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="7953600313732929223">Proba as accións mediante voz\nen sitios web</translation>
 <translation id="8253702004019660079">Asistente de Google en Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
index f34ef48d..93f94c5 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Hiányzó információ</translation>
 <translation id="1932278019417741381">Annak érdekében, hogy segíteni tudjon a feladatok elvégzésében, a Google megkapja azoknak a webhelyeknek az URL-jeit és tartalmait, amelyeken Ön használta Segédjét, valamint megkapja a Segéden keresztül elküldött információkat. Ezek az információk megmaradhatnak az Ön Google-fiókjában. A Segédet a Chrome beállításai között kapcsolhatja ki. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" />.</translation>
 <translation id="2203046366315513658">Érték csökkentése</translation>
+<translation id="2581111578809745440">Gyors fizetés\ncsupán néhány koppintással</translation>
 <translation id="3018033505440165876">Próbálja ki a Google Segédet\na Chrome-ban</translation>
 <translation id="4130750466177569591">Elfogadom</translation>
 <translation id="4437727785356380473">A Google Segéd be van zárva a Chrome-ban.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">A „Google Segéd a Chrome-ban” elvégezhet bizonyos műveleteket Önnek a különböző webhelyeken</translation>
 <translation id="6973932557599545801">Sajnos nem tudok többet segíteni. Kérjük, folytassa egyedül.</translation>
 <translation id="7135664311366978968">Mozijegyek\ncsupán néhány koppintással</translation>
+<translation id="7455021968451468078">A Google Segéd segíthet\na jelszó módosításában</translation>
 <translation id="7658239707568436148">Mégse</translation>
 <translation id="7953600313732929223">Használjon hangműveleteket\na webhelyeken</translation>
 <translation id="8253702004019660079">Google Segéd a Chrome-ban.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb
index 96d010b..83760d2 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Upplýsingar vantar</translation>
 <translation id="1932278019417741381">Google fær vefslóðir og innihald vefsvæða þar sem þú notar hjálparann, auk upplýsinga sem þú sendir með hjálparanum, til að hjálpa þér að ljúka við verkefni. Þessar upplýsingar gætu verið vistaðar á Google reikningnum þínum. Þú getur slökkt á hjálparanum í stillingum Chrome. <ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Minnka gildi</translation>
+<translation id="2581111578809745440">Hraðafgreiðsla\nmeð nokkrum smellum</translation>
 <translation id="3018033505440165876">Prófaðu Google hjálpara\ní Chrome</translation>
 <translation id="4130750466177569591">Ég samþykki</translation>
 <translation id="4437727785356380473">Google hjálpara í Chrome lokað.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Google hjálparinn í Chrome getur lokið aðgerðum á ýmsum vefsíðum fyrir þig</translation>
 <translation id="6973932557599545801">Ég get ekki aðstoðað meira, haltu áfram upp á eigin spýtur.</translation>
 <translation id="7135664311366978968">Kauptu bíómiða\ní örfáum skrefum</translation>
+<translation id="7455021968451468078">Leyfðu Google hjálparanum að aðstoða þig við að\nskipta um aðgangsorð</translation>
 <translation id="7658239707568436148">Hætta við</translation>
 <translation id="7953600313732929223">Prófa raddaðgerðir\ná vefsvæðum</translation>
 <translation id="8253702004019660079">Google hjálpari í Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb
index 43f73d2f..b05faab 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">ಮಾಹಿತಿ ಕಾಣೆಯಾಗಿದೆ</translation>
 <translation id="1932278019417741381">ಕಾರ್ಯಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದಕ್ಕೆ ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು, ನೀವು ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಬಳಸಿದ ಸೈಟ್‌ಗಳ URL ಗಳು ಮತ್ತು ವಿಷಯಗಳು ಹಾಗೂ ಅಸಿಸ್ಟೆಂಟ್ ಮೂಲಕ ನೀವು ಸಲ್ಲಿಸಿದ ಮಾಹಿತಿಯನ್ನು Google ಸ್ವೀಕರಿಸುತ್ತದೆ. ಈ ಮಾಹಿತಿಯನ್ನು Google ಖಾತೆಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಿರಬಹುದು. ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಆಫ್ ಮಾಡಬಹುದು. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">ಮೌಲ್ಯವನ್ನು ಕಡಿಮೆ ಮಾಡಿ</translation>
+<translation id="2581111578809745440">ಕೆಲವೇ ಟ್ಯಾಪ್‌ಗಳಲ್ಲಿ\nವೇಗವಾದ ಚೆಕ್‌ಔಟ್</translation>
 <translation id="3018033505440165876">Chrome ನಲ್ಲಿ\nGoogle Assistant ಬಳಸಿ ನೋಡಿ</translation>
 <translation id="4130750466177569591">ನಾನು ಒಪ್ಪುತ್ತೇನೆ</translation>
 <translation id="4437727785356380473">Chrome ನಲ್ಲಿ Google ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಮುಚ್ಚಲಾಗಿದೆ.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Chrome ನಲ್ಲಿರುವ Google Assistant, ನಿಮಗಾಗಿ ವೆಬ್‌ಸೈಟ್‌ಗಳಾದ್ಯಂತದ ಕ್ರಿಯೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಬಲ್ಲದು</translation>
 <translation id="6973932557599545801">ಕ್ಷಮಿಸಿ, ನನ್ನಿಂದ ಸಹಾಯ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ, ನಿಮ್ಮ ವಿವೇಚನೆಗೆ ತಕ್ಕಂತೆ ಮುಂದುವರಿಸಿ.</translation>
 <translation id="7135664311366978968">ಕೆಲವೇ ಟ್ಯಾಪ್‌ಗಳ ಮೂಲಕ\nಚಲನಚಿತ್ರ ಟಿಕೆಟ್‌ಗಳನ್ನು ಖರೀದಿಸಿ</translation>
+<translation id="7455021968451468078">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸುವುದಕ್ಕಾಗಿ\nನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು Google Assistant ಗೆ ಅನುಮತಿ ನೀಡಿ</translation>
 <translation id="7658239707568436148">ರದ್ದುಮಾಡಿ</translation>
 <translation id="7953600313732929223">ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ\nಧ್ವನಿ ಕ್ರಿಯೆಗಳನ್ನು ಬಳಸಿ ನೋಡಿ</translation>
 <translation id="8253702004019660079">Chrome ನಲ್ಲಿ Google ಅಸಿಸ್ಟೆಂಟ್.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
index 4223519..e94cf977 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Trūksta informacijos</translation>
 <translation id="1932278019417741381">Kad padėtų atlikti užduotis, „Google“ gaus svetainių, kuriose naudojate Padėjėją, URL ir turinį bei informaciją, kurią pateikiate naudodami Padėjėją. Ši informacija gali būti saugoma jūsų „Google“ paskyroje. Padėjėją galite išjungti „Chrome“ nustatymuose. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Sumažinti vertę</translation>
+<translation id="2581111578809745440">Spartus atsiskaitymas\nvos keliais palietimais</translation>
 <translation id="3018033505440165876">Išbandykite „Google“ padėjėją naršyklėje „Chrome“</translation>
 <translation id="4130750466177569591">Sutinku</translation>
 <translation id="4437727785356380473">Programa „Google Assistant“ sistemoje „Chrome“ uždaryta.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">„Google“ padėjėjas naršyklėje „Chrome“ gali atlikti veiksmus svetainėse už jus</translation>
 <translation id="6973932557599545801">Deja, negaliu padėti, tolesnius veiksmus atlikite patys.</translation>
 <translation id="7135664311366978968">Įsigykite bilietus į kiną vos keliais palietimais</translation>
+<translation id="7455021968451468078">Leiskite „Google“ padėjėjui padėti jums\npakeisti slaptažodį</translation>
 <translation id="7658239707568436148">Atšaukti</translation>
 <translation id="7953600313732929223">Išbandykite veiksmus balsu svetainėse</translation>
 <translation id="8253702004019660079">„Google Assistant“ sistemoje „Chrome“.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
index 783cf90..b1326e73 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Trūkst informācijas</translation>
 <translation id="1932278019417741381">Lai palīdzētu jums paveikt uzdevumus, Google saņems to vietņu vietrāžus URL un saturu, kurās izmantojat Asistentu, kā arī informāciju, ko iesniedzat, izmantojot Asistentu. Šī informācija var tikt glabāta jūsu Google kontā. Varat izslēgt Asistentu Chrome iestatījumos. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation>
 <translation id="2203046366315513658">Samazināt vērtību</translation>
+<translation id="2581111578809745440">Ātra norēķināšanās,\nveicot tikai dažus pieskārienus</translation>
 <translation id="3018033505440165876">Izmēģiniet Google asistentu\npārlūkā Chrome</translation>
 <translation id="4130750466177569591">Piekrītu</translation>
 <translation id="4437727785356380473">Google asistents pārlūkprogrammā Chrome ir aizvērts.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Google asistents pārlūkprogrammā Chrome var veikt darbības vietnēs jūsu vārdā.</translation>
 <translation id="6973932557599545801">Diemžēl nevaru palīdzēt. Lūdzu, turpiniet patstāvīgi.</translation>
 <translation id="7135664311366978968">Pērciet kino biļetes,\nveicot tikai dažus pieskārienus</translation>
+<translation id="7455021968451468078">Atļaujiet Google asistentam\npalīdzēt nomainīt paroli</translation>
 <translation id="7658239707568436148">Atcelt</translation>
 <translation id="7953600313732929223">Izmēģiniet balss komandas\ntīmekļa vietnēs</translation>
 <translation id="8253702004019660079">Google asistents pārlūkprogrammā Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb
index 2a3aa143..158e345 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Недостасува информација</translation>
 <translation id="1932278019417741381">За да ви помогне да завршувате задачи, Google ќе ги добива URL-адресите и содржините на сајтовите на кои го користите „Помошникот“, како и податоците што ги испраќате преку „Помошникот“. Податоциве може да се зачуваат на вашата сметка на Google. Може да го исклучите „Помошникот“ во поставките за Chrome. <ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Намалете ја вредноста</translation>
+<translation id="2581111578809745440">Брза наплата\nсо само неколку допири</translation>
 <translation id="3018033505440165876">Испробајте го „Помошникот на Google“\nво Chrome</translation>
 <translation id="4130750466177569591">Се согласувам</translation>
 <translation id="4437727785356380473">„Помошникот на Google“ во Chrome е затворен.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">„Помошникот на Google“ во Chrome може да извршува дејства за вас на веб-сајтовите</translation>
 <translation id="6973932557599545801">Извинете што не можам да ви помогнам, продолжете сами.</translation>
 <translation id="7135664311366978968">Купувајте билети за кино\nсо само неколку допири</translation>
+<translation id="7455021968451468078">Дозволете „Помошникот на Google“ да ви помогне\nда ја промените лозинката</translation>
 <translation id="7658239707568436148">Откажи</translation>
 <translation id="7953600313732929223">Испробајте гласовни активности\nна веб-сајтови</translation>
 <translation id="8253702004019660079">„Помошникот на Google“ во Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb
index caca086..1447321e 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">വിവരങ്ങൾ സമ്പൂർണ്ണമല്ല</translation>
 <translation id="1932278019417741381">ടാസ്‌ക്കുകൾ പൂർത്തിയാക്കാൻ നിങ്ങളെ സഹായിക്കുന്നതിനായി, നിങ്ങൾ അസിസ്‌റ്റന്റ് ഉപയോഗിക്കുന്ന സൈറ്റുകളുടെ URL-കളും അവയിലെ ഉള്ളടക്കവും അസിസ്‌റ്റന്റിലൂടെ നിങ്ങൾ സമർപ്പിക്കുന്ന വിവരങ്ങളും Google-ന് ലഭിക്കും. ഈ വിവരങ്ങൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംഭരിച്ചേക്കാം. നിങ്ങൾക്ക് Chrome ക്രമീകരണത്തിൽ അസിസ്‌റ്റന്റ് ഓഫാക്കാം. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">മൂല്യം കുറയ്ക്കുക</translation>
+<translation id="2581111578809745440">ഏതാനും ടാപ്പുകളിലൂടെ\niവേഗത്തിലുള്ള ചെക്ക് ഔട്ട് ചെയ്യുക</translation>
 <translation id="3018033505440165876">Chrome-ൽ Google Assistant\nപരീക്ഷിക്കുക</translation>
 <translation id="4130750466177569591">ഞാന്‍ അംഗീകരിക്കുന്നു</translation>
 <translation id="4437727785356380473">Chrome-ലെ Google അസിസ്‌റ്റൻ്റ് അടച്ചു.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Chrome-ലെ Google Assistant-ന് വെബ്‌സൈറ്റുകളിലുടനീളം നിങ്ങൾക്കായി പ്രവർത്തനങ്ങൾ പൂർത്തിയാക്കാനാവും</translation>
 <translation id="6973932557599545801">ക്ഷമിക്കണം, എനിക്ക് സഹായിക്കാൻ കഴിയില്ല, സ്വയം പൂരിപ്പിക്കുക.</translation>
 <translation id="7135664311366978968">ഏതാനും ടാപ്പുകളിലൂടെ\nസിനിമാ ടിക്കറ്റുകൾ വാങ്ങൂ</translation>
+<translation id="7455021968451468078">നിങ്ങളുടെ പാസ്‍വേഡ് മാറ്റാൻ സഹായിക്കുന്നതിന്\nGoogle Assistant-നെ അനുവദിക്കൂ</translation>
 <translation id="7658239707568436148">റദ്ദാക്കൂ</translation>
 <translation id="7953600313732929223">വെബ്സൈറ്റുകളിൽ\nവോയ്‌സ് പ്രവർത്തനങ്ങൾ പരീക്ഷിക്കുക</translation>
 <translation id="8253702004019660079">Chrome-ലെ Google അസിസ്‌റ്റൻ്റ്.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb
index 362fe47..4a6ef8a 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">माहिती नाही आहे</translation>
 <translation id="1932278019417741381">टास्क पूर्ण करण्यात तुम्हाला मदत व्हावी म्हणून Google ला तुम्ही Assistant वापरून सबमिट करता त्या माहितीच्या समावेशासह तुम्ही Assistant वापरता त्या साइटचा आशय आणि URL मिळतील. ही माहिती कदाचित तुमच्या Google खात्यामध्ये स्टोअर केली जाऊ शकते. तुम्ही Chrome सेटिंग्जमध्ये Assistant बंद करू शकता. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">मूल्य कमी करा</translation>
+<translation id="2581111578809745440">फक्त काही टॅपमध्ये\nझटपट चेकआउट करा</translation>
 <translation id="3018033505440165876">Chrome मध्ये\n Google Assistant वापरून पहा</translation>
 <translation id="4130750466177569591">मला मान्य आहे</translation>
 <translation id="4437727785356380473">Chrome मधील Google असिस्टंट बंद आहे.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Chrome मधील Google Assistant तुमच्यासाठी सर्व वेबसाइटवर कृती पूर्ण करू शकतो</translation>
 <translation id="6973932557599545801">सॉरी मला मदत करता आली नाही कृपया तुम्ही स्वतःच सुरू ठेवा.</translation>
 <translation id="7135664311366978968">फक्त काही टॅपमध्ये\nचित्रपट तिकिटे खरेदी करा</translation>
+<translation id="7455021968451468078">Google Assistant ला तुमचा पासवर्ड बदलण्यात तुम्हाला मदत करू द्या</translation>
 <translation id="7658239707568436148">रद्द करा</translation>
 <translation id="7953600313732929223">वेबसाइटवर\n व्हॉइस क्रिया करून पहा</translation>
 <translation id="8253702004019660079">Chrome मधील Google असिस्टंट.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb
index 714b9ef..bf47ce4 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">အချက်အလက်များ လိုအပ်နေသည်</translation>
 <translation id="1932278019417741381">သင်၏လုပ်ဆောင်စရာများ ပြီးမြောက်အောင် ကူညီရန် Assistant ကို အသုံးပြုထားသည့် ဝဘ်ဆိုက်များ၏ URL နှင့် အကြောင်းအရာများအပြင် Assistant ဖြင့် ပေးပို့ထားသည့် အချက်အလက်များကို Google က ရရှိပါမည်။ ဤအချက်အလက်များကို သင်၏ Google အကောင့်တွင် သိမ်းနိုင်သည်။ Assistant ကို Chrome ဆက်တင်များတွင် ပိတ်နိုင်သည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">တန်ဖိုး လျှော့ချသည်</translation>
+<translation id="2581111578809745440">အကြိမ်အနည်းငယ် တို့ရုံဖြင့်\nအမြန်ငွေပေးချေပါ</translation>
 <translation id="3018033505440165876">Google Assistant ကို\nChrome တွင် စမ်းကြည့်ပါ</translation>
 <translation id="4130750466177569591">ကျွန်ုပ် သဘောတူ</translation>
 <translation id="4437727785356380473">Chrome ရှိ Google Assistant ကို ပိတ်ထားသည်။</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Chrome ရှိ Google Assistant က ဝဘ်ဆိုက်များတွင် သင့်အတွက် အလိုအလျောက် ဖြည့်ပေးနိုင်သည်</translation>
 <translation id="6973932557599545801">ကျွန်ုပ် ကူညီ၍မရပါ၊ ကိုယ်တိုင် ဆက်လုပ်ပါ။</translation>
 <translation id="7135664311366978968">အကြိမ်အနည်းငယ် တို့ရုံဖြင့်\nရုပ်ရှင်လက်မှတ်များ ဝယ်နိုင်သည်</translation>
+<translation id="7455021968451468078">Google Assistant အား သင့်စကားဝှက်ကို \nကူးပြောင်းခွင့်ပေးပါ</translation>
 <translation id="7658239707568436148">မလုပ်တော့</translation>
 <translation id="7953600313732929223">ဝဘ်ဆိုက်များတွင်\nအသံဖြင့်ခိုင်းစေချက်များ စမ်းကြည့်ပါ</translation>
 <translation id="8253702004019660079">Chrome ရှိ Google Assistant။</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
index f449564..3255bfad 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Ontbrekende informatie</translation>
 <translation id="1932278019417741381">Google kan je helpen taken sneller te voltooien en ontvangt daarom de URL's en content van sites waarop je de Assistent gebruikt en informatie die je via de Assistent indient. Deze informatie kan worden opgeslagen in je Google-account. Je kunt de Assistent uitschakelen in de instellingen van Chrome. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Waarde verlagen</translation>
+<translation id="2581111578809745440">Met slechts een paar tikken\nbetaal je snel</translation>
 <translation id="3018033505440165876">Probeer de Google Assistent\nin Chrome</translation>
 <translation id="4130750466177569591">Ik ga akkoord</translation>
 <translation id="4437727785356380473">De Google Assistent in Chrome is gesloten.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">De Google Assistent in Chrome kan acties voor je voltooien op websites</translation>
 <translation id="6973932557599545801">Ik kan je helaas niet helpen. Ga zelf verder.</translation>
 <translation id="7135664311366978968">Met slechts een paar tikken\nkoop je bioscoopkaartjes</translation>
+<translation id="7455021968451468078">Laat de Google Assistent je helpen\nje wachtwoord te wijzigen</translation>
 <translation id="7658239707568436148">Annuleren</translation>
 <translation id="7953600313732929223">Probeer spraakopdrachten\nop websites</translation>
 <translation id="8253702004019660079">De Google Assistent in Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb
index 9149188..8fb453a 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pa.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">ਜਾਣਕਾਰੀ ਅਧੂਰੀ ਹੈ</translation>
 <translation id="1932278019417741381">ਕਾਰਜ ਪੂਰੇ ਕਰਨ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਨ ਲਈ, Google ਨੂੰ ਉਹਨਾਂ ਸਾਈਟਾਂ ਦੇ URL ਅਤੇ ਸਮੱਗਰੀਆਂ ਮਿਲਣਗੀਆਂ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ Assistant ਨੂੰ ਵਰਤਦੇ ਹੋ, ਨਾਲ ਹੀ ਤੁਹਾਡੇ ਵੱਲੋਂ Assistant ਰਾਹੀਂ ਸਪੁਰਦ ਕੀਤੀ ਜਾਣਕਾਰੀ ਵੀ ਮਿਲੇਗੀ। ਇਹ ਜਾਣਕਾਰੀ ਸ਼ਾਇਦ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਸਟੋਰ ਕੀਤੀ ਜਾਵੇ। ਤੁਸੀਂ Chrome ਸੈਟਿੰਗਾਂ ਵਿੱਚ Assistant ਨੂੰ ਬੰਦ ਕਰ ਸਕਦੇ ਹੋ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">ਮੁੱਲ ਘਟਾਓ</translation>
+<translation id="2581111578809745440">ਬਸ ਕੁਝ ਟੈਪਾਂ ਵਿੱਚ\nਤੇਜ਼ ਚੈੱਕ-ਆਊਟ ਕਰੋ</translation>
 <translation id="3018033505440165876">Chrome ਵਿੱਚ\nGoogle Assistant ਨੂੰ ਵਰਤ ਕੇ ਦੇਖੋ</translation>
 <translation id="4130750466177569591">ਮੈਂ ਸਹਿਮਤ ਹਾਂ</translation>
 <translation id="4437727785356380473">Chrome ਵਿੱਚ 'Google ਅਸਿਸਟੈਂਟ' ਬੰਦ ਹੋਇਆ।</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Chrome ਵਿੱਚ Google Assistant ਸਾਰੀਆਂ ਵੈੱਬਸਾਈਟਾਂ 'ਤੇ ਤੁਹਾਡੇ ਲਈ ਕਾਰਵਾਈਆਂ ਪੂਰੀ ਕਰ ਸਕਦੀ ਹੈ</translation>
 <translation id="6973932557599545801">ਮਾਫ਼ ਕਰਨਾ ਮੇਰੇ ਵੱਲੋਂ ਮਦਦ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ, ਕਿਰਪਾ ਕਰਕੇ ਖੁਦ ਜਾਰੀ ਰੱਖੋ।</translation>
 <translation id="7135664311366978968">ਬਸ ਕੁਝ ਟੈਪਾਂ ਵਿੱਚ\nਫ਼ਿਲਮਾਂ ਦੀਆਂ ਟਿਕਟਾਂ ਖਰੀਦੋ</translation>
+<translation id="7455021968451468078">Google Assistant ਨੂੰ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਣ ਵਿੱਚ \nਤੁਹਾਡੀ ਮਦਦ ਕਰਨ ਦਿਓ</translation>
 <translation id="7658239707568436148">ਰੱਦ ਕਰੋ</translation>
 <translation id="7953600313732929223">ਵੈੱਬਸਾਈਟਾਂ 'ਤੇ\nਅਵਾਜ਼ੀ ਕਾਰਵਾਈਆਂ ਕਰਕੇ ਦੇਖੋ</translation>
 <translation id="8253702004019660079">Chrome ਵਿੱਚ 'Google ਅਸਿਸਟੈਂਟ'।</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
index 4e1fba8..8980864 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Faltam algumas informações</translation>
 <translation id="1932278019417741381">Para ajudar você com suas tarefas, o Google receberá os URLs e o conteúdo de sites em que você usa o Assistente, bem como as informações que você envia por ele. Essas informações poderão ser armazenadas na sua Conta do Google. É possível desativar o Assistente nas configurações do Chrome. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Diminuir valor</translation>
+<translation id="2581111578809745440">Finalização da compra\nem poucos toques</translation>
 <translation id="3018033505440165876">Testar o Google Assistente\nno Chrome</translation>
 <translation id="4130750466177569591">Aceito</translation>
 <translation id="4437727785356380473">Google Assistente no Chrome fechado.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">O Google Assistente no Chrome pode concluir ações em sites para você</translation>
 <translation id="6973932557599545801">Não posso ajudar. Você está por conta própria.</translation>
 <translation id="7135664311366978968">Compre ingressos de filmes\ncom apenas alguns toques</translation>
+<translation id="7455021968451468078">Permita que o Google Assistente ajude você a\nmudar sua senha</translation>
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="7953600313732929223">Tente usar ações por voz\nem sites</translation>
 <translation id="8253702004019660079">Google Assistente no Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
index 744fd5c..578c0916f 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Informações em falta</translation>
 <translation id="1932278019417741381">Para ajudar a concluir as tarefas, a Google vai receber os URLs e os conteúdos dos sites nos quais utiliza o Assistente, bem como as informações que envia através do mesmo. Estas informações podem ser armazenadas na sua Conta Google. Pode desativar o Assistente nas definições do Chrome. <ph name="BEGIN_LINK" />Saber mais<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Diminuir valor</translation>
+<translation id="2581111578809745440">Pagamento rápido\ncom apenas alguns toques</translation>
 <translation id="3018033505440165876">Experimente o Assistente Google\nno Chrome</translation>
 <translation id="4130750466177569591">Concordo</translation>
 <translation id="4437727785356380473">Assistente Google no Chrome fechado.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">O Assistente Google no Chrome pode concluir ações em Websites por si.</translation>
 <translation id="6973932557599545801">Lamento, mas não posso ajudar. Continue por sua conta.</translation>
 <translation id="7135664311366978968">Compre bilhetes de cinema\ncom apenas alguns toques.</translation>
+<translation id="7455021968451468078">Permita que o Assistente Google ajude\na alterar a sua palavra-passe</translation>
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="7953600313732929223">Experimente comandos de voz\nnos Websites.</translation>
 <translation id="8253702004019660079">Assistente Google no Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
index b911837cb..6ffddad2 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Maelezo hayajakamilika</translation>
 <translation id="1932278019417741381">Ili tukusaidie ukamilishe majukumu, Google itapokea URL na maudhui ya tovuti ambako unatumia programu ya Mratibu na pia maelezo unayotuma kupitia programu ya Mratibu. Maelezo haya yanaweza kuhifadhiwa kwenye akaunti yako ya Google. Unaweza kuzima programu ya Mratibu katika mipangilio ya Chrome. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Punguza thamani</translation>
+<translation id="2581111578809745440">Lipa haraka\nkwa kugusa mara chache tu</translation>
 <translation id="3018033505440165876">Jaribu programu ya Mratibu wa Google\nkatika Chrome</translation>
 <translation id="4130750466177569591">Ninakubali</translation>
 <translation id="4437727785356380473">Imefunga Mratibu wa Google katika Chrome.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Programu ya Mratibu wa Google katika Chrome inaweza kukukamilishia vitendo kwenye tovuti</translation>
 <translation id="6973932557599545801">Samahani, nimeshindwa kukusaidia, tafadhali endelea mwenyewe.</translation>
 <translation id="7135664311366978968">Nunua tiketi za filamu\nkwa kugusa mara chache tu</translation>
+<translation id="7455021968451468078">Ruhusu programu ya Mratibu wa Google\nikusaidie ubadilishe nenosiri lako</translation>
 <translation id="7658239707568436148">Ghairi</translation>
 <translation id="7953600313732929223">Jaribu maagizo ya kutamka\nkwenye tovuti</translation>
 <translation id="8253702004019660079">Programu ya Mratibu wa Google katika Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uk.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uk.xtb
index eaeea5a..e23b587f 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uk.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uk.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Немає інформації</translation>
 <translation id="1932278019417741381">Щоб допомагати вам виконувати завдання, Google отримуватиме URL-адреси та вміст веб-сайтів, на яких ви користуєтесь Асистентом, а також інформацію, яку надсилаєте через нього. Ці дані можуть зберігатись у вашому обліковому записі Google. Ви можете вимкнути Асистента в налаштуваннях Chrome. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Знизити значення</translation>
+<translation id="2581111578809745440">Швидка оплата\nв кілька дотиків</translation>
 <translation id="3018033505440165876">Спробуйте скористатися Google Асистентом\nу Chrome</translation>
 <translation id="4130750466177569591">Приймаю</translation>
 <translation id="4437727785356380473">Google Асистент у Chrome закрито.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Google Асистент може завершувати дії на різних веб-сайтах у Chrome</translation>
 <translation id="6973932557599545801">На жаль, я не можу допомогти. Продовжуйте самостійно.</translation>
 <translation id="7135664311366978968">Купуйте квитки в кіно\nв кілька дотиків</translation>
+<translation id="7455021968451468078">Google Асистент може допомогти вам\nзмінити пароль</translation>
 <translation id="7658239707568436148">Скасувати</translation>
 <translation id="7953600313732929223">Випробуйте голосові команди\nна веб-сайтах</translation>
 <translation id="8253702004019660079">Google Асистент у Chrome.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uz.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uz.xtb
index 63eecfb..bcc6a29 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uz.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_uz.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Axborot butunlay kiritilmadi</translation>
 <translation id="1932278019417741381">Google internetda ishlashingizni osonlashtirish uchun Assistent orqali kirilgan saytlarning URL manzillari va kontentlarini, shuningdek, soʻrovlarni ham oladi Bu axborot Google hisobingizga saqlanishi mumkin. Chrome sozlamalari ichidan Assistentni faolsizlantirishingiz mumkin. <ph name="BEGIN_LINK" />Batafsil axborot<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Qiymatni kamaytirish</translation>
+<translation id="2581111578809745440">Bir nechta harakat bilan\ntez xarid qiling</translation>
 <translation id="3018033505440165876">Chrome brauzerida\nGoogle Assistentdan foydalaning</translation>
 <translation id="4130750466177569591">Men roziman</translation>
 <translation id="4437727785356380473">Chromedagi Google Assistent yopildi.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Chromedagi Google Assistent buyruqlaringizni saytlararo bajarishi mumkin</translation>
 <translation id="6973932557599545801">Uzr, men yordam bera olmayman. Oʻzingiz harakat qiling.</translation>
 <translation id="7135664311366978968">Bir nechta harakat bilan\nfilmlarga chipta sotib oling</translation>
+<translation id="7455021968451468078">Parolingizni Google Assistent\nalmashtirishiga ruxsat bering</translation>
 <translation id="7658239707568436148">Bekor qilish</translation>
 <translation id="7953600313732929223">Saytlarda ovozli\nbuyruqlardan foydalaning</translation>
 <translation id="8253702004019660079">Chromedagi Google Assistent</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb
index b02d63f..bf7f210 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb
@@ -5,6 +5,7 @@
 <translation id="1699570257714336246">Ulwazi alukho</translation>
 <translation id="1932278019417741381">Ukukusiza uqedele imisebenzi, i-Google izothola ama-URL nokuqukethwe kwamasayithi osebenzisa kuwo umsizi, kanye nolwazi oluthumela ngomsizi. Lolu lwazi lungase lugcinwe ku-akhawunti yakho ye-Google. Ungavala umsizi kuzilungiselelo ze-Chrome. <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation>
 <translation id="2203046366315513658">Yehlisa inani</translation>
+<translation id="2581111578809745440">Ukukhipha ngokushesha\nngokuthepha okumbalwa nje</translation>
 <translation id="3018033505440165876">Zama Umsizi we-Google \nku-Chrome</translation>
 <translation id="4130750466177569591">Ngiyavuma</translation>
 <translation id="4437727785356380473">Umsizi we-Google ku-Chrome uvaliwe.</translation>
@@ -18,6 +19,7 @@
 <translation id="6785872064505734160">Umsizi we-Google ku-Chrome angakuqedelela izenzo kuwo wonke amawebhusayithi</translation>
 <translation id="6973932557599545801">Uxolo angikwazi ukukusiza, ngicela uqhubeke ngokwakho.</translation>
 <translation id="7135664311366978968">Thenga amathikhithi we-movie\nngokuthepha okumbalwa nje</translation>
+<translation id="7455021968451468078">Vumela Umsizi we-Google akusize \nushintshe iphasiwedi yakho</translation>
 <translation id="7658239707568436148">Khansela</translation>
 <translation id="7953600313732929223">Zama ukulawula ngezwi\nkumawebhusayithi</translation>
 <translation id="8253702004019660079">Umsizi we-Google ku-Chrome</translation>
diff --git a/chrome/android/java/res/layout/share_sheet_item.xml b/chrome/android/java/res/layout/share_sheet_item.xml
index 360166d..5ac725af 100644
--- a/chrome/android/java/res/layout/share_sheet_item.xml
+++ b/chrome/android/java/res/layout/share_sheet_item.xml
@@ -10,7 +10,7 @@
     android:clickable="true"
     android:textAppearance="@style/TextAppearance.TextSmall.Primary"
     android:layout_height="fill_parent"
-    android:layout_width="68dp"
+    android:layout_width="62sp"
     android:layout_marginStart="16dp"
     android:layout_marginTop="16dp"
     android:background="?attr/selectableItemBackground"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java
index 51777e7..b531abcfd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java
@@ -19,6 +19,7 @@
 import org.chromium.chrome.browser.webapps.WebApkDistributor;
 import org.chromium.chrome.browser.webapps.WebApkUkmRecorder;
 import org.chromium.chrome.browser.webapps.WebappDataStorage;
+import org.chromium.chrome.browser.webapps.WebappIntentUtils;
 import org.chromium.chrome.browser.webapps.WebappRegistry;
 import org.chromium.components.browser_ui.util.ConversionUtils;
 
@@ -94,8 +95,7 @@
         int NUM_ENTRIES = 16;
     }
 
-    public static final String HISTOGRAM_UPDATE_REQUEST_SENT =
-            "WebApk.Update.RequestSent";
+    public static final String HISTOGRAM_UPDATE_REQUEST_SENT = "WebApk.Update.RequestSent";
 
     public static final String HISTOGRAM_UPDATE_REQUEST_QUEUED = "WebApk.Update.RequestQueued";
 
@@ -126,7 +126,7 @@
         for (String uninstalledPackage : uninstalledPackages) {
             RecordHistogram.recordBooleanHistogram("WebApk.Uninstall.Browser", true);
 
-            String webApkId = WebappRegistry.webApkIdForPackage(uninstalledPackage);
+            String webApkId = WebappIntentUtils.getIdForWebApkPackage(uninstalledPackage);
             WebappDataStorage webappDataStorage =
                     WebappRegistry.getInstance().getWebappDataStorage(webApkId);
             if (webappDataStorage != null) {
@@ -150,7 +150,7 @@
     public static void deferRecordWebApkUninstalled(String packageName) {
         SharedPreferencesManager.getInstance().addToStringSet(
                 ChromePreferenceKeys.WEBAPK_UNINSTALLED_PACKAGES, packageName);
-        String webApkId = WebappRegistry.webApkIdForPackage(packageName);
+        String webApkId = WebappIntentUtils.getIdForWebApkPackage(packageName);
         WebappRegistry.warmUpSharedPrefsForId(webApkId);
         WebappDataStorage webappDataStorage =
                 WebappRegistry.getInstance().getWebappDataStorage(webApkId);
@@ -306,8 +306,7 @@
             protected void onPostExecute(Void result) {
                 logSpaceUsageUMAOnDataAvailable(mAvailableSpaceInByte, mCacheSizeInByte);
             }
-        }
-                .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
     }
 
     private static void logSpaceUsageUMAOnDataAvailable(long spaceSize, long cacheSize) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java
index 4eb3d082..5b5ad04 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java
@@ -45,6 +45,7 @@
 
         mUrlBar = findViewById(R.id.url_bar);
         updateUrlBarPaddingForSearchEngineIcon();
+        mStatusView = findViewById(R.id.location_bar_status);
         // Assign the first visible view here only if it hasn't been set by the DSE icon experiment.
         // See onNativeLibrary ready for when this variable is set for the DSE icon case.
         mFirstVisibleFocusedView =
@@ -69,8 +70,6 @@
                 getToolbarDataProvider().isIncognito());
 
         // This branch will be hit if the search engine logo experiment is enabled.
-        // This value can never revert back to false, so it's safe to initialize mStatusView here
-        // without a corresponding else that nulls it out.
         if (SearchEngineLogoUtils.isSearchEngineLogoEnabled()) {
             // Setup the padding once we're loaded, the focused padding changes will happen with
             // post-layout positioning via setTranslation. This is a byproduct of the way we do the
@@ -83,7 +82,6 @@
                     R.dimen.sei_location_bar_lateral_padding);
             setPaddingRelative(lateralPadding, getPaddingTop(), lateralPadding, getPaddingBottom());
             updateUrlBarPaddingForSearchEngineIcon();
-            mStatusView = findViewById(R.id.location_bar_status);
         }
 
         // This branch will be hit if the search engine logo experiment is enabled and we should
@@ -105,7 +103,7 @@
      * Factor in extra padding added for the focused state when the search engine icon is active.
      */
     private void updateUrlBarPaddingForSearchEngineIcon() {
-        if (mUrlBar == null || mStatusView == null) return;
+        if (mUrlBar == null || mStatusCoordinator == null) return;
 
         mUrlBar.post(() -> {
             // TODO(crbug.com/1019019): Come up with a better solution for M80 or M81.
@@ -114,8 +112,7 @@
             final int endPadding = SearchEngineLogoUtils.shouldShowSearchEngineLogo(
                                            mToolbarDataProvider.isIncognito())
                             && hasFocus()
-                    ? mStatusView.getEndPaddingPixelSizeForFocusState(true)
-                            - mStatusView.getEndPaddingPixelSizeForFocusState(false)
+                    ? mStatusCoordinator.getEndPaddingPixelSizeOnFocusDelta()
                     : 0;
 
             mUrlBar.setPaddingRelative(mUrlBar.getPaddingStart(), mUrlBar.getPaddingTop(),
@@ -202,7 +199,7 @@
     public float getUrlBarTranslationXForToolbarAnimation(
             float urlExpansionPercent, boolean hasFocus) {
         // This will be called before status view is ready.
-        if (mStatusView == null) return 0;
+        if (mStatusView == null || mStatusCoordinator == null) return 0;
 
         // No offset is required if the experiment is disabled.
         if (!SearchEngineLogoUtils.shouldShowSearchEngineLogo(
@@ -215,9 +212,8 @@
         // states and also accounts for the translation that the status icon will do. In the end,
         // this translation will be the distance that the url bar needs to travel to arrive at the
         // desired padding when focused.
-        float translation = urlExpansionPercent
-                * (mStatusView.getEndPaddingPixelSizeForFocusState(true)
-                        - mStatusView.getEndPaddingPixelSizeForFocusState(false));
+        float translation =
+                urlExpansionPercent * mStatusCoordinator.getEndPaddingPixelSizeOnFocusDelta();
 
         if (!hasFocus && mStatusView.isSearchEngineStatusIconVisible()
                 && SearchEngineLogoUtils.currentlyOnNTP(mToolbarDataProvider)) {
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 2ed16a3..a987fd8f 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
@@ -82,6 +82,7 @@
 
     /**
      * Provides data and state for the toolbar component.
+     *
      * @param toolbarDataProvider The data provider.
      */
     public void setToolbarDataProvider(ToolbarDataProvider toolbarDataProvider) {
@@ -94,17 +95,13 @@
         updateStatusIcon();
     }
 
-    /**
-     * Signals that native initialization has completed.
-     */
+    /** Signals that native initialization has completed. */
     public void onNativeInitialized() {
         mMediator.updateLocationBarIcon();
         mMediator.setStatusClickListener(this);
     }
 
-    /**
-     * @param urlHasFocus Whether the url currently has focus.
-     */
+    /** @param urlHasFocus Whether the url currently has focus. */
     public void onUrlFocusChange(boolean urlHasFocus) {
         mMediator.setUrlHasFocus(urlHasFocus);
         mUrlHasFocus = urlHasFocus;
@@ -123,15 +120,14 @@
 
     /**
      * Set the url focus change percent.
+     *
      * @param percent The current focus percent.
      */
     public void setUrlFocusChangePercent(float percent) {
         mMediator.setUrlFocusChangePercent(percent);
     }
 
-    /**
-     * @param useDarkColors Whether dark colors should be for the status icon and text.
-     */
+    /**  @param useDarkColors Whether dark colors should be for the status icon and text. */
     public void setUseDarkColors(boolean useDarkColors) {
         mMediator.setUseDarkColors(useDarkColors);
 
@@ -140,9 +136,7 @@
         updateStatusIcon();
     }
 
-    /**
-     * @param incognitoBadgeVisible Whether or not the incognito badge is visible.
-     */
+    /** @param incognitoBadgeVisible Whether or not the incognito badge is visible. */
     public void setIncognitoBadgeVisibility(boolean incognitoBadgeVisible) {
         mMediator.setIncognitoBadgeVisibility(incognitoBadgeVisible);
     }
@@ -156,9 +150,7 @@
         mModalDialogManagerSupplier = modalDialogManagerSupplier;
     }
 
-    /**
-     * Updates the security icon displayed in the LocationBar.
-     */
+    /** Updates the security icon displayed in the LocationBar. */
     public void updateStatusIcon() {
         mMediator.setSecurityIconResource(mToolbarDataProvider.getSecurityIconResource(mIsTablet));
         mMediator.setSecurityIconTint(mToolbarDataProvider.getSecurityIconColorStateList());
@@ -169,22 +161,18 @@
         updateVerboseStatusVisibility();
     }
 
-    /**
-     * @return The view displaying the security icon.
-     */
+    /** Returns the view displaying the security icon. */
     public View getSecurityIconView() {
         return mStatusView.getSecurityButton();
     }
 
-    /**
-     * @return Whether the security button is currently being displayed.
-     */
+    /** Returns {@code true} if the security button is currently being displayed. */
     @VisibleForTesting
     public boolean isSecurityButtonShown() {
         return mMediator.isSecurityButtonShown();
     }
 
-    /** @return The ID of the drawable currently shown in the security icon. */
+    /** Returns the ID of the drawable currently shown in the security icon. */
     @DrawableRes
     public int getSecurityIconResourceIdForTesting() {
         return mModel.get(StatusProperties.STATUS_ICON_RESOURCE) == null
@@ -192,7 +180,7 @@
                 : mModel.get(StatusProperties.STATUS_ICON_RESOURCE).getIconResForTesting();
     }
 
-    /** @return The icon identifier used for custom resources. */
+    /** Returns the icon identifier used for custom resources. */
     public String getSecurityIconIdentifierForTesting() {
         return mModel.get(StatusProperties.STATUS_ICON_RESOURCE) == null
                 ? null
@@ -236,29 +224,24 @@
     /**
      * Called to set the width of the location bar when the url bar is not focused.
      * This value is used to determine whether the verbose status text should be visible.
+     *
      * @param width The unfocused location bar width.
      */
     public void setUnfocusedLocationBarWidth(int width) {
         mMediator.setUnfocusedLocationBarWidth(width);
     }
 
-    /**
-     * Toggle animation of icon changes.
-     */
+    /** Toggle animation of icon changes. */
     public void setShouldAnimateIconChanges(boolean shouldAnimate) {
         mMediator.setAnimationsEnabled(shouldAnimate);
     }
 
-    /**
-     * Specify whether URL should present icons when focused.
-     */
+    /** Specify whether URL should present icons when focused. */
     public void setShowIconsWhenUrlFocused(boolean showIconsWithUrlFocused) {
         mMediator.setShowIconsWhenUrlFocused(showIconsWithUrlFocused);
     }
 
-    /**
-     * Specify whether suggestion for URL bar is a search action.
-     */
+    /** Specify whether suggestion for URL bar is a search action. */
     public void setFirstSuggestionIsSearchType(boolean firstSuggestionIsSearchQuery) {
         mMediator.setFirstSuggestionIsSearchType(firstSuggestionIsSearchQuery);
     }
@@ -267,22 +250,23 @@
         mMediator.setIncognitoStateProvider(incognitoStateProvider);
     }
 
-    /**
-     * Update information required to display the search engine icon.
-     */
+    /** Update information required to display the search engine icon. */
     public void updateSearchEngineStatusIcon(boolean shouldShowSearchEngineLogo,
             boolean isSearchEngineGoogle, String searchEngineUrl) {
         mMediator.updateSearchEngineStatusIcon(
                 shouldShowSearchEngineLogo, isSearchEngineGoogle, searchEngineUrl);
     }
 
-    /**
-     * @return Width of the status icon including start/end margins.
-     */
+    /** Returns width of the status icon including start/end margins. */
     public int getStatusIconWidth() {
         return mStatusView.getStatusIconWidth();
     }
 
+    /** Returns the increase in StatusView end padding, when the Url bar is focused. */
+    public int getEndPaddingPixelSizeOnFocusDelta() {
+        return mMediator.getEndPaddingPixelSizeOnFocusDelta();
+    }
+
     @Override
     public void onTextChanged(String textWithoutAutocomplete, String textWithAutocomplete) {
         mMediator.onTextChanged(textWithoutAutocomplete);
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 c40c31b..13da157 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
@@ -84,6 +84,7 @@
     private boolean mShouldCancelCustomFavicon;
     private boolean mIsTablet;
 
+    private final int mEndPaddingPixelSizeOnFocusDelta;
     private int mUrlMinWidth;
     private int mSeparatorMinWidth;
     private int mVerboseStatusTextMinWidth;
@@ -130,13 +131,12 @@
         mContext = context;
         mUrlBarEditingTextStateProvider = urlBarEditingTextStateProvider;
 
+        mEndPaddingPixelSizeOnFocusDelta =
+                mResources.getDimensionPixelSize(R.dimen.sei_location_bar_icon_end_padding_focused)
+                - mResources.getDimensionPixelSize(R.dimen.sei_location_bar_icon_end_padding);
         int iconWidth = resources.getDimensionPixelSize(R.dimen.location_bar_status_icon_width);
-        mTextOffsetThreshold = (float) iconWidth
-                / (iconWidth
-                        + resources.getDimensionPixelSize(
-                                R.dimen.sei_location_bar_icon_end_padding_focused)
-                        - resources.getDimensionPixelSize(
-                                R.dimen.sei_location_bar_icon_end_padding));
+        mTextOffsetThreshold =
+                (float) iconWidth / (iconWidth + getEndPaddingPixelSizeOnFocusDelta());
         mTextOffsetAdjustedScale = mTextOffsetThreshold == 1 ? 1 : (1 - mTextOffsetThreshold);
 
         mIsTablet = isTablet;
@@ -233,6 +233,13 @@
     }
 
     /**
+     * Returns the increase in StatusView end padding, when the Url bar is focused.
+     */
+    int getEndPaddingPixelSizeOnFocusDelta() {
+        return mEndPaddingPixelSizeOnFocusDelta;
+    }
+
+    /**
      * Specify whether status icon should be shown when URL is focused.
      */
     void setShowIconsWhenUrlFocused(boolean showIconWhenFocused) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java
index 07b2b78..9afd53b7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java
@@ -115,7 +115,9 @@
             // Setup the padding once we're loaded, the other padding changes will happen with post-
             // layout positioning.
             setPaddingRelative(getPaddingStart(), getPaddingTop(),
-                    getEndPaddingPixelSizeForFocusState(false), getPaddingBottom());
+                    getResources().getDimensionPixelOffset(
+                            R.dimen.sei_location_bar_icon_end_padding),
+                    getPaddingBottom());
             // Note: the margins and implicit padding were removed from the status view for the
             // dse icon experiment. Moving padding values that were there to the verbose status
             // text view and the verbose text extra space.
@@ -423,19 +425,6 @@
     }
 
     /**
-     * @returns The end padding for the given state.
-     */
-    public int getEndPaddingPixelSizeForFocusState(boolean hasFocus) {
-        if (hasFocus) {
-            return getResources().getDimensionPixelOffset(
-                    R.dimen.sei_location_bar_icon_end_padding_focused);
-        } else {
-            return getResources().getDimensionPixelOffset(
-                    R.dimen.sei_location_bar_icon_end_padding);
-        }
-    }
-
-    /**
      * Create a touch delegate to expand the clickable area for the padlock icon (see
      * crbug.com/970031 for motivation/info). This method will be called when the icon is animating
      * in and when layout changes. It's called on these intervals because (1) the layout could
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
index fec7db4..bf3760f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
@@ -17,6 +17,7 @@
 import org.chromium.chrome.browser.WarmupManager;
 import org.chromium.chrome.browser.ntp.NewTabPage;
 import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType;
+import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteResult.GroupDetails;
 import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestion.MatchClassification;
 import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceResult;
 import org.chromium.chrome.browser.profiles.Profile;
@@ -241,7 +242,7 @@
         AutocompleteResult resultsWithVoiceSuggestions = new AutocompleteResult(
                 mVoiceSuggestionProvider.addVoiceSuggestions(
                         autocompleteResult.getSuggestionsList(), MAX_VOICE_SUGGESTION_COUNT),
-                autocompleteResult.getGroupHeaders());
+                autocompleteResult.getGroupsDetails());
 
         mCurrentNativeAutocompleteResult = currentNativeAutocompleteResult;
 
@@ -293,9 +294,9 @@
 
     @CalledByNative
     private static AutocompleteResult createAutocompleteResult(
-            int suggestionsCount, int groupHeadersCount) {
+            int suggestionsCount, int groupsCount) {
         return new AutocompleteResult(new ArrayList<OmniboxSuggestion>(suggestionsCount),
-                new SparseArray<String>(groupHeadersCount));
+                new SparseArray<GroupDetails>(groupsCount));
     }
 
     /**
@@ -311,16 +312,18 @@
     }
 
     /**
-     * Insert element to Group Headers map.
+     * Insert element to GroupDetails map.
      *
      * @param autocompleteResult AutocompleteResult instance.
      * @param groupId ID of a Group.
      * @param headerText Group title.
+     * @param collapsedByDefault Whether group should be collapsed by default.
      */
     @CalledByNative
-    private static void addOmniboxGroupHeaderToResult(
-            AutocompleteResult autocompleteResult, int groupId, String headerText) {
-        autocompleteResult.getGroupHeaders().put(groupId, headerText);
+    private static void addOmniboxGroupDetailsToResult(AutocompleteResult autocompleteResult,
+            int groupId, String headerText, boolean collapsedByDefault) {
+        autocompleteResult.getGroupsDetails().put(
+                groupId, new GroupDetails(headerText, collapsedByDefault));
     }
 
     @CalledByNative
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
index 3f109a7..0451a71 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
@@ -861,7 +861,8 @@
             mAutocompleteResult = autocompleteResult;
             List<DropdownItemViewInfo> viewInfoList =
                     mDropdownViewInfoListBuilder.buildDropdownViewInfoList(autocompleteResult);
-            mDropdownViewInfoListManager.setSourceViewInfoList(viewInfoList);
+            mDropdownViewInfoListManager.setSourceViewInfoList(
+                    viewInfoList, autocompleteResult.getGroupsDetails());
             mDelegate.onSuggestionsChanged(inlineAutocompleteText);
             updateOmniboxSuggestionsVisibility();
         }
@@ -869,8 +870,8 @@
     }
 
     @Override
-    public void setGroupVisibility(int groupId, boolean state) {
-        mDropdownViewInfoListManager.setGroupVisibility(groupId, state);
+    public void setGroupCollapsedState(int groupId, boolean state) {
+        mDropdownViewInfoListManager.setGroupCollapsedState(groupId, state);
     }
 
     @NonNull
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResult.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResult.java
index 0f105cee..29c6f61 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResult.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResult.java
@@ -4,6 +4,7 @@
 
 package org.chromium.chrome.browser.omnibox.suggestions;
 
+import android.text.TextUtils;
 import android.util.SparseArray;
 
 import androidx.annotation.NonNull;
@@ -16,13 +17,43 @@
  * AutocompleteResult encompasses and manages autocomplete results.
  */
 public class AutocompleteResult {
+    /** Describes details of the Suggestions group. */
+    public static class GroupDetails {
+        // Title of the group, that will be shown to the user.
+        public final String title;
+        // Default/recommended group collapsed state.
+        public final boolean collapsedByDefault;
+
+        public GroupDetails(String title, boolean collapsedByDefault) {
+            this.title = title;
+            this.collapsedByDefault = collapsedByDefault;
+        }
+
+        @Override
+        public int hashCode() {
+            int hash = title != null ? title.hashCode() : 0;
+            hash ^= (collapsedByDefault ? 0x3ff : 0);
+            return hash;
+        }
+
+        @Override
+        public boolean equals(Object otherObj) {
+            if (otherObj == this) return true;
+            if (!(otherObj instanceof GroupDetails)) return false;
+
+            GroupDetails other = (GroupDetails) otherObj;
+            return (collapsedByDefault == other.collapsedByDefault)
+                    && TextUtils.equals(title, other.title);
+        }
+    };
+
     private final List<OmniboxSuggestion> mSuggestions;
-    private final SparseArray<String> mGroupHeaders;
+    private final SparseArray<GroupDetails> mGroupsDetails;
 
     public AutocompleteResult(
-            List<OmniboxSuggestion> suggestions, SparseArray<String> groupHeaders) {
+            List<OmniboxSuggestion> suggestions, SparseArray<GroupDetails> groupsDetails) {
         mSuggestions = suggestions != null ? suggestions : new ArrayList<>();
-        mGroupHeaders = groupHeaders != null ? groupHeaders : new SparseArray<>();
+        mGroupsDetails = groupsDetails != null ? groupsDetails : new SparseArray<>();
     }
 
     /**
@@ -34,11 +65,11 @@
     }
 
     /**
-     * @return Map of Group ID to Header text
+     * @return Map of Group ID to GroupDetails objects.
      */
     @NonNull
-    SparseArray<String> getGroupHeaders() {
-        return mGroupHeaders;
+    SparseArray<GroupDetails> getGroupsDetails() {
+        return mGroupsDetails;
     }
 
     @Override
@@ -49,11 +80,12 @@
         AutocompleteResult other = (AutocompleteResult) otherObj;
         if (!mSuggestions.equals(other.mSuggestions)) return false;
 
-        final SparseArray<String> otherHeaders = other.mGroupHeaders;
-        if (mGroupHeaders.size() != otherHeaders.size()) return false;
-        for (int index = 0; index < mGroupHeaders.size(); index++) {
-            if (mGroupHeaders.keyAt(index) != otherHeaders.keyAt(index)) return false;
-            if (!ObjectsCompat.equals(mGroupHeaders.valueAt(index), otherHeaders.valueAt(index))) {
+        final SparseArray<GroupDetails> otherGroupsDetails = other.mGroupsDetails;
+        if (mGroupsDetails.size() != otherGroupsDetails.size()) return false;
+        for (int index = 0; index < mGroupsDetails.size(); index++) {
+            if (mGroupsDetails.keyAt(index) != otherGroupsDetails.keyAt(index)) return false;
+            if (!ObjectsCompat.equals(
+                        mGroupsDetails.valueAt(index), otherGroupsDetails.valueAt(index))) {
                 return false;
             }
         }
@@ -64,10 +96,10 @@
     @Override
     public int hashCode() {
         int baseHash = 0;
-        for (int index = 0; index < mGroupHeaders.size(); index++) {
-            baseHash += mGroupHeaders.keyAt(index);
-            baseHash ^= mGroupHeaders.valueAt(index).hashCode();
-            baseHash = (baseHash << 10) | (baseHash >> 22);
+        for (int index = 0; index < mGroupsDetails.size(); index++) {
+            baseHash += mGroupsDetails.keyAt(index);
+            baseHash ^= mGroupsDetails.valueAt(index).hashCode();
+            baseHash = Integer.rotateLeft(baseHash, 10);
         }
         return baseHash ^ mSuggestions.hashCode();
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManager.java
index 5a0d214..cc037e2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManager.java
@@ -8,6 +8,7 @@
 import static org.chromium.chrome.browser.preferences.ChromePreferenceKeys.KEY_ZERO_SUGGEST_DESCRIPTION_PREFIX;
 import static org.chromium.chrome.browser.preferences.ChromePreferenceKeys.KEY_ZERO_SUGGEST_DISPLAY_TEXT_PREFIX;
 import static org.chromium.chrome.browser.preferences.ChromePreferenceKeys.KEY_ZERO_SUGGEST_GROUP_ID_PREFIX;
+import static org.chromium.chrome.browser.preferences.ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX;
 import static org.chromium.chrome.browser.preferences.ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_GROUP_ID_PREFIX;
 import static org.chromium.chrome.browser.preferences.ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX;
 import static org.chromium.chrome.browser.preferences.ChromePreferenceKeys.KEY_ZERO_SUGGEST_IS_DELETABLE_PREFIX;
@@ -27,6 +28,7 @@
 
 import org.chromium.chrome.browser.omnibox.MatchClassificationStyle;
 import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType;
+import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteResult.GroupDetails;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
 import org.chromium.url.GURL;
@@ -44,7 +46,7 @@
     public static void saveToCache(AutocompleteResult resultToCache) {
         final SharedPreferencesManager manager = SharedPreferencesManager.getInstance();
         cacheSuggestionList(manager, resultToCache.getSuggestionsList());
-        cacheGroupHeaders(manager, resultToCache.getGroupHeaders());
+        cacheGroupsDetails(manager, resultToCache.getGroupsDetails());
     }
 
     /**
@@ -55,10 +57,10 @@
         final SharedPreferencesManager manager = SharedPreferencesManager.getInstance();
         List<OmniboxSuggestion> suggestions =
                 CachedZeroSuggestionsManager.readCachedSuggestionList(manager);
-        SparseArray<String> groupHeaders =
-                CachedZeroSuggestionsManager.readCachedGroupHeaders(manager);
-        removeInvalidSuggestionsAndGroupHeaders(suggestions, groupHeaders);
-        return new AutocompleteResult(suggestions, groupHeaders);
+        SparseArray<GroupDetails> groupsDetails =
+                CachedZeroSuggestionsManager.readCachedGroupsDetails(manager);
+        removeInvalidSuggestionsAndGroupsDetails(suggestions, groupsDetails);
+        return new AutocompleteResult(suggestions, groupsDetails);
     }
 
     /**
@@ -172,58 +174,68 @@
     }
 
     /**
-     * Cache suggestion group headers in shared preferences.
+     * Cache suggestion group details in shared preferences.
      *
      * @param prefs Shared preferences manager.
+     * @param groupsDetails Map of Group ID to GroupDetails.
      */
-    private static void cacheGroupHeaders(
-            SharedPreferencesManager prefs, SparseArray<String> groupHeaders) {
-        final int size = groupHeaders.size();
+    private static void cacheGroupsDetails(
+            SharedPreferencesManager prefs, SparseArray<GroupDetails> groupsDetails) {
+        final int size = groupsDetails.size();
         prefs.writeInt(ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_LIST_SIZE, size);
         for (int i = 0; i < size; i++) {
+            final GroupDetails details = groupsDetails.valueAt(i);
+            String title = details.title;
+            boolean collapsedByDefault = details.collapsedByDefault;
+
             prefs.writeInt(
-                    KEY_ZERO_SUGGEST_HEADER_GROUP_ID_PREFIX.createKey(i), groupHeaders.keyAt(i));
-            prefs.writeString(KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX.createKey(i),
-                    groupHeaders.valueAt(i));
+                    KEY_ZERO_SUGGEST_HEADER_GROUP_ID_PREFIX.createKey(i), groupsDetails.keyAt(i));
+            prefs.writeString(KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX.createKey(i), title);
+            prefs.writeBoolean(
+                    KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX.createKey(i),
+                    collapsedByDefault);
         }
     }
 
     /**
-     * Restore group headers from shared preferences.
+     * Restore group details from shared preferences.
      *
      * @param prefs Shared preferences manager.
-     * @return Map of group ID to header text previously cached in shared preferences.
+     * @return Map of group ID to GroupDetails previously cached in shared preferences.
      */
     @NonNull
     @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-    static SparseArray<String> readCachedGroupHeaders(SharedPreferencesManager prefs) {
+    static SparseArray<GroupDetails> readCachedGroupsDetails(SharedPreferencesManager prefs) {
         final int size = prefs.readInt(ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_LIST_SIZE, 0);
-        final SparseArray<String> groupHeaders = new SparseArray<>(size);
+        final SparseArray<GroupDetails> groupsDetails = new SparseArray<>(size);
 
         for (int i = 0; i < size; i++) {
             int groupId = prefs.readInt(KEY_ZERO_SUGGEST_HEADER_GROUP_ID_PREFIX.createKey(i),
                     OmniboxSuggestion.INVALID_GROUP);
             String groupTitle =
                     prefs.readString(KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX.createKey(i), null);
-            groupHeaders.put(groupId, groupTitle);
+            boolean collapsedByDefault = prefs.readBoolean(
+                    KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX.createKey(i), false);
+
+            groupsDetails.put(groupId, new GroupDetails(groupTitle, collapsedByDefault));
         }
-        return groupHeaders;
+        return groupsDetails;
     }
 
     /**
-     * Remove all invalid entries for group headers and omnibox suggestions.
+     * Remove all invalid entries for group details map and omnibox suggestions list.
      *
      * @param suggestions List of suggestions to scan for invalid entries.
-     * @param groupHeaders Group headers to scan for invalid entries.
+     * @param groupsDetails Map of GroupDetails to scan for invalid entries.
      */
     @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-    static void removeInvalidSuggestionsAndGroupHeaders(
-            List<OmniboxSuggestion> suggestions, SparseArray<String> groupHeaders) {
-        // Remove all group headers that have invalid index or title.
-        for (int index = groupHeaders.size() - 1; index >= 0; index--) {
-            if (groupHeaders.keyAt(index) == OmniboxSuggestion.INVALID_GROUP
-                    || TextUtils.isEmpty(groupHeaders.valueAt(index))) {
-                groupHeaders.removeAt(index);
+    static void removeInvalidSuggestionsAndGroupsDetails(
+            List<OmniboxSuggestion> suggestions, SparseArray<GroupDetails> groupsDetails) {
+        // Remove all group details that have invalid index or title.
+        for (int index = groupsDetails.size() - 1; index >= 0; index--) {
+            if (groupsDetails.keyAt(index) == OmniboxSuggestion.INVALID_GROUP
+                    || TextUtils.isEmpty(groupsDetails.valueAt(index).title)) {
+                groupsDetails.removeAt(index);
             }
         }
 
@@ -233,7 +245,7 @@
             final int groupId = suggestion.getGroupId();
             if (!suggestion.getUrl().isValid() || suggestion.getUrl().isEmpty()
                     || (groupId != OmniboxSuggestion.INVALID_GROUP
-                            && groupHeaders.indexOfKey(groupId) < 0)) {
+                            && groupsDetails.indexOfKey(groupId) < 0)) {
                 suggestions.remove(index);
             }
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
index 273d82cd..f9463aa6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
@@ -20,6 +20,7 @@
 import org.chromium.chrome.browser.image_fetcher.ImageFetcherFactory;
 import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType;
 import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider;
+import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteResult.GroupDetails;
 import org.chromium.chrome.browser.omnibox.suggestions.answer.AnswerSuggestionProcessor;
 import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor;
 import org.chromium.chrome.browser.omnibox.suggestions.basic.SuggestionHost;
@@ -275,10 +276,18 @@
 
             if (currentGroup != suggestion.getGroupId()) {
                 currentGroup = suggestion.getGroupId();
-                final PropertyModel model = mHeaderProcessor.createModel();
-                mHeaderProcessor.populateModel(model, currentGroup,
-                        autocompleteResult.getGroupHeaders().get(currentGroup));
-                viewInfoList.add(new DropdownItemViewInfo(mHeaderProcessor, model, currentGroup));
+                final GroupDetails details =
+                        autocompleteResult.getGroupsDetails().get(currentGroup);
+
+                // Only add the Header Group when both ID and details are specified.
+                // Note that despite GroupsDetails map not holding <null> values,
+                // a group definition for specific ID may be unavailable.
+                if (details != null) {
+                    final PropertyModel model = mHeaderProcessor.createModel();
+                    mHeaderProcessor.populateModel(model, currentGroup, details.title);
+                    viewInfoList.add(
+                            new DropdownItemViewInfo(mHeaderProcessor, model, currentGroup));
+                }
             }
 
             final PropertyModel model = processor.createModel();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java
index 5c2dfc0..65dee32e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java
@@ -10,9 +10,11 @@
 import androidx.annotation.NonNull;
 
 import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme;
+import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
 import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
 import org.chromium.ui.modelutil.PropertyModel;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -22,14 +24,14 @@
     private int mLayoutDirection;
     private @OmniboxTheme int mOmniboxTheme;
     private List<DropdownItemViewInfo> mSourceViewInfoList;
-    private SparseArray<Boolean> mGroupVisibility;
+    private SparseArray<Boolean> mGroupsCollapsedState;
 
     DropdownItemViewInfoListManager(@NonNull ModelList managedModel) {
         assert managedModel != null : "Must specify a non-null model.";
         mLayoutDirection = View.LAYOUT_DIRECTION_INHERIT;
         mOmniboxTheme = OmniboxTheme.LIGHT_THEME;
         mSourceViewInfoList = Collections.emptyList();
-        mGroupVisibility = new SparseArray<>();
+        mGroupsCollapsedState = new SparseArray<>();
         mManagedModel = managedModel;
     }
 
@@ -67,15 +69,15 @@
     }
 
     /**
-     * Toggle the visibility state of suggestions belonging to specific group.
+     * Toggle the collapsed state of suggestions belonging to specific group.
      *
-     * @param groupId ID of the group whose visibility state is expected to change.
-     * @param state Visibility state of the suggestions belonging to the group.
+     * @param groupId ID of the group whose collapsed state is expected to change.
+     * @param groupIsCollapsed Collapsed state of the group.
      */
-    void setGroupVisibility(int groupId, boolean state) {
-        if (getGroupVisibility(groupId) == state) return;
-        mGroupVisibility.put(groupId, state);
-        if (!state) {
+    void setGroupCollapsedState(int groupId, boolean groupIsCollapsed) {
+        if (getGroupCollapsedState(groupId) == groupIsCollapsed) return;
+        mGroupsCollapsedState.put(groupId, groupIsCollapsed);
+        if (groupIsCollapsed) {
             removeSuggestionsForGroup(groupId);
         } else {
             insertSuggestionsForGroup(groupId);
@@ -84,10 +86,10 @@
 
     /**
      * @param groupId ID of the suggestions group.
-     * @return True, if group should be visible, otherwise false.
+     * @return True, if group should be collapsed, otherwise false.
      */
-    private boolean getGroupVisibility(int groupId) {
-        return mGroupVisibility.get(groupId, /* defaultVisibility= */ true);
+    private boolean getGroupCollapsedState(int groupId) {
+        return mGroupsCollapsedState.get(groupId, /* defaultCollapsedState= */ false);
     }
 
     /** @return Whether the supplied view info is a header for the specific group of suggestions. */
@@ -99,7 +101,7 @@
     void clear() {
         mSourceViewInfoList.clear();
         mManagedModel.clear();
-        mGroupVisibility.clear();
+        mGroupsCollapsedState.clear();
     }
 
     /** Record histograms for all currently presented suggestions. */
@@ -114,21 +116,34 @@
      * Specify the input list of DropdownItemViewInfo elements.
      *
      * @param sourceList Source list of ViewInfo elements.
+     * @param groupsDetails Group ID to GroupDetails map carrying group collapsed state information.
      */
-    void setSourceViewInfoList(@NonNull List<DropdownItemViewInfo> sourceList) {
+    void setSourceViewInfoList(@NonNull List<DropdownItemViewInfo> sourceList,
+            @NonNull SparseArray<AutocompleteResult.GroupDetails> groupsDetails) {
         mSourceViewInfoList = sourceList;
-        mGroupVisibility.clear();
+        mGroupsCollapsedState.clear();
 
+        // Clone information about the recommended group collapsed state.
+        for (int index = 0; index < groupsDetails.size(); index++) {
+            mGroupsCollapsedState.put(
+                    groupsDetails.keyAt(index), groupsDetails.valueAt(index).collapsedByDefault);
+        }
+
+        // Build a new list of suggestions. Honor the default collapsed state.
+        final List<ListItem> suggestionsList = new ArrayList<>();
         for (int i = 0; i < mSourceViewInfoList.size(); i++) {
-            PropertyModel model = mSourceViewInfoList.get(i).model;
+            final DropdownItemViewInfo item = mSourceViewInfoList.get(i);
+            final PropertyModel model = item.model;
             model.set(SuggestionCommonProperties.LAYOUT_DIRECTION, mLayoutDirection);
             model.set(SuggestionCommonProperties.OMNIBOX_THEME, mOmniboxTheme);
+
+            final boolean groupIsDefaultCollapsed = getGroupCollapsedState(item.groupId);
+            if (!groupIsDefaultCollapsed || isGroupHeaderWithId(item, item.groupId)) {
+                suggestionsList.add(item);
+            }
         }
-        // Note: Despite DropdownItemViewInfo extending ListItem, we can't use the
-        // List<DropdownItemViewInfo> as a parameter expecting a List<ListItem>.
-        // Java disallows casting one generic type to another, unless the specialization
-        // is dropped.
-        mManagedModel.set((List) mSourceViewInfoList);
+
+        mManagedModel.set(suggestionsList);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionHost.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionHost.java
index ec3613a..9accacde 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionHost.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionHost.java
@@ -39,7 +39,7 @@
      * Toggle expanded state of suggestion items belonging to specific group.
      *
      * @param groupId ID of Suggestion Group whose visibility changed.
-     * @param state True if elements should be visible, otherwise false.
+     * @param isCollapsed True if group should appear collapsed, otherwise false.
      */
-    void setGroupVisibility(int groupId, boolean state);
+    void setGroupCollapsedState(int groupId, boolean isCollapsed);
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderProcessor.java
index 0fe5a41..41759fc00 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderProcessor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderProcessor.java
@@ -54,7 +54,7 @@
     public void populateModel(
             final PropertyModel model, final int groupId, final String headerText) {
         model.set(HeaderViewProperties.TITLE, headerText);
-        model.set(HeaderViewProperties.IS_EXPANDED, true);
+        model.set(HeaderViewProperties.IS_COLLAPSED, false);
         model.set(HeaderViewProperties.DELEGATE, new HeaderViewProperties.Delegate() {
             @Override
             public void onHeaderSelected() {
@@ -63,14 +63,14 @@
 
             @Override
             public void onHeaderClicked() {
-                final boolean newState = !model.get(HeaderViewProperties.IS_EXPANDED);
+                final boolean newState = !model.get(HeaderViewProperties.IS_COLLAPSED);
                 RecordHistogram.recordSparseHistogram(newState
-                                ? "Omnibox.ToggleSuggestionGroupId.On"
-                                : "Omnibox.ToggleSuggestionGroupId.Off",
+                                ? "Omnibox.ToggleSuggestionGroupId.Off"
+                                : "Omnibox.ToggleSuggestionGroupId.On",
                         groupId);
 
-                model.set(HeaderViewProperties.IS_EXPANDED, newState);
-                mSuggestionHost.setGroupVisibility(groupId, newState);
+                model.set(HeaderViewProperties.IS_COLLAPSED, newState);
+                mSuggestionHost.setGroupCollapsedState(groupId, newState);
             }
         });
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderView.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderView.java
index bdd7e42..9e47b6a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderView.java
@@ -33,7 +33,7 @@
 public class HeaderView extends SimpleHorizontalLayoutView {
     private final TextView mHeaderText;
     private final ImageView mHeaderIcon;
-    private boolean mIsExpanded;
+    private boolean mIsCollapsed;
     private Runnable mOnSelectListener;
 
     /**
@@ -78,9 +78,9 @@
             public void onInitializeAccessibilityNodeInfo(
                     View host, AccessibilityNodeInfoCompat info) {
                 super.onInitializeAccessibilityNodeInfo(host, info);
-                AccessibilityActionCompat action = mIsExpanded
-                        ? AccessibilityActionCompat.ACTION_COLLAPSE
-                        : AccessibilityActionCompat.ACTION_EXPAND;
+                AccessibilityActionCompat action = mIsCollapsed
+                        ? AccessibilityActionCompat.ACTION_EXPAND
+                        : AccessibilityActionCompat.ACTION_COLLAPSE;
 
                 info.addAction(new AccessibilityActionCompat(
                         AccessibilityEvent.TYPE_VIEW_CLICKED, action.getLabel()));
@@ -111,10 +111,10 @@
     /**
      * Specifies whether view should be announced as expanded or collapsed.
      *
-     * @param isExpanded true, if view should be announced as expanded.
+     * @param isCollapsed true, if view should be announced as collapsed.
      */
-    void setExpandedStateForAccessibility(boolean isExpanded) {
-        mIsExpanded = isExpanded;
+    void setCollapsedStateForAccessibility(boolean isCollapsed) {
+        mIsCollapsed = isCollapsed;
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java
index 02e6b97..c1dcf6c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java
@@ -31,11 +31,11 @@
         } else if (propertyKey == SuggestionCommonProperties.LAYOUT_DIRECTION) {
             ViewCompat.setLayoutDirection(
                     view, model.get(SuggestionCommonProperties.LAYOUT_DIRECTION));
-        } else if (propertyKey == HeaderViewProperties.IS_EXPANDED) {
-            boolean isExpanded = model.get(HeaderViewProperties.IS_EXPANDED);
-            view.getIconView().setImageResource(isExpanded ? R.drawable.ic_expand_less_black_24dp
-                                                           : R.drawable.ic_expand_more_black_24dp);
-            view.setExpandedStateForAccessibility(isExpanded);
+        } else if (propertyKey == HeaderViewProperties.IS_COLLAPSED) {
+            boolean isCollapsed = model.get(HeaderViewProperties.IS_COLLAPSED);
+            view.getIconView().setImageResource(isCollapsed ? R.drawable.ic_expand_more_black_24dp
+                                                            : R.drawable.ic_expand_less_black_24dp);
+            view.setCollapsedStateForAccessibility(isCollapsed);
         } else if (propertyKey == HeaderViewProperties.DELEGATE) {
             HeaderViewProperties.Delegate delegate = model.get(HeaderViewProperties.DELEGATE);
             if (delegate != null) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewProperties.java
index bb5eda5..07c2f73b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewProperties.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewProperties.java
@@ -24,13 +24,13 @@
     /** The runnable object that is executed whenever user taps the header suggestion. */
     public static final WritableObjectPropertyKey<Delegate> DELEGATE =
             new WritableObjectPropertyKey<>();
-    /** The expanded state of the header suggestion. */
-    public static final WritableBooleanPropertyKey IS_EXPANDED = new WritableBooleanPropertyKey();
+    /** The collapsed state of the header suggestion. */
+    public static final WritableBooleanPropertyKey IS_COLLAPSED = new WritableBooleanPropertyKey();
     /** The text content to be displayed as a header text. */
     public static final WritableObjectPropertyKey<String> TITLE = new WritableObjectPropertyKey<>();
 
     public static final PropertyKey[] ALL_UNIQUE_KEYS =
-            new PropertyKey[] {DELEGATE, IS_EXPANDED, TITLE};
+            new PropertyKey[] {DELEGATE, IS_COLLAPSED, TITLE};
 
     public static final PropertyKey[] ALL_KEYS =
             PropertyModel.concatKeys(ALL_UNIQUE_KEYS, SuggestionCommonProperties.ALL_KEYS);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java
index b2c7ffa..efdab39c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java
@@ -33,7 +33,7 @@
         if (ChromeVersionInfo.isLocalBuild()
                 && CommandLine.getInstance().hasSwitch(SKIP_WEBAPK_VERIFICATION)) {
             // Tell the WebApkValidator to work for all WebAPKs.
-            WebApkValidator.disableValidationForTesting();
+            WebApkValidator.setDisableValidationForTesting(true);
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java
index 8df1e5e..6e33ca0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java
@@ -84,7 +84,7 @@
 
                 // Stores the source info of WebAPK in WebappDataStorage.
                 WebappRegistry.getInstance().register(
-                        WebappRegistry.webApkIdForPackage(packageName),
+                        WebappIntentUtils.getIdForWebApkPackage(packageName),
                         new WebappRegistry.FetchWebappDataStorageCallback() {
                             @Override
                             public void onWebappDataStorageRetrieved(WebappDataStorage storage) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java
index c1c8ead..5727a19 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java
@@ -408,8 +408,8 @@
         }
 
         WebappExtras webappExtras = new WebappExtras(
-                WebappRegistry.webApkIdForPackage(webApkPackageName), url, scope, primaryIcon, name,
-                shortName, displayMode, orientation, source,
+                WebappIntentUtils.getIdForWebApkPackage(webApkPackageName), url, scope, primaryIcon,
+                name, shortName, displayMode, orientation, source,
                 WebappIntentUtils.colorFromLongColor(backgroundColor), defaultBackgroundColor,
                 false /* isIconGenerated */, isPrimaryIconMaskable, forceNavigation);
         WebApkExtras webApkExtras = new WebApkExtras(webApkPackageName, splashIcon,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java
index 3d911025..0c3f0479bd1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java
@@ -54,7 +54,7 @@
      * @param intent Intent containing info about the app.
      */
     public static BrowserServicesIntentDataProvider create(Intent intent) {
-        String id = WebappIntentUtils.getId(intent);
+        String id = WebappIntentUtils.getIdForHomescreenShortcut(intent);
         String url = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_URL);
         if (id == null || url == null) {
             Log.e(TAG, "Incomplete data provided: " + id + ", " + url);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java
index 27097c9..f2b08c3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java
@@ -70,10 +70,20 @@
         return isLongColorValid(longColor) ? Integer.valueOf((int) longColor) : null;
     }
 
-    public static String getId(Intent intent) {
+    /**
+     * Extracts id from homescreen shortcut intent.
+     */
+    public static String getIdForHomescreenShortcut(Intent intent) {
         return IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_ID);
     }
 
+    /**
+     * Generates id for the passed-in WebAPK package name.
+     */
+    public static String getIdForWebApkPackage(String packageName) {
+        return WebApkConstants.WEBAPK_ID_PREFIX + packageName;
+    }
+
     public static String getUrl(Intent intent) {
         return IntentUtils.safeGetStringExtra(intent, WebApkConstants.EXTRA_URL);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
index ab0760c..aedbc690 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
@@ -186,10 +186,13 @@
      */
     private static LaunchData extractLaunchData(Intent intent) {
         String webApkPackageName = WebappIntentUtils.getWebApkPackageName(intent);
-        boolean isSplashProvidedByWebApk = !TextUtils.isEmpty(webApkPackageName)
+        boolean isForWebApk = !TextUtils.isEmpty(webApkPackageName);
+        boolean isSplashProvidedByWebApk = isForWebApk
                 && IntentUtils.safeGetBooleanExtra(intent, EXTRA_SPLASH_PROVIDED_BY_WEBAPK, false);
-        return new LaunchData(WebappIntentUtils.getId(intent), WebappIntentUtils.getUrl(intent),
-                webApkPackageName, isSplashProvidedByWebApk);
+        String id = isForWebApk ? WebappIntentUtils.getIdForWebApkPackage(webApkPackageName)
+                                : WebappIntentUtils.getIdForHomescreenShortcut(intent);
+        return new LaunchData(
+                id, WebappIntentUtils.getUrl(intent), webApkPackageName, isSplashProvidedByWebApk);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java
index f93b5da..8f71369 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java
@@ -98,13 +98,6 @@
     }
 
     /**
-     * Returns the {@link WebappDataStorage} id for the passed-in WebAPK package name.
-     */
-    public static String webApkIdForPackage(String webApkPackageName) {
-        return WebApkConstants.WEBAPK_ID_PREFIX + webApkPackageName;
-    }
-
-    /**
      * Warm up the WebappRegistry and a specific WebappDataStorage SharedPreferences. Can be called
      * from any thread.
      * @param id The web app id to warm up in addition to the WebappRegistry.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResultUnitTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResultUnitTest.java
index 529db01..5f0b9390 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResultUnitTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteResultUnitTest.java
@@ -15,6 +15,7 @@
 import org.chromium.base.test.BaseJUnit4ClassRunner;
 import org.chromium.base.test.util.Batch;
 import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType;
+import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteResult.GroupDetails;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -41,17 +42,17 @@
         List<OmniboxSuggestion> list2 = Arrays.asList(
                 buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
 
-        SparseArray<String> headers1 = new SparseArray<>();
-        SparseArray<String> headers2 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails1 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails2 = new SparseArray<>();
 
-        headers1.put(10, "Hello");
-        headers1.put(20, "Test");
+        groupsDetails1.put(10, new GroupDetails("Hello", false));
+        groupsDetails1.put(20, new GroupDetails("Test", true));
 
-        headers2.put(10, "Hello");
-        headers2.put(20, "Test");
+        groupsDetails2.put(10, new GroupDetails("Hello", false));
+        groupsDetails2.put(20, new GroupDetails("Test", true));
 
-        AutocompleteResult res1 = new AutocompleteResult(list1, headers1);
-        AutocompleteResult res2 = new AutocompleteResult(list2, headers2);
+        AutocompleteResult res1 = new AutocompleteResult(list1, groupsDetails1);
+        AutocompleteResult res2 = new AutocompleteResult(list2, groupsDetails2);
 
         Assert.assertEquals(res1, res2);
         Assert.assertEquals(res1.hashCode(), res2.hashCode());
@@ -65,17 +66,17 @@
         List<OmniboxSuggestion> list2 = Arrays.asList(
                 buildSuggestionForIndex(2), buildSuggestionForIndex(1), buildSuggestionForIndex(3));
 
-        SparseArray<String> headers1 = new SparseArray<>();
-        SparseArray<String> headers2 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails1 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails2 = new SparseArray<>();
 
-        headers1.put(10, "Hello");
-        headers1.put(20, "Test");
+        groupsDetails1.put(10, new GroupDetails("Hello", false));
+        groupsDetails1.put(20, new GroupDetails("Test", true));
 
-        headers2.put(10, "Hello");
-        headers2.put(20, "Test");
+        groupsDetails2.put(10, new GroupDetails("Hello", false));
+        groupsDetails2.put(20, new GroupDetails("Test", true));
 
-        AutocompleteResult res1 = new AutocompleteResult(list1, headers1);
-        AutocompleteResult res2 = new AutocompleteResult(list2, headers2);
+        AutocompleteResult res1 = new AutocompleteResult(list1, groupsDetails1);
+        AutocompleteResult res2 = new AutocompleteResult(list2, groupsDetails2);
 
         Assert.assertNotEquals(res1, res2);
         Assert.assertNotEquals(res1.hashCode(), res2.hashCode());
@@ -83,22 +84,22 @@
 
     @Test
     @SmallTest
-    public void autocompleteResult_missingGroupHeadersAreNotEqual() {
+    public void autocompleteResult_missingGroupsDetailsAreNotEqual() {
         List<OmniboxSuggestion> list1 = Arrays.asList(
                 buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
         List<OmniboxSuggestion> list2 = Arrays.asList(
                 buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
 
-        SparseArray<String> headers1 = new SparseArray<>();
-        SparseArray<String> headers2 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails1 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails2 = new SparseArray<>();
 
-        headers1.put(10, "Hello");
-        headers1.put(20, "Test");
+        groupsDetails1.put(10, new GroupDetails("Hello", true));
+        groupsDetails1.put(20, new GroupDetails("Test", false));
 
-        headers2.put(10, "Hello");
+        groupsDetails2.put(10, new GroupDetails("Hello", true));
 
-        AutocompleteResult res1 = new AutocompleteResult(list1, headers1);
-        AutocompleteResult res2 = new AutocompleteResult(list2, headers2);
+        AutocompleteResult res1 = new AutocompleteResult(list1, groupsDetails1);
+        AutocompleteResult res2 = new AutocompleteResult(list2, groupsDetails2);
 
         Assert.assertNotEquals(res1, res2);
         Assert.assertNotEquals(res1.hashCode(), res2.hashCode());
@@ -106,24 +107,48 @@
 
     @Test
     @SmallTest
-    public void autocompleteResult_extraGroupHeadersAreNotEqual() {
+    public void autocompleteResult_groupsWithDifferentDefaultExpandedStateAreNotEqual() {
         List<OmniboxSuggestion> list1 = Arrays.asList(
                 buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
         List<OmniboxSuggestion> list2 = Arrays.asList(
                 buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
 
-        SparseArray<String> headers1 = new SparseArray<>();
-        SparseArray<String> headers2 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails1 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails2 = new SparseArray<>();
 
-        headers1.put(10, "Hello");
-        headers1.put(20, "Test");
+        groupsDetails1.put(10, new GroupDetails("Hello", false));
+        groupsDetails1.put(20, new GroupDetails("Test", true));
 
-        headers2.put(10, "Hello");
-        headers2.put(20, "Test");
-        headers2.put(30, "Yikes");
+        groupsDetails2.put(10, new GroupDetails("Hello", false));
+        groupsDetails2.put(20, new GroupDetails("Test", false));
 
-        AutocompleteResult res1 = new AutocompleteResult(list1, headers1);
-        AutocompleteResult res2 = new AutocompleteResult(list2, headers2);
+        AutocompleteResult res1 = new AutocompleteResult(list1, groupsDetails1);
+        AutocompleteResult res2 = new AutocompleteResult(list2, groupsDetails2);
+
+        Assert.assertNotEquals(res1, res2);
+        Assert.assertNotEquals(res1.hashCode(), res2.hashCode());
+    }
+
+    @Test
+    @SmallTest
+    public void autocompleteResult_extraGroupsDetailsAreNotEqual() {
+        List<OmniboxSuggestion> list1 = Arrays.asList(
+                buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
+        List<OmniboxSuggestion> list2 = Arrays.asList(
+                buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
+
+        SparseArray<GroupDetails> groupsDetails1 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails2 = new SparseArray<>();
+
+        groupsDetails1.put(10, new GroupDetails("Hello", false));
+        groupsDetails1.put(20, new GroupDetails("Test", false));
+
+        groupsDetails2.put(10, new GroupDetails("Hello", false));
+        groupsDetails2.put(20, new GroupDetails("Test", false));
+        groupsDetails2.put(30, new GroupDetails("Yikes", false));
+
+        AutocompleteResult res1 = new AutocompleteResult(list1, groupsDetails1);
+        AutocompleteResult res2 = new AutocompleteResult(list2, groupsDetails2);
 
         Assert.assertNotEquals(res1, res2);
         Assert.assertNotEquals(res1.hashCode(), res2.hashCode());
@@ -146,26 +171,26 @@
 
     @Test
     @SmallTest
-    public void autocompleteResult_differentHeadersAreNotEqual() {
+    public void autocompleteResult_differentGroupsDetailsAreNotEqual() {
         List<OmniboxSuggestion> list = Arrays.asList(
                 buildSuggestionForIndex(1), buildSuggestionForIndex(2), buildSuggestionForIndex(3));
 
-        SparseArray<String> headers1 = new SparseArray<>();
-        SparseArray<String> headers2 = new SparseArray<>();
-        SparseArray<String> headers3 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails1 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails2 = new SparseArray<>();
+        SparseArray<GroupDetails> groupsDetails3 = new SparseArray<>();
 
-        headers1.put(10, "Hello");
-        headers1.put(20, "Test");
+        groupsDetails1.put(10, new GroupDetails("Hello", false));
+        groupsDetails1.put(20, new GroupDetails("Test", false));
 
-        headers2.put(10, "Hello");
-        headers2.put(15, "Test");
+        groupsDetails2.put(10, new GroupDetails("Hello", false));
+        groupsDetails2.put(15, new GroupDetails("Test", false));
 
-        headers3.put(10, "Hello");
-        headers3.put(20, "Test 2");
+        groupsDetails3.put(10, new GroupDetails("Hello", false));
+        groupsDetails3.put(20, new GroupDetails("Test 2", false));
 
-        AutocompleteResult res1 = new AutocompleteResult(list, headers1);
-        AutocompleteResult res2 = new AutocompleteResult(list, headers2);
-        AutocompleteResult res3 = new AutocompleteResult(list, headers3);
+        AutocompleteResult res1 = new AutocompleteResult(list, groupsDetails1);
+        AutocompleteResult res2 = new AutocompleteResult(list, groupsDetails2);
+        AutocompleteResult res3 = new AutocompleteResult(list, groupsDetails3);
 
         Assert.assertNotEquals(res1, res2);
         Assert.assertNotEquals(res1, res3);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManagerUnitTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManagerUnitTest.java
index c3f3ca2..ac0df82c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManagerUnitTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/CachedZeroSuggestionsManagerUnitTest.java
@@ -18,6 +18,7 @@
 import org.chromium.base.test.UiThreadTest;
 import org.chromium.base.test.util.Batch;
 import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType;
+import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteResult.GroupDetails;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
 import org.chromium.content_public.browser.test.NativeLibraryTestUtils;
@@ -47,12 +48,12 @@
         final List<OmniboxSuggestion> list2 = data2.getSuggestionsList();
         Assert.assertEquals(list1, list2);
 
-        final SparseArray<String> headers1 = data1.getGroupHeaders();
-        final SparseArray<String> headers2 = data2.getGroupHeaders();
-        Assert.assertEquals(headers1.size(), headers2.size());
-        for (int index = 0; index < headers1.size(); index++) {
-            Assert.assertEquals(headers1.keyAt(index), headers2.keyAt(index));
-            Assert.assertEquals(headers1.valueAt(index), headers2.valueAt(index));
+        final SparseArray<GroupDetails> groupsDetails1 = data1.getGroupsDetails();
+        final SparseArray<GroupDetails> groupsDetails2 = data2.getGroupsDetails();
+        Assert.assertEquals(groupsDetails1.size(), groupsDetails2.size());
+        for (int index = 0; index < groupsDetails1.size(); index++) {
+            Assert.assertEquals(groupsDetails1.keyAt(index), groupsDetails2.keyAt(index));
+            Assert.assertEquals(groupsDetails1.valueAt(index), groupsDetails2.valueAt(index));
         }
     }
 
@@ -146,7 +147,7 @@
     @Test
     @SmallTest
     @UiThreadTest
-    public void groupHeaders_restoreHeadersFromEmptyCache() {
+    public void groupsDetails_restoreDetailsFromEmptyCache() {
         // Note: purge cache explicitly, because tests are run on an actual device
         // and cache may hold content from other test runs.
         AutocompleteResult dataToCache = new AutocompleteResult(null, null);
@@ -158,12 +159,12 @@
     @Test
     @SmallTest
     @UiThreadTest
-    public void groupHeaders_cacheAllSaneGroupHeaders() {
-        SparseArray<String> headers = new SparseArray<>();
-        headers.put(10, "Header For Group 10");
-        headers.put(20, "Header For Group 20");
-        headers.put(30, "Header For Group 30");
-        AutocompleteResult dataToCache = new AutocompleteResult(null, headers);
+    public void groupsDetails_cacheAllSaneGroupDetails() {
+        SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(10, new GroupDetails("Header For Group 10", false));
+        groupsDetails.put(20, new GroupDetails("Header For Group 20", false));
+        groupsDetails.put(30, new GroupDetails("Header For Group 30", false));
+        AutocompleteResult dataToCache = new AutocompleteResult(null, groupsDetails);
         CachedZeroSuggestionsManager.saveToCache(dataToCache);
         AutocompleteResult dataFromCache = CachedZeroSuggestionsManager.readFromCache();
         assertAutocompleteResultEquals(dataToCache, dataFromCache);
@@ -172,31 +173,34 @@
     @Test
     @SmallTest
     @UiThreadTest
-    public void groupHeaders_cachePartiallySaneGroupHeadersDropsInvalidEntries() {
-        SparseArray<String> headers = new SparseArray<>();
-        headers.put(10, "Header For Group 10");
-        headers.put(OmniboxSuggestion.INVALID_GROUP, "Header For Group 20");
-        headers.put(30, null);
+    public void groupsDetails_cachePartiallySaneGroupDetailsDropsInvalidEntries() {
+        SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(10, new GroupDetails("Header For Group 10", false));
+        groupsDetails.put(
+                OmniboxSuggestion.INVALID_GROUP, new GroupDetails("Header For Group 20", true));
+        groupsDetails.put(30, new GroupDetails("", false));
 
-        AutocompleteResult dataToCache = new AutocompleteResult(null, headers);
+        AutocompleteResult dataToCache = new AutocompleteResult(null, groupsDetails);
         CachedZeroSuggestionsManager.saveToCache(dataToCache);
         AutocompleteResult dataFromCache = CachedZeroSuggestionsManager.readFromCache();
 
-        SparseArray<String> validHeaders = new SparseArray<>();
-        validHeaders.put(10, "Header For Group 10");
-        assertAutocompleteResultEquals(dataFromCache, new AutocompleteResult(null, validHeaders));
+        SparseArray<GroupDetails> validGroupsDetails = new SparseArray<>();
+        validGroupsDetails.put(10, new GroupDetails("Header For Group 10", false));
+        assertAutocompleteResultEquals(
+                dataFromCache, new AutocompleteResult(null, validGroupsDetails));
     }
 
     @Test
     @SmallTest
     @UiThreadTest
-    public void groupHeaders_restoreInvalidHeadersFromCache() {
-        SparseArray<String> headers = new SparseArray<>();
-        headers.put(OmniboxSuggestion.INVALID_GROUP, "This group is invalid");
-        headers.put(20, "");
-        headers.put(30, null);
+    public void groupsDetails_restoreInvalidGroupsDetailsFromCache() {
+        SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(
+                OmniboxSuggestion.INVALID_GROUP, new GroupDetails("This group is invalid", true));
+        groupsDetails.put(20, new GroupDetails("", false));
+        groupsDetails.put(30, new GroupDetails("", false));
 
-        AutocompleteResult dataToCache = new AutocompleteResult(null, headers);
+        AutocompleteResult dataToCache = new AutocompleteResult(null, groupsDetails);
         CachedZeroSuggestionsManager.saveToCache(dataToCache);
         AutocompleteResult dataFromCache = CachedZeroSuggestionsManager.readFromCache();
         assertAutocompleteResultEquals(dataFromCache, new AutocompleteResult(null, null));
@@ -208,10 +212,10 @@
     public void dropSuggestions_suggestionsWithValidGroupsAssociation() {
         List<OmniboxSuggestion> list = buildDummySuggestionsList(2, false);
         list.add(createSuggestionBuilder(33).setGroupId(1).build());
-        SparseArray<String> headers = new SparseArray<>();
-        headers.put(1, "Valid Header");
+        SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(1, new GroupDetails("Valid Header", true));
 
-        AutocompleteResult dataToCache = new AutocompleteResult(list, headers);
+        AutocompleteResult dataToCache = new AutocompleteResult(list, groupsDetails);
         CachedZeroSuggestionsManager.saveToCache(dataToCache);
         AutocompleteResult dataFromCache = CachedZeroSuggestionsManager.readFromCache();
         assertAutocompleteResultEquals(dataToCache, dataFromCache);
@@ -270,38 +274,41 @@
     @Test
     @SmallTest
     @UiThreadTest
-    public void malformedCache_dropsMissingGroupHeaders() {
+    public void malformedCache_dropsMissingGroupDetails() {
         // Clear cache explicitly, otherwise this test will be flaky until the suite is re-executed.
         ContextUtils.getAppSharedPreferences().edit().clear().apply();
 
         final SharedPreferencesManager manager = SharedPreferencesManager.getInstance();
 
-        // Write 3 wrong group headers to the cache
-        SparseArray<String> headers = new SparseArray<>();
-        headers.put(12, "Valid group");
-        headers.put(34, "");
-        headers.put(OmniboxSuggestion.INVALID_GROUP, "Invalid group");
-        AutocompleteResult invalidDataToCache = new AutocompleteResult(null, headers);
+        // Write 3 wrong group groupsDetails to the cache
+        SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(12, new GroupDetails("Valid group", true));
+        groupsDetails.put(34, new GroupDetails("", false));
+        groupsDetails.put(OmniboxSuggestion.INVALID_GROUP, new GroupDetails("Invalid group", true));
+        AutocompleteResult invalidDataToCache = new AutocompleteResult(null, groupsDetails);
         CachedZeroSuggestionsManager.saveToCache(invalidDataToCache);
 
         // Report that we actually have 4 items in the cache.
         manager.writeInt(ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_LIST_SIZE, 4);
 
         // Read raw suggestions from the cache. Note that the sparse array will only have 3 elements
-        // because we put one item with INVALID_GROUP, and another such element will be deduced from
-        // missing data.
-        SparseArray<String> rawGroupHeaders =
-                CachedZeroSuggestionsManager.readCachedGroupHeaders(manager);
-        Assert.assertEquals(3, rawGroupHeaders.size());
-        Assert.assertEquals(rawGroupHeaders.get(12), "Valid group");
-        Assert.assertEquals(rawGroupHeaders.get(34), "");
-        // missing group entry will overwrite our invalid group definition
-        Assert.assertNull(rawGroupHeaders.get(OmniboxSuggestion.INVALID_GROUP));
+        // because we put one item with INVALID_GROUP, and additional INVALID_GROUP will be deduced
+        // from missing data with null title and default expanded state set to true.
+        SparseArray<GroupDetails> rawGroupsDetails =
+                CachedZeroSuggestionsManager.readCachedGroupsDetails(manager);
+        Assert.assertEquals(3, rawGroupsDetails.size());
+        Assert.assertEquals(rawGroupsDetails.get(12).title, "Valid group");
+        Assert.assertEquals(rawGroupsDetails.get(12).collapsedByDefault, true);
+        Assert.assertEquals(rawGroupsDetails.get(34).title, "");
+        Assert.assertEquals(rawGroupsDetails.get(34).collapsedByDefault, false);
+        Assert.assertEquals(rawGroupsDetails.get(OmniboxSuggestion.INVALID_GROUP).title, null);
+        Assert.assertEquals(
+                rawGroupsDetails.get(OmniboxSuggestion.INVALID_GROUP).collapsedByDefault, false);
 
         // Cache recovery however should be smart here and remove items that make no sense.
-        SparseArray<String> wantHeaders = new SparseArray<>();
-        wantHeaders.put(12, "Valid group");
-        AutocompleteResult wantDataFromCache = new AutocompleteResult(null, wantHeaders);
+        SparseArray<GroupDetails> wantGroupsDetails = new SparseArray<>();
+        wantGroupsDetails.put(12, new GroupDetails("Valid group", true));
+        AutocompleteResult wantDataFromCache = new AutocompleteResult(null, wantGroupsDetails);
         AutocompleteResult dataFromCache = CachedZeroSuggestionsManager.readFromCache();
 
         assertAutocompleteResultEquals(dataFromCache, wantDataFromCache);
@@ -310,15 +317,16 @@
     @Test
     @SmallTest
     @UiThreadTest
-    public void removeInvalidSuggestions_dropsInvalidSuggestionsAndHeaders() {
-        // Write 3 wrong group headers to the cache
-        SparseArray<String> headersExpected = new SparseArray<>();
-        headersExpected.put(12, "Valid group");
+    public void removeInvalidSuggestions_dropsInvalidSuggestionsAndGroupsDetails() {
+        // Write 3 wrong group groupsDetails to the cache
+        SparseArray<GroupDetails> groupsDetailsExpected = new SparseArray<>();
+        groupsDetailsExpected.put(12, new GroupDetails("Valid group", true));
 
-        SparseArray<String> headersWithInvalidItems = new SparseArray<>();
-        headersWithInvalidItems.put(12, "Valid group");
-        headersWithInvalidItems.put(34, "");
-        headersWithInvalidItems.put(OmniboxSuggestion.INVALID_GROUP, "Invalid group");
+        SparseArray<GroupDetails> groupsDetailsWithInvalidItems = new SparseArray<>();
+        groupsDetailsWithInvalidItems.put(12, new GroupDetails("Valid group", true));
+        groupsDetailsWithInvalidItems.put(34, new GroupDetails("", false));
+        groupsDetailsWithInvalidItems.put(
+                OmniboxSuggestion.INVALID_GROUP, new GroupDetails("Invalid group", true));
 
         List<OmniboxSuggestion> listExpected = buildDummySuggestionsList(2, false);
         listExpected.add(createSuggestionBuilder(72).setGroupId(12).build());
@@ -330,11 +338,12 @@
         listWithInvalidItems.add(createSuggestionBuilder(74).setGroupId(34).build());
 
         AutocompleteResult dataWithInvalidItems =
-                new AutocompleteResult(listWithInvalidItems, headersWithInvalidItems);
-        AutocompleteResult dataExpected = new AutocompleteResult(listExpected, headersExpected);
+                new AutocompleteResult(listWithInvalidItems, groupsDetailsWithInvalidItems);
+        AutocompleteResult dataExpected =
+                new AutocompleteResult(listExpected, groupsDetailsExpected);
 
-        CachedZeroSuggestionsManager.removeInvalidSuggestionsAndGroupHeaders(
-                dataWithInvalidItems.getSuggestionsList(), dataWithInvalidItems.getGroupHeaders());
+        CachedZeroSuggestionsManager.removeInvalidSuggestionsAndGroupsDetails(
+                dataWithInvalidItems.getSuggestionsList(), dataWithInvalidItems.getGroupsDetails());
         assertAutocompleteResultEquals(dataWithInvalidItems, dataExpected);
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilderUnitTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilderUnitTest.java
index 4d3ceff5..e9f4ac0 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilderUnitTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilderUnitTest.java
@@ -34,6 +34,7 @@
 import org.chromium.base.test.util.Batch;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType;
+import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteResult.GroupDetails;
 import org.chromium.chrome.browser.omnibox.suggestions.header.HeaderProcessor;
 import org.chromium.chrome.test.util.browser.Features;
 import org.chromium.chrome.test.util.browser.Features.DisableFeatures;
@@ -102,8 +103,8 @@
     @UiThreadTest
     public void headers_buildsHeaderForFirstSuggestion() {
         final List<OmniboxSuggestion> actualList = new ArrayList<>();
-        final SparseArray<String> headers = new SparseArray<>();
-        headers.put(1, "Header 1");
+        final SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(1, new GroupDetails("Header 1", false));
 
         OmniboxSuggestion suggestion =
                 OmniboxSuggestionBuilderForTest.searchWithType(OmniboxSuggestionType.SEARCH_SUGGEST)
@@ -114,8 +115,8 @@
         actualList.add(suggestion);
 
         final InOrder verifier = inOrder(mMockSuggestionProcessor, mMockHeaderProcessor);
-        final List<DropdownItemViewInfo> model =
-                mBuilder.buildDropdownViewInfoList(new AutocompleteResult(actualList, headers));
+        final List<DropdownItemViewInfo> model = mBuilder.buildDropdownViewInfoList(
+                new AutocompleteResult(actualList, groupsDetails));
 
         verifier.verify(mMockHeaderProcessor, times(1)).populateModel(any(), eq(1), eq("Header 1"));
         verifier.verify(mMockSuggestionProcessor, times(1))
@@ -140,9 +141,9 @@
     @UiThreadTest
     public void headers_buildsHeadersOnlyWhenGroupChanges() {
         final List<OmniboxSuggestion> actualList = new ArrayList<>();
-        final SparseArray<String> headers = new SparseArray<>();
-        headers.put(1, "Header 1");
-        headers.put(2, "Header 2");
+        final SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(1, new GroupDetails("Header 1", false));
+        groupsDetails.put(2, new GroupDetails("Header 2", false));
 
         OmniboxSuggestion suggestionWithNoGroup =
                 OmniboxSuggestionBuilderForTest.searchWithType(OmniboxSuggestionType.SEARCH_SUGGEST)
@@ -163,8 +164,8 @@
         actualList.add(suggestionForGroup2);
 
         final InOrder verifier = inOrder(mMockSuggestionProcessor, mMockHeaderProcessor);
-        final List<DropdownItemViewInfo> model =
-                mBuilder.buildDropdownViewInfoList(new AutocompleteResult(actualList, headers));
+        final List<DropdownItemViewInfo> model = mBuilder.buildDropdownViewInfoList(
+                new AutocompleteResult(actualList, groupsDetails));
 
         verifier.verify(mMockSuggestionProcessor, times(1))
                 .populateModel(eq(suggestionWithNoGroup), any(), eq(0));
@@ -232,8 +233,8 @@
     @UiThreadTest
     public void grouping_noGroupingForSuggestionsWithHeaders() {
         final List<Pair<OmniboxSuggestion, SuggestionProcessor>> actualList = new ArrayList<>();
-        final SparseArray<String> headers = new SparseArray<>();
-        headers.put(1, "Header 1");
+        final SparseArray<GroupDetails> groupsDetails = new SparseArray<>();
+        groupsDetails.put(1, new GroupDetails("Header 1", false));
 
         OmniboxSuggestionBuilderForTest builder =
                 OmniboxSuggestionBuilderForTest.searchWithType(OmniboxSuggestionType.SEARCH_SUGGEST)
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java
index 6761f8d2..f9c8c3a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java
@@ -12,6 +12,7 @@
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
+import android.util.SparseArray;
 import android.view.View;
 
 import androidx.test.filters.SmallTest;
@@ -26,6 +27,7 @@
 import org.chromium.base.test.BaseJUnit4ClassRunner;
 import org.chromium.base.test.util.Batch;
 import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme;
+import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteResult.GroupDetails;
 import org.chromium.ui.modelutil.ListObservable.ListObserver;
 import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
 import org.chromium.ui.modelutil.PropertyModel;
@@ -115,25 +117,25 @@
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2),
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2));
 
-        mManager.setSourceViewInfoList(list);
+        mManager.setSourceViewInfoList(list, new SparseArray<GroupDetails>());
         verifyModelEquals(list);
 
         // Monitor updates moving forward.
         reset(mListObserver);
 
         // Collapse group 1.
-        mManager.setGroupVisibility(1, false);
+        mManager.setGroupCollapsedState(1, true);
         verify(mListObserver, times(1)).onItemRangeRemoved(any(), eq(1), eq(2));
         // Collapse group 2.
-        mManager.setGroupVisibility(2, false);
+        mManager.setGroupCollapsedState(2, true);
         verify(mListObserver, times(1)).onItemRangeRemoved(any(), eq(2), eq(2));
 
         // Expand group 1.
-        mManager.setGroupVisibility(1, true);
+        mManager.setGroupCollapsedState(1, false);
         verify(mListObserver, times(1)).onItemRangeInserted(any(), eq(1), eq(2));
 
         // Expand group 2.
-        mManager.setGroupVisibility(2, true);
+        mManager.setGroupCollapsedState(2, false);
         verify(mListObserver, times(1)).onItemRangeInserted(any(), eq(4), eq(2));
 
         verifyNoMoreInteractions(mListObserver);
@@ -141,7 +143,7 @@
 
     @Test
     @SmallTest
-    public void groupHandling_toggleGroupVisibility() {
+    public void groupHandling_toggleGroupExpandedState() {
         final List<DropdownItemViewInfo> listWithBothGroupsExpanded = Arrays.asList(
                 // Group 1: header + 2 suggestions
                 new DropdownItemViewInfo(mHeaderProcessor, mModel, 1),
@@ -152,36 +154,96 @@
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2),
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2));
 
-        mManager.setSourceViewInfoList(listWithBothGroupsExpanded);
+        mManager.setSourceViewInfoList(listWithBothGroupsExpanded, new SparseArray<GroupDetails>());
         verifyModelEquals(listWithBothGroupsExpanded);
 
         // Toggle group 1.
         final List<DropdownItemViewInfo> listWithGroup1Collapsed = new ArrayList<>();
         listWithGroup1Collapsed.add(listWithBothGroupsExpanded.get(0));
         listWithGroup1Collapsed.addAll(listWithBothGroupsExpanded.subList(3, 6));
-        mManager.setGroupVisibility(1, false);
+        mManager.setGroupCollapsedState(1, true);
         verifyModelEquals(listWithGroup1Collapsed);
-        mManager.setGroupVisibility(1, true);
+        mManager.setGroupCollapsedState(1, false);
         verifyModelEquals(listWithBothGroupsExpanded);
 
         // Toggle group 2.
         final List<DropdownItemViewInfo> listWithGroup2Collapsed =
                 listWithBothGroupsExpanded.subList(0, 4);
-        mManager.setGroupVisibility(2, false);
+        mManager.setGroupCollapsedState(2, true);
         verifyModelEquals(listWithGroup2Collapsed);
-        mManager.setGroupVisibility(2, true);
+        mManager.setGroupCollapsedState(2, false);
         verifyModelEquals(listWithBothGroupsExpanded);
 
         // Toggle both groups.
         final List<DropdownItemViewInfo> listWithBothGroupsCollapsed =
                 listWithGroup1Collapsed.subList(0, 2);
-        mManager.setGroupVisibility(2, false);
+        mManager.setGroupCollapsedState(2, true);
         verifyModelEquals(listWithGroup2Collapsed);
-        mManager.setGroupVisibility(1, false);
+        mManager.setGroupCollapsedState(1, true);
         verifyModelEquals(listWithBothGroupsCollapsed);
-        mManager.setGroupVisibility(2, true);
+        mManager.setGroupCollapsedState(2, false);
         verifyModelEquals(listWithGroup1Collapsed);
-        mManager.setGroupVisibility(1, true);
+        mManager.setGroupCollapsedState(1, false);
+        verifyModelEquals(listWithBothGroupsExpanded);
+    }
+
+    @Test
+    @SmallTest
+    public void groupHandling_defaultGroupExpandedState() {
+        final List<DropdownItemViewInfo> listWithBothGroupsExpanded = Arrays.asList(
+                // Group 1: header + 2 suggestions
+                new DropdownItemViewInfo(mHeaderProcessor, mModel, 1),
+                new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 1),
+                new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 1),
+                // Group 2: header + 2 suggestions
+                new DropdownItemViewInfo(mHeaderProcessor, mModel, 2),
+                new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2),
+                new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2));
+
+        // Receive suggestions list with group 1 default-collapsed.
+        mManager.setSourceViewInfoList(listWithBothGroupsExpanded, new SparseArray<GroupDetails>() {
+            {
+                put(1, new GroupDetails("Collapsed", true));
+                put(2, new GroupDetails("Expanded", false));
+            }
+        });
+
+        final List<DropdownItemViewInfo> listWithGroup1Collapsed = new ArrayList<>();
+        listWithGroup1Collapsed.add(listWithBothGroupsExpanded.get(0));
+        listWithGroup1Collapsed.addAll(listWithBothGroupsExpanded.subList(3, 6));
+        verifyModelEquals(listWithGroup1Collapsed);
+
+        // Expand suggestions for group 1.
+        mManager.setGroupCollapsedState(1, false);
+        verifyModelEquals(listWithBothGroupsExpanded);
+
+        // Receive suggestions list with group 2 default-collapsed.
+        mManager.setSourceViewInfoList(listWithBothGroupsExpanded, new SparseArray<GroupDetails>() {
+            {
+                put(1, new GroupDetails("Expanded", false));
+                put(2, new GroupDetails("Collapsed", true));
+            }
+        });
+        final List<DropdownItemViewInfo> listWithGroup2Collapsed =
+                listWithBothGroupsExpanded.subList(0, 4);
+        verifyModelEquals(listWithGroup2Collapsed);
+        // Expand suggestions for group 2.
+        mManager.setGroupCollapsedState(2, false);
+        verifyModelEquals(listWithBothGroupsExpanded);
+
+        // Receive suggestions list with both groups default-collapsed.
+        mManager.setSourceViewInfoList(listWithBothGroupsExpanded, new SparseArray<GroupDetails>() {
+            {
+                put(1, new GroupDetails("Collapsed", true));
+                put(2, new GroupDetails("Collapsed", true));
+            }
+        });
+        final List<DropdownItemViewInfo> listWithBothGroupsCollapsed =
+                listWithGroup1Collapsed.subList(0, 2);
+        verifyModelEquals(listWithBothGroupsCollapsed);
+        mManager.setGroupCollapsedState(2, false);
+        verifyModelEquals(listWithGroup1Collapsed);
+        mManager.setGroupCollapsedState(1, false);
         verifyModelEquals(listWithBothGroupsExpanded);
     }
 
@@ -198,15 +260,15 @@
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2),
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2));
 
-        mManager.setSourceViewInfoList(list);
+        mManager.setSourceViewInfoList(list, new SparseArray<GroupDetails>());
         verifyModelEquals(list);
 
         // Expand group 1.
-        mManager.setGroupVisibility(1, true);
+        mManager.setGroupCollapsedState(1, false);
         verifyModelEquals(list);
 
         // Expand group 2.
-        mManager.setGroupVisibility(2, true);
+        mManager.setGroupCollapsedState(2, false);
         verifyModelEquals(list);
     }
 
@@ -223,24 +285,24 @@
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2),
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2));
 
-        mManager.setSourceViewInfoList(list);
+        mManager.setSourceViewInfoList(list, new SparseArray<GroupDetails>());
         verifyModelEquals(list);
 
         // Collapse group 1.
         final List<DropdownItemViewInfo> listWithGroup1Collapsed = new ArrayList<>();
         listWithGroup1Collapsed.add(list.get(0));
         listWithGroup1Collapsed.addAll(list.subList(3, 6));
-        mManager.setGroupVisibility(1, false);
+        mManager.setGroupCollapsedState(1, true);
         verifyModelEquals(listWithGroup1Collapsed);
-        mManager.setGroupVisibility(1, false);
+        mManager.setGroupCollapsedState(1, true);
         verifyModelEquals(listWithGroup1Collapsed);
 
         // Collapse group 2.
         final List<DropdownItemViewInfo> listWithBothGroupsCollapsed =
                 listWithGroup1Collapsed.subList(0, 2);
-        mManager.setGroupVisibility(2, false);
+        mManager.setGroupCollapsedState(2, true);
         verifyModelEquals(listWithBothGroupsCollapsed);
-        mManager.setGroupVisibility(2, false);
+        mManager.setGroupCollapsedState(2, true);
         verifyModelEquals(listWithBothGroupsCollapsed);
     }
 
@@ -264,12 +326,12 @@
                         new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 1),
                         new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 1));
 
-        mManager.setSourceViewInfoList(list1);
+        mManager.setSourceViewInfoList(list1, new SparseArray<GroupDetails>());
         verifyModelEquals(list1);
 
         mManager.clear();
 
-        mManager.setSourceViewInfoList(list2);
+        mManager.setSourceViewInfoList(list2, new SparseArray<GroupDetails>());
         verifyModelEquals(list2);
     }
 
@@ -284,7 +346,7 @@
                         new DropdownItemViewInfo(mBasicSuggestionProcessor,
                                 new PropertyModel(SuggestionCommonProperties.ALL_KEYS), 1));
 
-        mManager.setSourceViewInfoList(list);
+        mManager.setSourceViewInfoList(list, new SparseArray<GroupDetails>());
         verifyModelEquals(list);
         verifyPropertyValues(View.LAYOUT_DIRECTION_INHERIT, OmniboxTheme.LIGHT_THEME);
 
@@ -306,7 +368,7 @@
                         new PropertyModel(SuggestionCommonProperties.ALL_KEYS), 2),
                 new DropdownItemViewInfo(mBasicSuggestionProcessor,
                         new PropertyModel(SuggestionCommonProperties.ALL_KEYS), 2));
-        mManager.setSourceViewInfoList(list);
+        mManager.setSourceViewInfoList(list, new SparseArray<GroupDetails>());
         verifyModelEquals(list);
         verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, OmniboxTheme.INCOGNITO);
     }
@@ -324,7 +386,7 @@
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2),
                 new DropdownItemViewInfo(mBasicSuggestionProcessor, mModel, 2));
 
-        mManager.setSourceViewInfoList(list);
+        mManager.setSourceViewInfoList(list, new SparseArray<GroupDetails>());
         verifyModelEquals(list);
         reset(mBasicSuggestionProcessor);
         reset(mHeaderProcessor);
@@ -334,7 +396,7 @@
         verify(mBasicSuggestionProcessor, times(4)).recordItemPresented(any());
 
         // Collapse group 1.
-        mManager.setGroupVisibility(1, false);
+        mManager.setGroupCollapsedState(1, true);
         reset(mBasicSuggestionProcessor);
         reset(mHeaderProcessor);
 
@@ -343,7 +405,7 @@
         // This time we only show the 2 suggestions belonging to group 2.
         verify(mBasicSuggestionProcessor, times(2)).recordItemPresented(any());
 
-        mManager.setGroupVisibility(2, false);
+        mManager.setGroupCollapsedState(2, true);
         reset(mBasicSuggestionProcessor);
         reset(mHeaderProcessor);
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/WebXrArHitTestTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/WebXrArHitTestTest.java
index 6d6487a..622f54a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/WebXrArHitTestTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/WebXrArHitTestTest.java
@@ -21,7 +21,6 @@
 import org.chromium.base.test.params.ParameterSet;
 import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.MinAndroidSdkLevel;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.vr.rules.ArPlaybackFile;
@@ -82,7 +81,6 @@
      */
     @Test
     @MediumTest
-    @DisabledTest(message = "https://crbug.com/1112773")
     @XrActivityRestriction({XrActivityRestriction.SupportedActivity.ALL})
     @ArPlaybackFile("chrome/test/data/xr/ar_playback_datasets/floor_session_12s_30fps.mp4")
     public void testHitTestResultsAvailableInSubsequentFrame() {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java
index b3b7532..903dff7 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java
@@ -57,7 +57,7 @@
                 Uri.parse(mActivityTestRule.getEmbeddedTestServerRule().getServer().getURL("/"));
         CommandLine.getInstance().appendSwitchWithValue(
                 ContentSwitches.HOST_RESOLVER_RULES, "MAP * " + mapToUri.getAuthority());
-        WebApkValidator.disableValidationForTesting();
+        WebApkValidator.setDisableValidationForTesting(true);
     }
 
     /**
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationUnitTest.java
index fa2f285..3a5e26c 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationUnitTest.java
@@ -76,7 +76,7 @@
         mShadowApplication.setSystemService(Context.USER_SERVICE, userManager);
 
         FirstRunStatus.setFirstRunFlowComplete(false);
-        WebApkValidator.disableValidationForTesting();
+        WebApkValidator.setDisableValidationForTesting(true);
     }
 
     /** Checks that the intent component targets the passed-in class. */
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinderUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinderUnitTest.java
index 6de193ac..843eef3 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinderUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinderUnitTest.java
@@ -66,22 +66,22 @@
     @Test
     public void actionIcon_iconReflectsExpandedState() {
         // Expand.
-        mModel.set(HeaderViewProperties.IS_EXPANDED, true);
+        mModel.set(HeaderViewProperties.IS_COLLAPSED, false);
         verify(mHeaderIcon, times(1)).setImageResource(R.drawable.ic_expand_less_black_24dp);
 
         // Collapse.
-        mModel.set(HeaderViewProperties.IS_EXPANDED, false);
+        mModel.set(HeaderViewProperties.IS_COLLAPSED, true);
         verify(mHeaderIcon, times(1)).setImageResource(R.drawable.ic_expand_more_black_24dp);
     }
 
     @Test
     public void headerView_accessibilityStringReflectsExpandedState() {
         // Expand without title.
-        mModel.set(HeaderViewProperties.IS_EXPANDED, true);
-        verify(mHeaderView, times(1)).setExpandedStateForAccessibility(true);
+        mModel.set(HeaderViewProperties.IS_COLLAPSED, false);
+        verify(mHeaderView, times(1)).setCollapsedStateForAccessibility(false);
 
-        mModel.set(HeaderViewProperties.IS_EXPANDED, false);
-        verify(mHeaderView, times(1)).setExpandedStateForAccessibility(false);
+        mModel.set(HeaderViewProperties.IS_COLLAPSED, true);
+        verify(mHeaderView, times(1)).setCollapsedStateForAccessibility(true);
     }
 
     @Test
@@ -125,7 +125,7 @@
         final AccessibilityNodeInfo info = mock(AccessibilityNodeInfo.class);
 
         // Expand.
-        mModel.set(HeaderViewProperties.IS_EXPANDED, true);
+        mModel.set(HeaderViewProperties.IS_COLLAPSED, false);
         mHeaderView.onInitializeAccessibilityNodeInfo(info);
         verify(info, times(1)).addAction(AccessibilityAction.ACTION_COLLAPSE);
         verify(info, never()).addAction(AccessibilityAction.ACTION_EXPAND);
@@ -133,7 +133,7 @@
         reset(info);
 
         // Collapse.
-        mModel.set(HeaderViewProperties.IS_EXPANDED, false);
+        mModel.set(HeaderViewProperties.IS_COLLAPSED, true);
         mHeaderView.onInitializeAccessibilityNodeInfo(info);
         verify(info, never()).addAction(AccessibilityAction.ACTION_COLLAPSE);
         verify(info, times(1)).addAction(AccessibilityAction.ACTION_EXPAND);
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
index 3264792..1b613b6 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
@@ -261,7 +261,8 @@
     }
 
     private void registerStorageForWebApkPackage(String webApkPackageName) {
-        WebappRegistry.getInstance().register(WebappRegistry.webApkIdForPackage(webApkPackageName),
+        WebappRegistry.getInstance().register(
+                WebappIntentUtils.getIdForWebApkPackage(webApkPackageName),
                 new WebappRegistry.FetchWebappDataStorageCallback() {
                     @Override
                     public void onWebappDataStorageRetrieved(WebappDataStorage storage) {}
@@ -270,7 +271,7 @@
 
     private static WebappDataStorage getStorage(String packageName) {
         return WebappRegistry.getInstance().getWebappDataStorage(
-                WebappRegistry.webApkIdForPackage(packageName));
+                WebappIntentUtils.getIdForWebApkPackage(packageName));
     }
 
     /**
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarControllerTest.java
index 9a602ea..abd5fbb 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarControllerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarControllerTest.java
@@ -67,7 +67,7 @@
     }
 
     private WebappDataStorage registerStorageForWebApk(String packageName) {
-        String id = WebappRegistry.webApkIdForPackage(packageName);
+        String id = WebappIntentUtils.getIdForWebApkPackage(packageName);
         WebappRegistry.getInstance().register(id, (storage) -> {});
         return WebappRegistry.getInstance().getWebappDataStorage(id);
     }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java
index c0963c3..ca18eedd 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java
@@ -4,17 +4,26 @@
 
 package org.chromium.chrome.browser.webapps;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
 import android.content.Intent;
 import android.os.Bundle;
 
-import org.junit.Assert;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
 
+import org.chromium.base.CommandLine;
 import org.chromium.base.test.BaseRobolectricTestRunner;
-import org.chromium.chrome.browser.ShortcutHelper;
+import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.components.webapk.lib.client.WebApkValidator;
 import org.chromium.components.webapk.lib.common.WebApkMetaDataKeys;
 import org.chromium.webapk.lib.common.WebApkConstants;
 import org.chromium.webapk.test.WebApkTestHelper;
@@ -26,24 +35,81 @@
     private static final String WEBAPK_PACKAGE_NAME = "org.chromium.webapk.test_package";
     private static final String START_URL = "https://www.google.com/scope/a_is_for_apple";
 
+    @Before
+    public void setUp() {
+        CommandLine.getInstance().appendSwitchWithValue(
+                ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, null);
+        WebApkValidator.setDisableValidationForTesting(true);
+    }
+
+    @After
+    public void tearDown() {
+        WebApkValidator.setDisableValidationForTesting(false);
+    }
+
     /**
      * Test that WebappLauncherActivity modifies the passed-in intent so that
      * WebApkIntentDataProviderFactory#create() returns null if the intent does not refer to a valid
      * WebAPK.
      */
     @Test
-    public void tryCreateWebappInfoAltersIntentIfNotValidWebApk() {
+    public void testTryCreateWebappInfoAltersIntentIfNotValidWebApk() {
+        WebApkValidator.setDisableValidationForTesting(false);
+
+        registerWebApk(WEBAPK_PACKAGE_NAME, START_URL);
+        Intent intent = WebApkTestHelper.createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
+
+        assertNotNull(WebApkIntentDataProviderFactory.create(intent));
+        Robolectric.buildActivity(WebappLauncherActivity.class, intent).create();
+        assertNull(WebApkIntentDataProviderFactory.create(intent));
+    }
+
+    /**
+     * Test the launch intent created by {@link WebappLauncherActivity} for old-style WebAPKs.
+     */
+    @Test
+    public void testOldStyleLaunchIntent() {
+        registerWebApk(WEBAPK_PACKAGE_NAME, START_URL);
+
+        Intent intent = WebApkTestHelper.createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
+        Robolectric.buildActivity(WebappLauncherActivity.class, intent).create();
+
+        Intent launchIntent = getNextStartedActivity();
+        assertEquals(WebappActivity.class.getName(), launchIntent.getComponent().getClassName());
+        // WebAPK package name should be part of the intent URI to enable launching multiple
+        // WebAPKs.
+        assertEquals("webapp://webapk-" + WEBAPK_PACKAGE_NAME, launchIntent.getDataString());
+        assertTrue((launchIntent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK) != 0);
+        assertNotNull(WebApkIntentDataProviderFactory.create(launchIntent));
+    }
+
+    /**
+     * Test the launch intent created by {@link WebappLauncherActivity} for new-style WebAPKs.
+     */
+    @Test
+    public void testNewStyleLaunchIntent() {
+        registerWebApk(WEBAPK_PACKAGE_NAME, START_URL);
+
+        Intent intent = WebApkTestHelper.createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
+        intent.putExtra(WebApkConstants.EXTRA_SPLASH_PROVIDED_BY_WEBAPK, true);
+        Robolectric.buildActivity(WebappLauncherActivity.class, intent).create();
+
+        Intent launchIntent = getNextStartedActivity();
+        assertEquals(
+                SameTaskWebApkActivity.class.getName(), launchIntent.getComponent().getClassName());
+        assertEquals(launchIntent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK, 0);
+        assertNotNull(WebApkIntentDataProviderFactory.create(launchIntent));
+    }
+
+    private void registerWebApk(String webApkPackage, String startUrl) {
         Bundle bundle = new Bundle();
         bundle.putString(WebApkMetaDataKeys.START_URL, START_URL);
         WebApkTestHelper.registerWebApkWithMetaData(
-                WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */);
+                webApkPackage, bundle, null /* shareTargetMetaData */);
+        WebApkTestHelper.addIntentFilterForUrl(webApkPackage, startUrl);
+    }
 
-        Intent intent = new Intent();
-        intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, WEBAPK_PACKAGE_NAME);
-        intent.putExtra(ShortcutHelper.EXTRA_URL, START_URL);
-
-        Assert.assertNotNull(WebApkIntentDataProviderFactory.create(intent));
-        Robolectric.buildActivity(WebappLauncherActivity.class, intent).create();
-        Assert.assertNull(WebApkIntentDataProviderFactory.create(intent));
+    private Intent getNextStartedActivity() {
+        return ShadowApplication.getInstance().getNextStartedActivity();
     }
 }
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 4f2e51c2..194ab46 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -1751,6 +1751,10 @@
         desc="Message shown in the download shelf when Chrome recommends uploading the file for additional scanning">
         <ph name="FILE_NAME">$1<ex>bla.exe</ex></ph> may be dangerous. Send to Google Advanced Protection for scanning?
       </message>
+      <message name="IDS_PROMPT_APP_DEEP_SCANNING_ALTERNATE"
+        desc="Message shown in the download shelf when Chrome recommends uploading the file for additional scanning.">
+        <ph name="FILE_NAME">$1<ex>bla.exe</ex></ph> is unknown. Advanced Protection recommends sending this file to Google for scanning.
+      </message>
       <message name="IDS_BLOCK_REASON_UNCOMMON_DOWNLOAD"
          desc="Message shown to the user on chrome://downloads page to explain that this download is blocked because it is uncommon.">
         This file is not commonly downloaded and may be dangerous.
@@ -1865,6 +1869,10 @@
                desc="Text shown to upload a file for deep scanning.">
         Send
       </message>
+      <message name="IDS_SCAN_DOWNLOAD_ALTERNATE"
+               desc="Text shown to upload a file for deep scanning.">
+        Scan
+      </message>
 
       <!-- Download Tab Items -->
       <message name="IDS_DOWNLOAD_LINK_PAUSE"
@@ -5668,6 +5676,9 @@
       <message name="IDS_TOOLTIP_MIC_SEARCH" desc="The tooltip for search-by-voice button">
         Search by voice
       </message>
+      <message name="IDS_TOOLTIP_READ_LATER_BUTTON" desc="The tooltip for the read-later button">
+        Read later
+      </message>
       <message name="IDS_TOOLTIP_SAVE_CREDIT_CARD" desc="The tooltip for the icon that shows the save credit card bubble">
         Save card
       </message>
diff --git a/chrome/app/generated_resources_grd/IDS_PROMPT_APP_DEEP_SCANNING_ALTERNATE.png.sha1 b/chrome/app/generated_resources_grd/IDS_PROMPT_APP_DEEP_SCANNING_ALTERNATE.png.sha1
new file mode 100644
index 0000000..7b8d56c
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_PROMPT_APP_DEEP_SCANNING_ALTERNATE.png.sha1
@@ -0,0 +1 @@
+dec4ef455110fd5925868390045c49bcf668e325
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_SCAN_DOWNLOAD_ALTERNATE.png.sha1 b/chrome/app/generated_resources_grd/IDS_SCAN_DOWNLOAD_ALTERNATE.png.sha1
new file mode 100644
index 0000000..7b8d56c
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_SCAN_DOWNLOAD_ALTERNATE.png.sha1
@@ -0,0 +1 @@
+dec4ef455110fd5925868390045c49bcf668e325
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TOOLTIP_READ_LATER_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_TOOLTIP_READ_LATER_BUTTON.png.sha1
new file mode 100644
index 0000000..6b01db7
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_TOOLTIP_READ_LATER_BUTTON.png.sha1
@@ -0,0 +1 @@
+5b3b3031843ec01ec012ee1c6ee2c48729910490
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_af.xtb b/chrome/app/resources/chromium_strings_af.xtb
index ee2a8ab..13cf5be 100644
--- a/chrome/app/resources/chromium_strings_af.xtb
+++ b/chrome/app/resources/chromium_strings_af.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Dit lyk of die profiel deur 'n ander Chromium-proses (<ph name="PROCESS_ID" />) op 'n ander rekenaar (<ph name="HOST_NAME" />) gebruik word. Chromium het jou profiel gesluit sodat dit nie gekorrupteer word nie. As jy seker is dat geen ander prosesse hierdie profiel gebruik nie, kan jy die profiel ontsluit en Chromium herbegin.</translation>
 <translation id="469338717132742108">Kry hulp met Chromium-bedryfstelsel</translation>
 <translation id="4708774505295300557">Iemand het voorheen op hierdie rekenaar as <ph name="ACCOUNT_EMAIL_LAST" /> by Chromium aangemeld. Skep asseblief 'n nuwe Chromium-gebruiker om jou inligting apart te hou.</translation>
+<translation id="4745225042341419983">Hierdie spasie se blaaierdata sal van hierdie toestel af uitgevee word. Om die data te herwin, moet jy by Chromium aanmeld as</translation>
 <translation id="4746050847053251315">Verlaat Chromium in elk geval?</translation>
 <translation id="4748217263233248895">'n Spesiale sekuriteitopdatering vir Chromium is sopas toegepas. Herbegin nou en ons sal jou oortjies teruglaai.</translation>
 <translation id="4750035648288509542">Amper op datum! Herbegin Chromium om opdatering te voltooi. Incognitovensters sal nie weer oopgemaak word nie.</translation>
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb
index 9826ba6..6c7dbc3 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">መገለጫው በሌላ ኮምፒውተር (<ph name="HOST_NAME" />) ላይ በሌላ የChromium ሂደት (<ph name="PROCESS_ID" />) የተያዘ ይመስላል። Chromium መገለጫው እንዳይበላሽ ቆልፎታል።  ሌሎች ሂደቶች ይህን መገለጫ እየተጠቀሙበት እንዳልሆኑ እርግጠኛ ከሆኑ መገለጫውን አስከፍተው Chromiumን ዳግም ማስጀመር ይችላሉ።</translation>
 <translation id="469338717132742108">Chromium OS ላይ እገዛ ያግኙ</translation>
 <translation id="4708774505295300557">የሆነ ሰው ከዚህ ቀደም በዚህ ኮምፒውተር ላይ እንደ <ph name="ACCOUNT_EMAIL_LAST" /> ሆነው ገብተዋል። የእርስዎን መረጃ ለይተው ለማስቀመጥ እባክዎ አዲስ የChromium ተጠቃሚ ይፍጠሩ።</translation>
+<translation id="4745225042341419983">ይህ ክፍተት የአሰሳ ውሂብ ከዚህ መሣሪያ ይሰረዛል። ውሂቡን መልሶ ለማግኘት እንደ ሆነው ወደ Chromium ይግቡ</translation>
 <translation id="4746050847053251315">የሆነው ሆኖ Chromium ይቁም?</translation>
 <translation id="4748217263233248895">ለChromium ልዩ የደህንነት ዝማኔ ተፈጻሚ ተደርጓል። አሁን ዳግም ያስጀምሩ እና የእርስዎን ትሮች ወደ ነበሩበት እንመልሳለን።</translation>
 <translation id="4750035648288509542">ሊዘመን ጥቂት ቀርቶታል! ማዘመን ለማጠናቀቅ Chromiumን ዳግም ያስጀምሩት። ማንነት የማያሳውቁ መስኮቶች ዳግም አይከፈቱም።</translation>
diff --git a/chrome/app/resources/chromium_strings_bs.xtb b/chrome/app/resources/chromium_strings_bs.xtb
index d96b5d6..7dd7bbe 100644
--- a/chrome/app/resources/chromium_strings_bs.xtb
+++ b/chrome/app/resources/chromium_strings_bs.xtb
@@ -97,7 +97,7 @@
 <translation id="4677944499843243528">Izgleda da drugi Chromium proces (<ph name="PROCESS_ID" />) na drugom računaru (<ph name="HOST_NAME" />) koristi profil. Chromium je zaključao profil da se ne ošteti. Ako ste sigurni da nijedan drugi proces ne koristi ovaj profil, možete ga otključati i ponovo pokrenuti Chromium.</translation>
 <translation id="469338717132742108">Primite pomoć za Chromium OS</translation>
 <translation id="4708774505295300557">Neko se prethodno prijavio na Chromium s ovog računara kao <ph name="ACCOUNT_EMAIL_LAST" />. Kreirajte novog korisnika za Chromium da odvojite svoje informacije.</translation>
-<translation id="4745225042341419983">Podaci o pregledavanju ovog prostora izbrisat će se s ovog uređaja. Da biste vratili te podatke, prijavite se na Chromium kao</translation>
+<translation id="4745225042341419983">Podaci pregledanja u ovom prostoru će se izbrisati s ovog uređaja. Da oporavite podatke, prijavite se u Chromium kao</translation>
 <translation id="4746050847053251315">Ipak napustiti Chromium?</translation>
 <translation id="4748217263233248895">Upravo je primijenjeno posebno sigurnosno ažuriranje za Chromium. Ponovo pokrenite sustav i vratit ćemo vaše kartice.</translation>
 <translation id="4750035648288509542">Još malo pa je ažurirano! Ponovo pokrenite Chromium da završite ažuriranje. Anonimni prozori se neće ponovo otvoriti.</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index 37b80ef..83b8d36c 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -95,6 +95,7 @@
 <translation id="4677944499843243528">Sembla que un altre procés de Chromium (<ph name="PROCESS_ID" />) està fent servir el perfil en un altre ordinador (<ph name="HOST_NAME" />). Chromium ha bloquejat el perfil perquè no es malmeti. Si esteu segur que no hi ha cap altre procés que utilitzi el perfil, podeu desbloquejar-lo i tornar a iniciar Chromium.</translation>
 <translation id="469338717132742108">Obtén ajuda per a Chromium OS</translation>
 <translation id="4708774505295300557">Algú ha iniciat anteriorment la sessió a Chromium en aquest ordinador com a <ph name="ACCOUNT_EMAIL_LAST" />. Crea un usuari de Chromium per mantenir la informació separada.</translation>
+<translation id="4745225042341419983">Les dades de navegació d'aquest espai se suprimiran d'aquest dispositiu. Per recuperar-les, inicia la sessió a Chromium com a</translation>
 <translation id="4746050847053251315">Vols sortir de Chromium igualment?</translation>
 <translation id="4748217263233248895">S'acaba d'aplicar una actualització de seguretat especial per a Chromium. Reinicia el navegador i restaurarem les pestanyes.</translation>
 <translation id="4750035648288509542">Gairebé has acabat amb l'actualització. Reinicia Chromium per completar-la. Les finestres d'incògnit no es tornaran a obrir.</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index 553d11c..c6ac149 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -95,6 +95,7 @@
 <translation id="4677944499843243528">Profilen ser ud til at være i brug i en anden Chromium-proces (<ph name="PROCESS_ID" />) på en anden computer (<ph name="HOST_NAME" />). Chromium har låst profilen, så den ikke bliver beskadiget. Hvis du er sikker på, at ingen andre processer anvender denne profil, kan du fjerne blokeringen af profilen og genstarte Chromium.</translation>
 <translation id="469338717132742108">Få hjælp til Chromium OS</translation>
 <translation id="4708774505295300557">Nogen har tidligere logget ind på Chromium på denne computer som <ph name="ACCOUNT_EMAIL_LAST" />. Opret en ny Chromium-bruger for at holde dine oplysninger adskilt.</translation>
+<translation id="4745225042341419983">Browserdataene for dette space slettes fra denne enhed. Du kan gendanne dataene ved at logge ind på Chromium som</translation>
 <translation id="4746050847053251315">Vil du slutte Chromium alligevel?</translation>
 <translation id="4748217263233248895">En særlig sikkerhedsopdatering til Chromium blev netop anvendt. Genstart nu, hvorefter vi gendanner dine faner.</translation>
 <translation id="4750035648288509542">Næsten opdateret! Genstart Chromium for at fuldføre opdateringen. Inkognitovinduer åbnes ikke igen.</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index 68d612b..21ef20f 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -94,6 +94,7 @@
 <translation id="4677944499843243528">‏ظاهراً نمایه توسط فرآیند Chromium دیگری (<ph name="PROCESS_ID" />) در رایانه‌ای دیگر (<ph name="HOST_NAME" />) در حال استفاده است. Chromium نمایه را قفل کرده است تا خراب نشود. اگر مطمئنید فرآیندهای دیگری از این نمایه استفاده نمی‌کنند، می‌توانید قفل نمایه را باز کنید و Chromium را مجدداً راه‌اندازی نمایید.</translation>
 <translation id="469338717132742108">‏دریافت کمک برای سیستم عامل Chromium</translation>
 <translation id="4708774505295300557">‏شخصی قبلاً به‌عنوان <ph name="ACCOUNT_EMAIL_LAST" /> به سیستم Chromium در این رایانه وارد شده است. برای اینکه اطلاعاتتان جدا حفظ شود، لطفاً کاربر Chrome جدیدی ایجاد کنید.</translation>
+<translation id="4745225042341419983">‏داده‌های محصول مرور این فضا از این دستگاه حذف خواهد شد. برای بازیابی داده‌ها، با حساب زیر به سیستم Chromium وارد شوید:</translation>
 <translation id="4746050847053251315">‏درهرصورت از Chromium خارج می‌شوید؟</translation>
 <translation id="4748217263233248895">‏لحظاتی پیش به‌روزرسانی امنیتی ویژه‌ای برای Chromium اعمال شد. هم‌اکنون بازراه‌اندازی کنید و ما برگه‌هایتان را بازیابی خواهیم کرد.</translation>
 <translation id="4750035648288509542">‏تقریباً به‌روزرسانی شده است! برای اتمام به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید. پنجره‌های ناشناس دوباره باز نخواهند شد.</translation>
diff --git a/chrome/app/resources/chromium_strings_gl.xtb b/chrome/app/resources/chromium_strings_gl.xtb
index ecefb11f..0e3d42d 100644
--- a/chrome/app/resources/chromium_strings_gl.xtb
+++ b/chrome/app/resources/chromium_strings_gl.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Parece que outro proceso de Chromium (<ph name="PROCESS_ID" />) está utilizando o perfil noutro ordenador (<ph name="HOST_NAME" />). Chromium bloqueou o perfil para que non se dane. Se estás seguro de que ningún outro proceso está utilizando este perfil, podes desbloquear o perfil e volver iniciar Chromium.</translation>
 <translation id="469338717132742108">Obter axuda sobre Chromium OS</translation>
 <translation id="4708774505295300557">Anteriormente, alguén iniciou sesión como <ph name="ACCOUNT_EMAIL_LAST" /> en Chromium neste ordenador. Crea un novo usuario de Chromium para manter a túa información por separado.</translation>
+<translation id="4745225042341419983">Os datos de navegación deste espazo eliminaranse deste dispositivo. Para recuperalos, inicia sesión en Chromium como</translation>
 <translation id="4746050847053251315">Queres saír de Chromium de todas formas?</translation>
 <translation id="4748217263233248895">Acábase de aplicar unha actualización de seguranza especial para Chromium. Reinicia agora e restauraremos as túas pestanas.</translation>
 <translation id="4750035648288509542">A actualización está a piques de rematar. Reinicia Chromium para completala. As ventás do modo de incógnito non se volverán abrir.</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index f573be2..c297a36 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -95,6 +95,7 @@
 <translation id="4677944499843243528">Úgy tűnik, a profilt egy másik Chromium-folyamat (<ph name="PROCESS_ID" />) használja egy másik számítógépen (<ph name="HOST_NAME" />). A Chromium zárolta a profilt, hogy az ne sérülhessen. Ha biztos benne, hogy nem használja másik folyamat a profilt, feloldhatja azt, és újraindíthatja a Chromiumot.</translation>
 <translation id="469338717132742108">Segítség a Chromium OS használatával kapcsolatban</translation>
 <translation id="4708774505295300557">Valaki korábban <ph name="ACCOUNT_EMAIL_LAST" /> néven bejelentkezett a Chromiumba erről a számítógépről. Az adatai elkülönítéséhez hozzon létre új Chromium-felhasználót.</translation>
+<translation id="4745225042341419983">Az ehhez a profilhoz tartozó böngészési adatok törlődnek majd erről az eszközről. Az adatok visszaállításához jelentkezzen be a Chromiumba a következő felhasználóként:</translation>
 <translation id="4746050847053251315">Biztosan kilép a Chromiumból?</translation>
 <translation id="4748217263233248895">A rendszer egy speciális biztonsági frissítést alkalmazott a Chromiumon. Indítsa újra a számítógépet, a lapokat majd mi visszaállítjuk.</translation>
 <translation id="4750035648288509542">Már majdnem naprakész! Indítsa újra a Chromiumot a frissítés befejezéséhez. Az inkognitó ablakok nem fognak újra megnyílni.</translation>
diff --git a/chrome/app/resources/chromium_strings_is.xtb b/chrome/app/resources/chromium_strings_is.xtb
index 56403a2..0a252961 100644
--- a/chrome/app/resources/chromium_strings_is.xtb
+++ b/chrome/app/resources/chromium_strings_is.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Annað Chromium ferli (<ph name="PROCESS_ID" />) virðist vera að nota þennan prófíl í annarri tölvu (<ph name="HOST_NAME" />). Chromium hefur læst prófílnum svo hann skemmist ekki. Ef þú ert viss um að engin önnur ferli séu að nota þennan prófíl geturðu tekið hann úr lás og endurræst Chromium.</translation>
 <translation id="469338717132742108">Fá hjálp með Chromium OS</translation>
 <translation id="4708774505295300557">Einhver skráði sig inn á Chromium úr þessari tölvu sem <ph name="ACCOUNT_EMAIL_LAST" />. Stofnaðu nýjan notanda í Chromium til að halda þínum upplýsingum aðskildum frá hinum notandanum.</translation>
+<translation id="4745225042341419983">Vefskoðunargögnum þessa svæðis verður eytt úr tækinu. Til að endurheimta gögn skaltu skrá þig inn í Chromium sem</translation>
 <translation id="4746050847053251315">Viltu samt loka Chromium?</translation>
 <translation id="4748217263233248895">Sérstök öryggisuppfærsla fyrir Chromium var tekin í notkun. Endurræstu núna og við opnum flipana þína aftur.</translation>
 <translation id="4750035648288509542">Næstum því uppfært! Endurræstu Chromium til að ljúka við uppfærslu. Huliðsgluggar enduropnast ekki.</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 274e222..2aca653a 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -93,6 +93,7 @@
 <translation id="4677944499843243528">ಮತ್ತೊಂದು ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ (<ph name="HOST_NAME" />) ಇನ್ನೊಂದು Chromium ಪ್ರಕ್ರಿಯೆಯ (<ph name="PROCESS_ID" />) ಮೂಲಕ ಪ್ರೊಫೈಲ್ ಬಳಕೆಯಲ್ಲಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಪ್ರೊಫೈಲ್ ದೋಷಪೂರಿತಗೊಳ್ಳದಂತೆ ಅದನ್ನು Chromium ಲಾಕ್ ಮಾಡಿದೆ. ಇತರ ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಗಳು ಈ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಬಳಸುತ್ತಿಲ್ಲವೆಂದು ನಿಮಗೆ ಖಚಿತವಾಗಿದ್ದರೆ, ನೀವು ಪ್ರೊಫೈಲ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬಹುದು.</translation>
 <translation id="469338717132742108">Chromium OS ಕುರಿತಾಗಿ ಸಹಾಯ ಪಡೆಯಿರಿ</translation>
 <translation id="4708774505295300557">ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ <ph name="ACCOUNT_EMAIL_LAST" /> ನಂತೆ Chromium ಗೆ ಯಾರೋ ಈ ಹಿಂದೆಯೇ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ಹೊಸ Chromium ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿ.</translation>
+<translation id="4745225042341419983">ಈ ಸ್ಥಳದಲ್ಲಿನ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಈ ಸಾಧನದಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ. ಡೇಟಾವನ್ನು ಪುನಃ ಪಡೆದುಕೊಳ್ಳಲು, Chromium ನಲ್ಲಿ ಇದರಂತೆ ಸೈನ್ ಇನ್ ಮಾಡಿ:</translation>
 <translation id="4746050847053251315">ಹೇಗಿದ್ದರೂ Chromium ಅನ್ನು ಮುಚ್ಚುವುದೇ?</translation>
 <translation id="4748217263233248895">Chromium ಗೆ ವಿಶೇಷ ಸುರಕ್ಷತೆಯ ಅಪ್‌ಡೇಟ್‌‌ ಅನ್ನು ಈಗ ತಾನೇ ಅನ್ವಯಿಸಲಾಗಿದೆ. ಇದೀಗ ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಟ್ಯಾಬ್‌ಗಳನ್ನು ನಾವು ಮರುಸ್ಥಾಪಿಸುತ್ತೇವೆ.</translation>
 <translation id="4750035648288509542">ಬಹುತೇಕ ಅಪ್ ಟು ಡೇಟ್ ಆಗಿದೆ! ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ. ಅಜ್ಞಾತ ವಿಂಡೋಗಳನ್ನು ಮರಳಿ ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index cf7e594..e8d75f72 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Atrodo, kad profilį naudoja kitas „Chromium“ procesas (<ph name="PROCESS_ID" />) kitame kompiuteryje (<ph name="HOST_NAME" />). „Chromium“ užrakino profilį, kad jis nebūtų sugadintas. Jei esate tikri, kad jokie kiti procesai nenaudoja šio profilio, galite atrakinti profilį ir iš naujo paleisti „Chromium“.</translation>
 <translation id="469338717132742108">Gaukite pagalbos dėl „Chromium“ OS</translation>
 <translation id="4708774505295300557">Kažkas anksčiau prisijungė prie „Chromium“ šiame kompiuteryje kaip <ph name="ACCOUNT_EMAIL_LAST" />. Sukurkite naują „Chromium“ naudotoją, kad apsaugotumėte savo informaciją.</translation>
+<translation id="4745225042341419983">Šios srities naršymo duomenys bus ištrinti iš šio įrenginio. Jei norite atkurti duomenis, prisijunkite prie „Chromium“ kaip</translation>
 <translation id="4746050847053251315">Vis tiek išeiti iš „Chromium“?</translation>
 <translation id="4748217263233248895">Ką tik pritaikytas specialus „Chromium“ skirtas saugos naujinys. Paleiskite naršyklę iš naujo ir atkursime visus skirtukus.</translation>
 <translation id="4750035648288509542">Beveik atnaujinta! Paleiskite „Chromium“ iš naujo, kad būtų užbaigtas naujinimas. Inkognito langai nebus atidaryti iš naujo.</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index c78be268e..36baef8 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -95,6 +95,7 @@
 <translation id="4677944499843243528">Šķiet, ka profils tiek izmantots citā Chromium procesā (<ph name="PROCESS_ID" />) citā datorā (<ph name="HOST_NAME" />). Lai profils netiktu bojāts, pārlūkā Chromium tas ir bloķēts. Ja esat pārliecināts, ka šis profils netiek izmantots citos procesos, varat to atbloķēt un restartēt pārlūku Chromium.</translation>
 <translation id="469338717132742108">Saņemt palīdzību par Chromium OS</translation>
 <translation id="4708774505295300557">Kāds iepriekš pierakstījās pārlūkā Chromium šajā datorā, izmantojot e-pasta adresi <ph name="ACCOUNT_EMAIL_LAST" />. Lūdzu, izveidojiet jaunu Chromium lietotāju, lai nošķirtu savu informāciju.</translation>
+<translation id="4745225042341419983">Šīs darbvietas pārlūkošanas dati tiks izdzēsti no šīs ierīces. Lai atkoptu datus, pierakstieties pārlūkprogrammā Chromium kā lietotājs</translation>
 <translation id="4746050847053251315">Vai tik un tā aizvērt pārlūku Chromium?</translation>
 <translation id="4748217263233248895">Tikko tika piemērots īpašs Chromium drošības atjauninājums. Restartējiet tūlīt, un mēs atjaunosim jūsu cilnes.</translation>
 <translation id="4750035648288509542">Gandrīz atjaunināts! Lai pabeigtu atjaunināšanu, atkārtoti palaidiet pārlūkprogrammu Chromium. Inkognito režīma logi netiks atkārtoti atvērti.</translation>
diff --git a/chrome/app/resources/chromium_strings_mk.xtb b/chrome/app/resources/chromium_strings_mk.xtb
index 160930f..84a46ed 100644
--- a/chrome/app/resources/chromium_strings_mk.xtb
+++ b/chrome/app/resources/chromium_strings_mk.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Изгледа дека друг процес на Chromium го користи профилот (<ph name="PROCESS_ID" />) на друг компјутер (<ph name="HOST_NAME" />). Chromium го заклучи профилот за да не се оштети. Доколку сте сигурни дека други процеси не го користат овој профил, може да го отклучите и повторно да го стартувате Chromium.</translation>
 <translation id="469338717132742108">Добијте помош за Chromium OS</translation>
 <translation id="4708774505295300557">Некој претходно се најави на Chromium од овој компјутер како <ph name="ACCOUNT_EMAIL_LAST" />. Создајте нов корисник на Chromium за да ги чувате информациите одделно.</translation>
+<translation id="4745225042341419983">Податоците од прелистувањето на овој простор ќе се избришат од уредов. За да ги вратите податоците, најавете се на Chromium како</translation>
 <translation id="4746050847053251315">Сепак да се напушти Chromium?</translation>
 <translation id="4748217263233248895">Тукушто применивме посебно безбедносно ажурирање за Chromium. Рестартирајте сега и ќе ви ги вратиме картичките.</translation>
 <translation id="4750035648288509542">Речиси сте готови! Рестартирајте го Chromium за да заврши ажурирањето. Прозорците „Инкогнито“ нема да се отворат повторно.</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 40ba18e..ed7389a 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">മറ്റൊരു കമ്പ്യൂട്ടറിൽ (<ph name="HOST_NAME" />) മറ്റൊരു Chromium പ്രോസസ് (<ph name="PROCESS_ID" />) പ്രൊഫൈൽ ഉപയോഗിക്കുന്നതുപോലെ തോന്നുന്നു. Chromium പ്രൊഫൈൽ ലോക്കുചെയ്‌തതിനാൽ ഇത് കേടാകുകയില്ല. മറ്റ് പ്രോസസുകളൊന്നും ഈ പ്രൊഫൈൽ ഉപയോഗിക്കുന്നില്ലെന്ന് ഉറപ്പാണെങ്കിൽ നിങ്ങൾക്ക് പ്രൊഫൈൽ അൺലോക്ക് ചെയ്‌ത് Chromium വീണ്ടും സമാരംഭിക്കാം.</translation>
 <translation id="469338717132742108">Chromium OS ഉപയോഗിക്കുന്നതിനുള്ള സഹായം തേടുക</translation>
 <translation id="4708774505295300557">ഈ കമ്പ്യൂട്ടറിലെ Chromium-ത്തിൽ മുമ്പ് മറ്റാരോ <ph name="ACCOUNT_EMAIL_LAST" /> എന്നയാളായി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. നിങ്ങളുടെ വിവരങ്ങൾ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ പുതിയ Chromium ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുക.</translation>
+<translation id="4745225042341419983">ഈ സ്‌പെയ്‌സിന്റെ ബ്രൗസിംഗ് ഡാറ്റ ഈ ഉപകരണത്തിൽ നിന്ന് ഇല്ലാതാക്കപ്പെടും. ഡാറ്റ വീണ്ടെടുക്കാൻ, ഇനിപ്പറയുന്ന ഇമെയിൽ ഉപയോഗിച്ച് Chromium-ത്തിൽ സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="4746050847053251315">എന്തായാലും Chromium-ത്തിൽ നിന്ന് പുറത്തുകടക്കണോ?</translation>
 <translation id="4748217263233248895">Chromium-നുള്ള ഒരു പ്രത്യേക സുരക്ഷാ അപ്‌ഡേറ്റ് പ്രയോഗിച്ചിരിക്കുന്നു. ഇപ്പോൾ റീസ്‌റ്റാർട്ട് ചെയ്യുക, ഞങ്ങൾ നിങ്ങളുടെ ടാബുകൾ പുനഃസ്ഥാപിക്കും.</translation>
 <translation id="4750035648288509542">എകദേശം അപ് റ്റു ഡേറ്റാണ്! അപ്‌ഡേറ്റ് ചെയ്യൽ പൂർത്തിയാക്കുന്നതിന് Chromium വീണ്ടും ആരംഭിക്കുക. അദൃശ്യ വിൻഡോകൾ വീണ്ടും തുറക്കില്ല.</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index 7a7fdf7..af6d39c 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -96,6 +96,7 @@
 <translation id="4677944499843243528">प्रोफाइल दुसर्‍या कॉंप्युटरवरील (<ph name="HOST_NAME" />) दुसर्‍या Chromium प्रक्रियेद्वारे (<ph name="PROCESS_ID" />) वापरले जात असल्याचे दिसते. प्रोफाइल लॉक होऊ नये यासाठी Chromium ने ती लॉक केली आहे. कोणतीही अन्य प्रक्रिया हे प्रोफाइल वापरत नाही याची तुम्हाला खात्री असल्यास, तुम्ही प्रोफाइल अनलॉक करू शकता आणि Chromium पुन्हा एकदा लॉंच करू शकता.</translation>
 <translation id="469338717132742108">Chromium OS सह मदत मिळवा</translation>
 <translation id="4708774505295300557">कोणीतरी यापूर्वी या कॉंप्युटरवरील Chromium मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून साइन इन केले. कृपया तुमची माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chromium वापरकर्ता तयार करा.</translation>
+<translation id="4745225042341419983">या स्पेसचा ब्राउझिंग डेटा या डिव्हाइसवरून हटवला जाईल. डेटा रीकव्हर करण्यासाठी, Chromium वर हे म्हणून साइन इन करा</translation>
 <translation id="4746050847053251315">तरीही Chromium बंद करायचे?</translation>
 <translation id="4748217263233248895">Chromium साठी एक विशिष्ट सुरक्षितता अपडेट आत्ताच लागू केले. आता रीस्टार्ट करा आणि मग आम्ही तुमचे टॅब रिस्टोअर करू.</translation>
 <translation id="4750035648288509542">जवळजवळ अप टू डेट! अपडेट करणे पूर्ण करण्यासाठी Chromium पुन्हा लाँच करा. गुप्त विंडो पुन्हा उघडणार नाहीत.</translation>
diff --git a/chrome/app/resources/chromium_strings_my.xtb b/chrome/app/resources/chromium_strings_my.xtb
index c7bb182..37caca6 100644
--- a/chrome/app/resources/chromium_strings_my.xtb
+++ b/chrome/app/resources/chromium_strings_my.xtb
@@ -98,6 +98,7 @@
 <translation id="4677944499843243528">ပရိုဖိုင်ကို အခြား ကွန်ပျူတာ <ph name="HOST_NAME" /> ထဲက (<ph name="PROCESS_ID" />) အခြား Chromium လုပ်ငန်းစဉ် တစ်ခုက သုံးနေပုံရသည်။   ထိုပရိုဖိုင် ပျက်စီး မသွားစေချင်ငှါ Chromium သည် ၎င်းကို ပိတ်ဆို့လိုက်သည်။ သင့်အနေနှင့် အခြား မည်သည့် လုပ်ငန်းစဉ်များကမှ ဒီပရိုဖိုင်ကို မသုံးကြောင်း သေချာလျှင်၊ သင်သည် ပရိုဖိုင်ကို သော့ဖွင့်လျက် Chromium ကို ပြန်ဖွင့်တင်နိုင်ပါသည်။</translation>
 <translation id="469338717132742108">Chromium OS အကူအညီရယူရန်</translation>
 <translation id="4708774505295300557">တစ်စုံတစ်ယောက်သည် ယခင်က ဤကွန်ပျူတာပေါ်တွင် Chromium သို့ <ph name="ACCOUNT_EMAIL_LAST" /> အဖြစ် လက်မှတ်ထိုးဝင်ခဲ့သည်။ သင့်အချက်အလက်များကို ခွဲခြားထားရန် Chromium အသုံးပြုသူ အသစ်သတ်မှတ်ပါ။</translation>
+<translation id="4745225042341419983">ဤ space ၏ ကြည့်ရှုမှုဒေတာများကို ဤကိရိယာမှနေ၍ ဖျက်လိုက်ပါမည်။ ဒေတာကို ပြန်လည်ရယူရန် အဖြစ် Chromium သို့ လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="4746050847053251315">မည်သို့ပင်ဖြစ်စေ Chromium ကို ပိတ်လိုပါသလား။</translation>
 <translation id="4748217263233248895">Chromium အတွက် အထူးလုံခြုံရေးအပ်ဒိတ်ကို ယခုလေးတင် ထည့်သွင်းထားသည်။ ယခုပြန်လည်စတင်လိုက်ပါက သင်၏ တဘ်များကို ပြန်ဖွင့်ပေးပါမည်။</translation>
 <translation id="4750035648288509542">အပ်ဒိတ်လုပ်ပြီးပါတော့မည်။ အပ်ဒိတ်လုပ်ခြင်း အပြီးသတ်ရန် Chromium ကို ပြန်ဖွင့်ပါ။ ရုပ်ဖျက် ဝင်ဒိုးများကို ပြန်ဖွင့်မည် မဟုတ်ပါ။</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index 11b252a..3a5c06d5 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Het profiel lijkt te worden gebruikt door een ander proces in Chromium (<ph name="PROCESS_ID" />) op een andere computer (<ph name="HOST_NAME" />). Het profiel is vergrendeld zodat het niet wordt beschadigd. Als je zeker weet dat dit profiel niet door andere processen wordt gebruikt, kun je het profiel ontgrendelen en Chromium opnieuw starten.</translation>
 <translation id="469338717132742108">Hulp bij Chromium OS</translation>
 <translation id="4708774505295300557">Iemand heeft eerder bij Chromium op deze computer ingelogd als <ph name="ACCOUNT_EMAIL_LAST" />. Maak een nieuwe Chromium-gebruiker om je informatie gescheiden te houden.</translation>
+<translation id="4745225042341419983">De browsergegevens van deze ruimte worden verwijderd van dit apparaat. Als je de gegevens wilt herstellen, log je in bij Chromium als</translation>
 <translation id="4746050847053251315">Chromium toch sluiten?</translation>
 <translation id="4748217263233248895">Er is zojuist een speciale beveiligingsupdate voor Chromium toegepast. Start nu opnieuw op. Je tabbladen worden hersteld.</translation>
 <translation id="4750035648288509542">Bijna klaar met updaten. Start Chromium opnieuw om de update te voltooien. Incognitovensters worden niet opnieuw geopend.</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb
index b18b8c9..7dae8a97 100644
--- a/chrome/app/resources/chromium_strings_pa.xtb
+++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">ਇੰਜ ਜਾਪਦਾ ਹੈ ਕਿ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਕਿਸੇ ਹੋਰ ਕੰਪਿਊਟਰ <ph name="HOST_NAME" /> 'ਤੇ ਦੂਜੀ Chromium ਪ੍ਰਕਿਰਿਆ (<ph name="PROCESS_ID" />) ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ। Chromium ਨੇ ਪ੍ਰੋਫਾਈਲ ਲਾਕ ਕਰ ਦਿੱਤੀ ਹੈ ਤਾਂ ਜੋ ਇਹ ਖਰਾਬ ਹੋਣ ਤੋਂ ਬੱਚ ਸਕੇ। ਜੇਕਰ ਤੁਹਾਨੂੰ ਪੱਕਾ ਪਤਾ ਹੈ ਕਿ ਕੋਈ ਹੋਰ ਪ੍ਰਕਿਰਿਆਵਾਂ ਇਹ ਪ੍ਰੋਫਾਈਲ ਨਹੀਂ ਵਰਤ ਰਹੀਆਂ, ਤਾਂ ਤੁਸੀਂ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਅਣਲਾਕ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ Chromium ਨੂੰ ਮੁੜ-ਲਾਂਚ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="469338717132742108">Chromium OS ਬਾਰੇ ਮਦਦ ਪ੍ਰਾਪਤ ਕਰੋ</translation>
 <translation id="4708774505295300557">ਕਿਸੇ ਵਿਅਕਤੀ ਨੇ ਪਹਿਲਾਂ ਹੀ <ph name="ACCOUNT_EMAIL_LAST" /> ਵਜੋਂ ਇਸ ਕੰਪਿਊਟਰ 'ਤੇ Chromium 'ਤੇ ਸਾਈਨ-ਇਨ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਆਪਣੀ ਜਾਣਕਾਰੀ ਵੱਖਰੀ ਰੱਖਣ ਲਈ ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਨਵਾਂ Chromium ਵਰਤੋਂਕਾਰ ਬਣਾਓ।</translation>
+<translation id="4745225042341419983">ਇਸ ਜਗ੍ਹਾ ਦੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟੇ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਡਾਟਾ ਮੁੜ-ਹਾਸਲ ਕਰਨ ਲਈ, Chromium ਵਿੱਚ ਇਸ ਵਜੋਂ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="4746050847053251315">ਕੀ ਫਿਰ ਵੀ Chromium ਨੂੰ ਛੱਡਣਾ ਹੈ?</translation>
 <translation id="4748217263233248895">Chromium ਲਈ ਇੱਕ ਖਾਸ ਸੁਰੱਖਿਆ ਅੱਪਡੇਟ ਹੁਣੇ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਸੀ। ਹੁਣੇ ਇਸਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਅਸੀਂ ਤੁਹਾਡੀਆਂ ਟੈਬਾਂ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਾਂਗੇ।</translation>
 <translation id="4750035648288509542">ਲਗਭਗ ਅੱਪ-ਟੂ-ਡੇਟ! ਅੱਪਡੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ Chromium ਨੂੰ ਮੁੜ-ਲਾਂਚ ਕਰੋ। ਇਨਕੋਗਨਿਟੋ ਵਿੰਡੋ ਦੁਬਾਰਾ ਨਹੀਂ ਖੁੱਲ੍ਹੇਗੀ।</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index b45a478..1a81011 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -93,6 +93,7 @@
 <translation id="4677944499843243528">O perfil parece estar em uso por outro processo do Chromium (<ph name="PROCESS_ID" />) em outro computador (<ph name="HOST_NAME" />). O Chromium bloqueou o perfil para que ele não seja corrompido. Se você tiver certeza de que nenhum outro processo está usando este perfil, pode desbloquear o perfil e reiniciar o Chromium.</translation>
 <translation id="469338717132742108">Ajuda com o Chromium OS</translation>
 <translation id="4708774505295300557">Anteriormente, alguém fez login no Chromium neste computador como <ph name="ACCOUNT_EMAIL_LAST" />. Crie um novo usuário do Chromium para manter suas informações separadas.</translation>
+<translation id="4745225042341419983">Os dados de navegação desse espaço serão excluídos do dispositivo. Para recuperá-los, faça login no Chromium como</translation>
 <translation id="4746050847053251315">Sair do Chromium mesmo assim?</translation>
 <translation id="4748217263233248895">Uma atualização de segurança especial para o Chromium acabou de ser aplicada. Reinicie agora, e suas guias serão restauradas.</translation>
 <translation id="4750035648288509542">Falta pouco para a atualização terminar. Reinicie o Chromium para concluí-la. As janelas anônimas não serão abertas novamente.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 0e455e0..2b3ecb8 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -95,6 +95,7 @@
 <translation id="4677944499843243528">O perfil parece estar a ser utilizado por outro processo do Chromium (<ph name="PROCESS_ID" />) noutro computador (<ph name="HOST_NAME" />). O Chromium bloqueou o perfil para que não seja danificado. Se tiver a certeza de que não existem outros processos a utilizar este perfil, pode desbloqueá-lo e reiniciar o Chromium.</translation>
 <translation id="469338717132742108">Obter ajuda relacionada com o SO Chromium</translation>
 <translation id="4708774505295300557">Alguém iniciou sessão no Chromium neste computador anteriormente com a conta <ph name="ACCOUNT_EMAIL_LAST" />. Crie um novo utilizador do Chromium para manter as informações em separado.</translation>
+<translation id="4745225042341419983">Os dados de navegação deste espaço serão eliminados deste dispositivo. Para recuperar os dados, inicie sessão no Chromium como</translation>
 <translation id="4746050847053251315">Pretende fechar o Chromium mesmo assim?</translation>
 <translation id="4748217263233248895">Acabou de ser instalada uma atualização de segurança especial para o Chromium. Reinicie agora e iremos restaurar os seus separadores.</translation>
 <translation id="4750035648288509542">Quase atualizado! Reinicie o Chromium para concluir a atualização. Não é possível reabrir as suas janelas de navegação anónima.</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index 6c5df32..467bf09 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Wasifu unaonekana kuwa unatumika na mchakato mwingine wa Chromium (<ph name="PROCESS_ID" />) kwenye kompyuta nyingine (<ph name="HOST_NAME" />). Chromium imefunga wasifu huu ili usifisidiwe. Kama una uhakika hakuna michakato mingine inatumia wasifu huu, unaweza kufungua wasifu na uzindue tena Chromium.</translation>
 <translation id="469338717132742108">Pata usaidizi wa kutumia mfumo wa uendeshaji wa Chromium</translation>
 <translation id="4708774505295300557">Kuna mtu aliingia katika Chromium kwenye kompyuta hii akitumia <ph name="ACCOUNT_EMAIL_LAST" />. Tafadhali ongeza wasifu mpya wa Chromium ili utenganishe maelezo yako.</translation>
+<translation id="4745225042341419983">Data ya kuvinjari ya Chromium Space hii itafutwa kwenye kifaa hiki. Ili urejeshe data, ingia katika akaunti ya Chromium ukitumia</translation>
 <translation id="4746050847053251315">Ungependa kufunga Chromium?</translation>
 <translation id="4748217263233248895">Sasisho maalum la usalama wa Chromium limewekwa sasa hivi. Ifunge kisha uifungue na tutarejesha vichupo vyako.</translation>
 <translation id="4750035648288509542">Inaelekea kukamilisha mchakato wa kusasisha! Fungua tena Chromium ili ukamilishe mchakato wa kusasisha. Haitafungua upya madirisha fiche.</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index 74dfbe58..bc1fbfb 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -95,6 +95,7 @@
 <translation id="4677944499843243528">Схоже, профіль використовується іншим процесом Chromium (<ph name="PROCESS_ID" />) на іншому комп’ютері (<ph name="HOST_NAME" />). Chromium заблокував профіль, щоб запобігти його спотворенню. Якщо ви впевнені, що жоден інший процес не використовує цей профіль, розблокуйте профіль і перезапустіть Chromium.</translation>
 <translation id="469338717132742108">Отримати довідку щодо ОС Chromium</translation>
 <translation id="4708774505295300557">Хтось раніше входив у Chromium на цьому комп’ютері як <ph name="ACCOUNT_EMAIL_LAST" />. Створіть нового користувача Chromium, щоб зберігати свою інформацію окремо.</translation>
+<translation id="4745225042341419983">Дані веб-перегляду буде видалено з цього пристрою. Щоб відновити їх, увійдіть в обліковий запис Chromium як</translation>
 <translation id="4746050847053251315">Усе одно вийти з Chromium?</translation>
 <translation id="4748217263233248895">Щойно було застосовано спеціальне оновлення для захисту Chromium. Перезапустіть веб-переглядач, і ваші вкладки буде відновлено.</translation>
 <translation id="4750035648288509542">Майже готово. Перезапустіть Chromium, щоб завершити оновлення. Вікна в режимі анонімного перегляду не відновляться й не відкриються знову.</translation>
diff --git a/chrome/app/resources/chromium_strings_uz.xtb b/chrome/app/resources/chromium_strings_uz.xtb
index 584d37c2..5d87ec6 100644
--- a/chrome/app/resources/chromium_strings_uz.xtb
+++ b/chrome/app/resources/chromium_strings_uz.xtb
@@ -93,6 +93,7 @@
 <translation id="4677944499843243528">Profil boshqa kompyuterdagi (<ph name="HOST_NAME" />) boshqa Chromium jarayonida (<ph name="PROCESS_ID" />) foydalanilayotgan ko‘rinadi. Ishdan chiqishlarni oldini olish maqsadida profil qulflandi. Agar aniq o‘zingiz foydalanayotgan bo‘lsangiz, qulfdan yeching va Chromium‘ni qaytadan ishga tushiring.</translation>
 <translation id="469338717132742108">Chromium OS yordam markazi</translation>
 <translation id="4708774505295300557">Oldinroq Chrome profiliga kimdir bu kompyuterdan <ph name="ACCOUNT_EMAIL_LAST" /> sifatida kirgan. Ma’lumotlaringizni alohida saqlash uchun yangi Chromium profilini yarating.</translation>
+<translation id="4745225042341419983">Bu foydalanuvchi brauzerining tarixi ushbu qurilmadan butunlay tozalanadi. Axborotlarni tiklash uchun brauzerga quyidagi foydalanuvchi sifatida kiring:</translation>
 <translation id="4746050847053251315">Chromium baribir yopilsinmi?</translation>
 <translation id="4748217263233248895">Chromium xavfsizlik tizimiga maxsus yangilanish oʻrnatildi. Qayta ishga tushiring va ochiq sahifalarni tiklang.</translation>
 <translation id="4750035648288509542">Deyarli yangilandi! Yangilash tugashi uchun Chromium brauzerini qayta ishga tushiring. Inkognito oynalar qayta ochilmaydi.</translation>
diff --git a/chrome/app/resources/chromium_strings_zu.xtb b/chrome/app/resources/chromium_strings_zu.xtb
index 16be3c94..b50ed39e 100644
--- a/chrome/app/resources/chromium_strings_zu.xtb
+++ b/chrome/app/resources/chromium_strings_zu.xtb
@@ -97,6 +97,7 @@
 <translation id="4677944499843243528">Iphrofayela ibukeka isetshenziswa enye inqubo ye-Chromium (<ph name="PROCESS_ID" />) kwenye ikhompyutha (<ph name="HOST_NAME" />). I-Chromium ikhiye iphrofayela ukuze ingamosheki. Uma uqinisekile ukuthi azikho ezinye izinqubo ezisebenzisa le phrofayela, ungavula iphrofayela uphinde uqalise i-Chromium.</translation>
 <translation id="469338717132742108">Thola usizo nge-Chromium OS</translation>
 <translation id="4708774505295300557">Umuntu othile ungene ngemvume ngaphambilini ku-Chromium kule khompuyutha njengo-<ph name="ACCOUNT_EMAIL_LAST" />. Sicela udale umsebenzisi omusha we-Chromium ukuze ugcine ulwazi lwakho luhlukile.</translation>
+<translation id="4745225042341419983">Le datha yopheqululo yalesi sikhala izosuswa kule divayisi. Ukuze ubuyise idatha, ngena ngemvume ku-Chromium njengo-</translation>
 <translation id="4746050847053251315">Phuma ku-Chromium noma kunjalo?</translation>
 <translation id="4748217263233248895">Isibuyekezo esibalulekile sokuvikela se-Chromium sisanda kufakwa. Qalisa kabusha manje bese sizobuyisela amathebhu akho.</translation>
 <translation id="4750035648288509542">Icishe isisesikhathini! Qalisa kabusha i-Chromium ukuqeda ukubuyekeza. Ama-modi e-Incognito ngeke aze aphinde avuleke.</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index efa0ca24..8429e9f9 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Geskep</translation>
 <translation id="1067291318998134776">Linux (Beta)</translation>
 <translation id="1067922213147265141">Ander Google-dienste</translation>
+<translation id="1068961867683064946">Skep 'n Google-rekening vir jou kind</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">'n Ander program op jou rekenaar het 'n uitbreiding bygevoeg wat dalk die manier sal verander waarop Chrome werk.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" />-subbladsy se terugknoppie</translation>
 <translation id="1322046419516468189">Bekyk en bestuur gestoorde wagwoorde in jou <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Beveilig die persoonlike Google-rekeninge van enigiemand wat die risiko loop om die slagoffer van geteikende aanvalle te wees</translation>
+<translation id="1325985428688410772">Voeg Spasie By</translation>
 <translation id="1326317727527857210">Meld by Chrome aan om jou oortjies van jou ander toestelle af te kry.</translation>
 <translation id="1327074568633507428">Drukker op Google Wolkdrukker</translation>
 <translation id="1327272175893960498">Kerberos-kaartjies</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Stel netwerk op</translation>
 <translation id="230927227160767054">Hierdie bladsy wil 'n dienshanteerder installeer.</translation>
 <translation id="2309620859903500144">Hierdie werf is gekeer om toegang tot jou beweging- en ligsensors te kry.</translation>
+<translation id="2314873619957287124">Stel digitale grondreëls om jou kind te help leer, speel en verken</translation>
 <translation id="2315414688463285945">Kon nie Linux-lêers opstel nie. Probeer weer.</translation>
 <translation id="2315587498123194634">Stuur skakel na <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nee, dankie</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Vra wanneer 'n werf toegang tot reekspoorte wil verkry (aanbeveel)</translation>
 <translation id="2323018538045954000">Gestoorde Wi-Fi-netwerke</translation>
 <translation id="2325444234681128157">Onthou wagwoord</translation>
+<translation id="2326160999284776503">Meld met jou kind se Google-rekening aan</translation>
 <translation id="2326188115274135041">Bevestig PIN om outomatiese ontsluiting aan te skakel</translation>
 <translation id="2326931316514688470">Herlaai program</translation>
 <translation id="2327492829706409234">Aktiveer program</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Kragwas</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> kan nie veilig afgelaai word nie</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> wil saambind</translation>
-<translation id="2341476639346994688">Drukker is gestop</translation>
 <translation id="2342740338116612727">Boekmerke is bygevoeg</translation>
 <translation id="2343747224442182863">Fokus hierdie oortjie</translation>
 <translation id="2344686470986284227">Begin tans die virtuele masjien se beheerder</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">'n Fout het voorgekom. Gaan asseblief jou drukker na en probeer weer.</translation>
 <translation id="2387052489799050037">Gaan na tuisskerm</translation>
 <translation id="2387458720915042159">Soort instaanbedienerverbinding</translation>
+<translation id="2391082728065870591">Stuur terugvoerverslag</translation>
 <translation id="2391419135980381625">Standaardlettertipe</translation>
 <translation id="2392163307141705938">Jy het die tydlimiet wat jou ouer vir <ph name="IDS_SHORT_PRODUCT_NAME" /> gestel het, bereik.</translation>
 <translation id="2392369802118427583">Aktiveer</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Kon nie wagwoorde sinkroniseer nie</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> kan die volgende lêers en vouers bekyk en wysig</translation>
 <translation id="2537927931785713436">Gaan tans die virtuele masjien se prent na</translation>
+<translation id="2538084450874617176">Wie gebruik hierdie <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Sinkronisering gedeaktiveer</translation>
 <translation id="2540449034743108469">Druk "Begin" om te luister vir uitbreidingaktiwiteite</translation>
 <translation id="2541002089857695151">Optimeer volskermuitsending?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Spanspek</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> deel tans 'n venster.</translation>
 <translation id="4364830672918311045">Wys kennisgewings</translation>
+<translation id="4368115171699243057">Stel hierdie <ph name="DEVICE_TYPE" /> vir jou kind op</translation>
 <translation id="437004882363131692">Kry <ph name="DEVICE_TYPE" />-wenke, -aanbiedings en -opdaterings, en deel terugvoer. Teken enige tyd uit.</translation>
 <translation id="4370975561335139969">Die e-posadres en wagwoord wat jy ingevoer het, pas nie</translation>
 <translation id="4374831787438678295">Linux-installeerder</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Versteek wagwoord</translation>
 <translation id="4565917129334815774">Berg stelselloglêers</translation>
 <translation id="456717285308019641">Bladsytaal om te vertaal</translation>
+<translation id="4567533462991917415">Jy kan altyd meer mense ná opstelling byvoeg. Elke persoon kan hul rekening personaliseer en data privaat hou.</translation>
 <translation id="4567772783389002344">Voeg woord by</translation>
 <translation id="4568025708905928793">'n Sekuriteitsleutel word tans versoek</translation>
 <translation id="4568213207643490790">Jammer, Google-rekeninge word nie op hierdie toestel toegelaat nie.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Die opstelling van die Linux-houer is nie voltooi nie. Probeer weer.</translation>
 <translation id="4633003931260532286">Uitbreiding vereis "<ph name="IMPORT_NAME" />" met minstens weergawe "<ph name="IMPORT_VERSION" />", maar net weergawe "<ph name="INSTALLED_VERSION" />" is geïnstalleer</translation>
 <translation id="4633757335284074492">Rugsteun in Google Drive. Laai data maklik terug of wissel enige tyd jou toestel. Hierdie rugsteun sluit programdata in. Rugsteune word na Google toe opgelaai en met jou kind se Google-rekeningwagwoord geënkripteer.</translation>
+<translation id="4634575639321169635">Stel hierdie toestel op vir werk- of persoonlike gebruik</translation>
 <translation id="4634771451598206121">Meld weer aan …</translation>
 <translation id="4635072447747973225">Deïnstalleer Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> is nie vir gasgebruikers beskikbaar nie.</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">Die nuutste weergawe van "<ph name="EXTENSION_NAME" />" is gedeaktiveer, want dit vereis nog toestemmings.</translation>
 <translation id="5185500136143151980">Geen internet nie</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Opsies-kieslys vir <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Aktiveer poort</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> wil veelvuldige lêers aflaai</translation>
 <translation id="5192062846343383368">Maak die Family Link-program oop om jou toesiginstellings te sien</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Oeps! Die stelsel kon nie die toestelmodel of reeksnommer bepaal nie.</translation>
 <translation id="5284445933715251131">Gaan voort met aflaai</translation>
 <translation id="5285635972691565180">Vertoon <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Uitvoergebied is vol</translation>
 <translation id="5286194356314741248">Skandeer tans</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Jou rekeninge</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Hou skerm aan</translation>
 <translation id="5496587651328244253">Rangskik</translation>
 <translation id="5497251278400702716">Hierdie lêer</translation>
+<translation id="5498967291577176373">Skryf vinniger met inlynvoorstelle vir jou naam, adres of foonnommer.</translation>
 <translation id="5499313591153584299">Hierdie lêer kan skadelik vir jou rekenaar wees.</translation>
 <translation id="5499453227627332024">'n Opgradering is beskikbaar vir jou Linux-houer. Jy kan ook later deur die Instellings-program opgradeer.</translation>
 <translation id="5500709606820808700">Veiligheidskontrole het vandag plaasgevind</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Sertifikaatbeleidkarterings</translation>
 <translation id="5554489410841842733">Hierdie ikoon sal sigbaar wees wanneer die uitbreiding op die huidige bladsy kan reageer.</translation>
 <translation id="5554720593229208774">E-pos-sertifiseringoutoriteit</translation>
-<translation id="5554931805291741487">Uitvoergebied is amper vol</translation>
 <translation id="5556459405103347317">Herlaai</translation>
 <translation id="5558125320634132440">Hierdie werf is geblokkeer omdat dit dalk inhoud vir volwassenes bevat</translation>
 <translation id="5558129378926964177">Zoem in</translation>
@@ -3777,6 +3785,7 @@
 <translation id="5689516760719285838">Ligging</translation>
 <translation id="56907980372820799">Koppel data</translation>
 <translation id="5691511426247308406">Familie</translation>
+<translation id="5691581861107245578">Kry emosiekoonvoorstelle op grond van wat jy tik</translation>
 <translation id="5691772641933328258">Vingerafdruk nie herken nie</translation>
 <translation id="5692183275898619210">Drukwerk is voltooi</translation>
 <translation id="569425414730375234">Huidige incognitosessie: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4136,6 +4145,7 @@
 <translation id="6124698108608891449">Hierdie werf benodig nog toestemmings.</translation>
 <translation id="6125479973208104919">Ongelukkig moet jy weer jou rekening by hierdie <ph name="DEVICE_TYPE" /> voeg.</translation>
 <translation id="6129691635767514872">Die gekose data is van Chrome en gesinkroniseerde toestelle af verwyder. Jou Google-rekening het dalk ander vorme van blaaigeskiedenis, soos soektogte en aktiwiteit, vanaf ander Google-dienste by <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Jou kind</translation>
 <translation id="6129938384427316298">Netscape-sertifikaatkommentaar</translation>
 <translation id="6129953537138746214">Spasie</translation>
 <translation id="6130692320435119637">Voeg Wi-Fi by</translation>
@@ -4176,6 +4186,7 @@
 <translation id="6178664161104547336">Kies 'n sertifikaat</translation>
 <translation id="6181431612547969857">Aflaai geblokkeer</translation>
 <translation id="6185132558746749656">Toestelligging</translation>
+<translation id="6195446518998936840">Om ouerkontroles op te stel, moet jou kind 'n Google-rekening hê wat jy sal help bestuur. Jy kan met die Family Link-program skermtydlimiete stel, webwerwe goedkeur of blokkeer, en meer.</translation>
 <translation id="6195693561221576702">Hierdie toestel kan nie in vanlyn demonstrasiemodus opgestel word nie.</translation>
 <translation id="6196640612572343990">Blokkeer derdeparty-webkoekies</translation>
 <translation id="6196854373336333322">Die uitbreiding "<ph name="EXTENSION_NAME" />" het beheer oor jou instaanbedienerinstellings oorgeneem, wat beteken dat dit enigiets wat jy aanlyn doen, kan verander of breek of daarop kan inluister. As jy nie seker is hoekom hierdie verandering plaasgevind het nie, wil jy dit waarskynlik nie hê nie.</translation>
@@ -4941,7 +4952,6 @@
 <translation id="7152478047064750137">Hierdie uitbreiding vereis geen spesiale toestemmings nie</translation>
 <translation id="7154130902455071009">Verander jou beginblad na: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Bestaande foto in kamera of lêer</translation>
-<translation id="7163766494674803047">Drukkertoestelfout</translation>
 <translation id="7165320105431587207">Kon nie netwerk opstel nie</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" kan prente, video en klanklêers in die gemerkte liggings lees.</translation>
 <translation id="7167486101654761064">Maak altyd hierdie tipe lêers oop</translation>
@@ -5930,6 +5940,7 @@
 <translation id="8372369524088641025">Swak WEP-sleutel</translation>
 <translation id="8372477600026034341">Ekstra gashere</translation>
 <translation id="8373652277231415614">Gedeelde gidse in Crostini</translation>
+<translation id="8376384591331888629">Insluitend derdeparty-webkoekies op hierdie werf</translation>
 <translation id="8378714024927312812">Bestuur deur jou organisasie</translation>
 <translation id="8379878387931047019">Hierdie toestel steun nie die tipe sekuriteitsleutel wat deur hierdie webwerf versoek word nie</translation>
 <translation id="8379991678458444070">Boekmerk hierdie oortjie om vinnig terug te kom hierheen</translation>
@@ -6013,6 +6024,7 @@
 <translation id="8481187309597259238">Bevestig USB-toestemming</translation>
 <translation id="8483248364096924578">IP-adres</translation>
 <translation id="8487678622945914333">Zoem in</translation>
+<translation id="8489156414266187072">Persoonlike voorstelle word net in jou rekening gewys</translation>
 <translation id="8490896350101740396">Die volgende kioskprogramme "<ph name="UPDATED_APPS" />" is opgedateer. Herselflaai die toestel om die opdateringproses te voltooi.</translation>
 <translation id="8493236660459102203">Mikrofoon:</translation>
 <translation id="8496717697661868878">Gebruik hierdie inprop</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 6fcf4ee..ebca1312 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">ተፈጥሯል</translation>
 <translation id="1067291318998134776">Linux (ቅድመ-ይሁንታ)</translation>
 <translation id="1067922213147265141">ሌሎች የGoogle አገልግሎቶች</translation>
+<translation id="1068961867683064946">ለልጅዎ የGoogle መለያ ይፍጠሩ</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">በኮምፒውተርዎ ላይ ያለ ሌላ ፕሮግራም Chrome የሚሰራበት መንገድ ሊቀይር የሚችል አንድ ቅጥያ አክሏል።
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">የ<ph name="SUBPAGE_TITLE" /> ንዑስ ገጽ ተመለስ አዝራር</translation>
 <translation id="1322046419516468189">በእርስዎ <ph name="SAVED_PASSWORDS_STORE" /> ውስጥ የተቀመጡ የይለፍ ቃላትን ይመልከቱ እና ያስተዳድሩ</translation>
 <translation id="1324106254079708331">የተነጣጠሩ ጥቃቶች አደጋ ያለበት የማንኛውም ሰው የግል Google መለያዎችን ይጠብቃል</translation>
+<translation id="1325985428688410772">ክፍተትን ያክሉ</translation>
 <translation id="1326317727527857210">ትሮችዎን ከሌሎች መሣሪያዎችዎ ለማግኘት ወደ Chrome ይግቡ።</translation>
 <translation id="1327074568633507428">በGoogle ደመና ህትመት ላይ ያለ አታሚ</translation>
 <translation id="1327272175893960498">የKerberos ቲኬቶች</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">አውታረ መረብ አዋቅር</translation>
 <translation id="230927227160767054">ይህ ገጽ የአገልግሎት ተቆጣጣሪ ለመጫን ይፈልጋል።</translation>
 <translation id="2309620859903500144">ይህ ጣቢያ የእርስዎን እንቅስቃሴ ወይም የብርሃን ዳሳሾችን እንዳይደርስ አግዷል።</translation>
+<translation id="2314873619957287124">ልጅዎ መማር፣ መጫወት እና መመርመር እንዲችል ለመርዳት ዲጂታል የመሬት ህገጋትን ያቀናብሩ</translation>
 <translation id="2315414688463285945">የLinux ፋይሎችን ማዋቀር ላይ ስህተት። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="2315587498123194634">አገናኝ ወደ <ph name="DEVICE_NAME" /> ይላኩ</translation>
 <translation id="2316129865977710310">አይ፣ አመሰግናለሁ</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">አንድ ጣቢያ ተከታታይ ወደቦችን መድረስ ሲፈልግ ይጠይቅ (የሚመከር)</translation>
 <translation id="2323018538045954000">የተቀመጡ የWi-Fi አውታረ መረቦች</translation>
 <translation id="2325444234681128157">የይለፍ ቃል አስታውስ</translation>
+<translation id="2326160999284776503">በልጅዎ Google መለያ ይግቡ</translation>
 <translation id="2326188115274135041">ራስ-ሰር መክፈትን ለማብራት ፒን ያረጋግጡ</translation>
 <translation id="2326931316514688470">&amp;መተግበሪያን ዳግም ጫን</translation>
 <translation id="2327492829706409234">መተግበሪያን አንቃ</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ደህንነቱ በተጠበቀ ሁኔታ ሊወርድ አይችልም</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> መጣመር ይፈልጋል</translation>
-<translation id="2341476639346994688">አታሚ ቆሟል</translation>
 <translation id="2342740338116612727">ዕልባቶች ታክለዋል</translation>
 <translation id="2343747224442182863">በዚህ ትር ላይ አተኩር</translation>
 <translation id="2344686470986284227">ምናባዊ የማሽን ተቆጣጣሪውን በመጀመር ላይ</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">አንድ ስህተት ተከስቷል። እባክዎ የእርስዎን አታሚ ያረጋግጡና እንደገና ይሞክሩ።</translation>
 <translation id="2387052489799050037">ወደ መነሻ ሂድ</translation>
 <translation id="2387458720915042159">የተኪ ግንኙነት አይነት</translation>
+<translation id="2391082728065870591">የግብረመልስ ሪፖርት ላክ</translation>
 <translation id="2391419135980381625">መደበኛ ቅርጸ-ቁምፊ</translation>
 <translation id="2392163307141705938">የእርስዎ ወላጅ ለ<ph name="IDS_SHORT_PRODUCT_NAME" /> ያቀናበሩት የጊዜ ገደብ ላይ ድደርሰዋል።</translation>
 <translation id="2392369802118427583">አግብር</translation>
@@ -1281,6 +1285,7 @@
 <translation id="2537178555904266562">የይለፍ ቃሎችን ማስመር ላይ ስሕተት</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> የሚከተሉትን ፋይሎች እና አቃፊዎች መመልከትና ማርትዕ ይችላል</translation>
 <translation id="2537927931785713436">የምናባዊ ማሽን ምስሉን በመፈተሽ ላይ</translation>
+<translation id="2538084450874617176">ይህንን <ph name="DEVICE_TYPE" /> ማነው የሚጠቀመው?</translation>
 <translation id="2538361623464451692">ስምረት ተሰናክሏል</translation>
 <translation id="2540449034743108469">የቅጥያ እርምጃዎችን  ለማዳመጥ «ጀምር» የሚለውን ይጫኑ</translation>
 <translation id="2541002089857695151">ሙሉ ማያ ገጽን መውሰድ ይትባ?</translation>
@@ -2740,6 +2745,7 @@
 <translation id="4364327530094270451">ሐብሐብ</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> አንድ መስኮት እያጋራ ነው።</translation>
 <translation id="4364830672918311045">ማሳወቂያዎችን አሳይ</translation>
+<translation id="4368115171699243057">ለልጅዎ ይህንን <ph name="DEVICE_TYPE" /> ያቀናብሩ</translation>
 <translation id="437004882363131692">የ<ph name="DEVICE_TYPE" /> ጠቃሚ ምክሮችን፣ ቅናሾችን እና ዝማኔዎችን ያግኙ፣ እና ግብረመልስ ያጋሩ። በማንኛውም ጊዜ ከደንበኝነት ምዝገባ ይውጡ።</translation>
 <translation id="4370975561335139969">ያስገቧቸው ኢሜይል እና የይለፍ ቃል አይዛመዱም።</translation>
 <translation id="4374831787438678295">Linux ጫኚ</translation>
@@ -2900,6 +2906,7 @@
 <translation id="4565377596337484307">የይለፍ ቃል ደብቅ</translation>
 <translation id="4565917129334815774">የስርዓት ምዝግቦችን ያከማቹ</translation>
 <translation id="456717285308019641">የሚተረጎመው የገጽ ቋንቋ</translation>
+<translation id="4567533462991917415">ከቅንብር በኋላ ሁል ጊዜ ተጨማሪ ሰዎችን ማከል ይችላሉ። እያንዳንዱ ሰው መለያቸውን ግላዊ ማድረግ እና ውሂብን የግል አድርገው ማቆየት ይችላሉ።</translation>
 <translation id="4567772783389002344">ቃል አክል</translation>
 <translation id="4568025708905928793">የደህንነት ቁልፍ በመጠየቅ ላይ ነው</translation>
 <translation id="4568213207643490790">ይቅርታ፣ የGoogle መለያዎች በዚህ መሣሪያ ላይ አይፈቀዱም።</translation>
@@ -2951,6 +2958,7 @@
 <translation id="4628762811416793313">የLinux መያዣው ውቅረት አልተጠናቀቀም። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="4633003931260532286">ቅጥያው ቢያንስ የ«<ph name="IMPORT_VERSION" />» ስሪት የሆነ «<ph name="IMPORT_NAME" />» ያስፈልገዋል፣ ነገር ግን «<ph name="INSTALLED_VERSION" />» ስሪት ብቻ ነው የተጫነው</translation>
 <translation id="4633757335284074492">ምትኬ ወደ Google Drive ያስቀምጡ። በማንኛውም ጊዜ ውሂብ በቀላሉ ወደነበሩበት ይመልሱ ወይም መሣሪያን ይቀይሩ። ይህ ምትኬ የመተግበሪያ ውሂብን ያካትታል። ምትኬዎች ወደ Google ተሰቅለዋል እና የልጅዎን የGoogle መለያ የይለፍ ቃል በመጠቀም ተመስጥረዋል።</translation>
+<translation id="4634575639321169635">ይህንን መሣሪያ ለስራ ወይም ለግል ጥቅም ያዋቅሩ</translation>
 <translation id="4634771451598206121">እንደገና ይግቡ...</translation>
 <translation id="4635072447747973225">Crostiniን አራግፍ</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ለእንግዳ ተጠቃሚዎች አይገኝም።</translation>
@@ -3369,6 +3377,7 @@
 <translation id="5185386675596372454">አዲሱ የ«<ph name="EXTENSION_NAME" />» መተግበሪያ ስሪት ተጨማሪ ፍቃዶችን ስለሚፈልግ ተሰናክሏል።</translation>
 <translation id="5185500136143151980">ምንም በይነመረብ የለም</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">ለ<ph name="PROFILE_LOCAL_NAME" /> አማራጮች ምናሌ</translation>
 <translation id="5190926251776387065">ወደብን አግብር</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> በርካታ ፋይሎችን ለማውረድ ይፈልጋል</translation>
 <translation id="5192062846343383368">የእርስዎን የበላይ ተቆጣጣሪ ቅንብሮች ለመመልከት የ Family Link መተግበሪያውን ይክፈቱ</translation>
@@ -3445,7 +3454,6 @@
 <translation id="5283677936944177147">ውይ!  ስርዓቱ የመሣሪያ ሞዴሉን እና ወይም ተከታታይ ቁጥሩን ማወቅ አልቻለም።</translation>
 <translation id="5284445933715251131">ማውረድ ቀጥል</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" />ን አሳይ</translation>
-<translation id="5286094561505658635">ውጽአት አካባቢ ሙሉ ነው</translation>
 <translation id="5286194356314741248">በመቃኘት ላይ</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">የእርስዎ መለያዎች</translation>
@@ -3616,6 +3624,7 @@
 <translation id="5495597166260341369">ማሳያን እንደበራ አቆይ</translation>
 <translation id="5496587651328244253">አደራጅ</translation>
 <translation id="5497251278400702716">ይህን ፋይል</translation>
+<translation id="5498967291577176373">ለስምዎ፣ ለአድራሻዎ ወይም የስልክ ቁጥርዎ መስመር በየአስተያየት ጥቆማዎች አማካኝነት በፍጥነት ይፃፉ</translation>
 <translation id="5499313591153584299">ይህ ፋይል ለኮምፒዩተርዎ ጎጂ ሊሆን ይችላል።</translation>
 <translation id="5499453227627332024">ለእርስዎ Linux Container ደረጃ ማሻሻያ ይገኛል። እንዲሁም ከቅንብሮች መተግበሪያ በኋላ ማሻሻል ይችላሉ።</translation>
 <translation id="5500709606820808700">ዛሬ የደህንነት ፍተሻ ተካሂዷል።</translation>
@@ -3666,7 +3675,6 @@
 <translation id="5553089923092577885">የሰርቲፊኬት መመሪያ ጉድኝቶች</translation>
 <translation id="5554489410841842733">ቅጥያው በአሁኑ ገጽ ላይ በሚተገበርብት ጊዜ ይህ አዶ የሚታይ ይሆናል።</translation>
 <translation id="5554720593229208774">የኢሜይል እውቅና ማረጋገጫ ባለስልጣን</translation>
-<translation id="5554931805291741487">ውጽዓት አካባቢ ሊሞላ ትንሽ ነው የቀረው</translation>
 <translation id="5556459405103347317">ዳግም ጫን</translation>
 <translation id="5558125320634132440">ይህ ጣቢያ የአዋቂ ይዘት ሊኖረው ስለሚችል ታግዷል</translation>
 <translation id="5558129378926964177">&amp;አጉላ</translation>
@@ -3773,6 +3781,7 @@
 <translation id="5689516760719285838">አካባቢ</translation>
 <translation id="56907980372820799">ውሂብ አገናኝ</translation>
 <translation id="5691511426247308406">ቤተሰብ</translation>
+<translation id="5691581861107245578">በሚተይቡት ላይ በመመርኮዝ የስሜት ገላጭ ምስል አስተያየት ጥቆማዎችን ያግኙ</translation>
 <translation id="5691772641933328258">የጣት አሻራ አልታወቀም</translation>
 <translation id="5692183275898619210">ማተም ተጠናቋል</translation>
 <translation id="569425414730375234">የአሁኑ ማንነት የማያሳውቅ ክፍለ-ጊዜ፦ <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4132,6 +4141,7 @@
 <translation id="6124698108608891449">ይህ ጣቢያ ተጨማሪ ፈቃዶችን ይፈልጋል።</translation>
 <translation id="6125479973208104919">የአጋጣሚ ነገር ሆኖ መለያዎን እንደገና ወደዚህ <ph name="DEVICE_TYPE" /> ማከል አለብዎት።</translation>
 <translation id="6129691635767514872">የተመረጠው ውሂብ ከChrome እና የሰመሩ መሣሪያዎች ተወግዷል። የGoogle መለያዎ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ላይ እንደ የሌሎች Google አገልግሎቶች ፍለጋዎች እና እንቅስቃሴ ያለ ሌሎች የአሰሳ ታሪክ ዓይነት ሊኖረው ይችላል።</translation>
+<translation id="6129839611163153407">የእርስዎ ልጅ</translation>
 <translation id="6129938384427316298">የNetscape ሰርቲፊኬት አስተያየት</translation>
 <translation id="6129953537138746214">ባዶ ቦታ</translation>
 <translation id="6130692320435119637">Wi-Fi ያክሉ</translation>
@@ -4172,6 +4182,7 @@
 <translation id="6178664161104547336">የዕውቅና ማረጋገጫ ምረጥ/ሰርቲፊኬት</translation>
 <translation id="6181431612547969857">ማውረድ ታግዷል</translation>
 <translation id="6185132558746749656">የመሣሪያ አካባቢ</translation>
+<translation id="6195446518998936840">የወላጅ መቆጣጠሪያዎችን ለማቀናበር፣ ልጅዎ ለማስተዳደር የሚያግዝ የGoogle መለያ ሊኖረው ይገባል። በቤተሰብ አገናኝ መተግበሪያ አማካኝነት የማያ ገጽ ጊዜ ገደቦችን ማቀናበር፣ ድር ጣቢያዎችን ማጽደቅ ወይም ማገድ እና ሌሎችንም ማድረግ ይችላሉ።</translation>
 <translation id="6195693561221576702">ይህ መሣሪያ በመስመር ውጭ የቅንጭብ ማሳያ ሁነታ ላይ ሊቀናበር አይችልም።</translation>
 <translation id="6196640612572343990">የሦስተኛ ወገን ኩኪዎችን አግድ</translation>
 <translation id="6196854373336333322">ይህ «<ph name="EXTENSION_NAME" />» ቅጥያ የተኪ ቅንብሮችዎን ተቆጣጥሯል፣ ይሄ ማለት መስመር ላይ የሚያደርጉት ማንኛውም ነገር ሊቀይር፣ ሊሰብር ወይም በድብቅ ሊከታተል ይችላል። ይሄ ለውጥ ለምን እንደተከሰተ እርግጠኛ ካልሆኑ የማይፈልጉት ነገር ሳይሆን አይቀርም።</translation>
@@ -4937,7 +4948,6 @@
 <translation id="7152478047064750137">ይህ ቅጥያ ምንም ልዩ ፈቃዶችን አይፈልግም</translation>
 <translation id="7154130902455071009">የመጀመሪያ ገጽዎን ወደሚከተለው ይቀይሩ፦ <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">ነባር ፎቶ ከካሜራ ወይም ከፋይል</translation>
-<translation id="7163766494674803047">የአታሚ መሣሪያ ስሕተት</translation>
 <translation id="7165320105431587207">አውታረ መረቡን ማዋቀር አልተሳካም</translation>
 <translation id="716640248772308851">«<ph name="EXTENSION" />» ምልክት በተደረገባቸው አካባቢዎች ውስጥ ምስሎችን፣ ቪዲዮ እና የድምጽ ፋይሎችን ማንበብ ይችላል።</translation>
 <translation id="7167486101654761064">&amp;ሁልጊዜ እንዲህ አይነት ፋይሎችን ክፈት</translation>
@@ -5931,6 +5941,7 @@
 <translation id="8372369524088641025">መጥፎ የWEP ቁልፍ</translation>
 <translation id="8372477600026034341">ተጨማሪ አስተናጋጆች</translation>
 <translation id="8373652277231415614">በCrostini የተጋሩ ማውጫዎች</translation>
+<translation id="8376384591331888629">በዚህ ጣቢያ ላይ የሶስተኛ ወገን ኩኪዎችን ጨምሮ</translation>
 <translation id="8378714024927312812">በእርስዎ ድርጅት የሚተዳደር</translation>
 <translation id="8379878387931047019">ይህ መሣሪያ በዚህ ድር ጣቢያ የተጠየቀውን የደህንነት ቁልፍ አይነት አይደግፍም</translation>
 <translation id="8379991678458444070">ይህን ትር ዕልባት በማድረግ በፍጥነት ወደዚህ ተመልሰው ይምጡ</translation>
@@ -6014,6 +6025,7 @@
 <translation id="8481187309597259238">የዩኤስቢ ፈቃድን ያረጋግጡ</translation>
 <translation id="8483248364096924578">የአይፒ አድራሻ</translation>
 <translation id="8487678622945914333">አጉላ</translation>
+<translation id="8489156414266187072">የግል የአስተያየት ጥቆማዎች በእርስዎ መለያ ላይ ብቻ ይታያሉ</translation>
 <translation id="8490896350101740396">የሚከተሉት የkiosk መተግበሪያዎች «<ph name="UPDATED_APPS" />» ዘምነዋል። የዝመና ሂደቱን ለማጠናቀቅ እባክዎ መሣሪያውን እንደገና ያስነሱ።</translation>
 <translation id="8493236660459102203">ማይክሮፎን፦</translation>
 <translation id="8496717697661868878">ይህን ተሰኪ አሂድ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 8b9bbb4c..a579bd9 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">لا يمكن تنزيل الملف <ph name="FILE_NAME" /> بشكل آمن.</translation>
 <translation id="2340263603246777781">يريد <ph name="ORIGIN" /> الاقتران</translation>
-<translation id="2341476639346994688">الطابعة متوقفة</translation>
 <translation id="2342740338116612727">تمت إضافة الإشارات المرجعية</translation>
 <translation id="2343747224442182863">التركيز على علامة التبويب هذه</translation>
 <translation id="2344686470986284227">جارٍ بدء تشغيل وحدة تحكُّم الآلة الافتراضية</translation>
@@ -3445,7 +3444,6 @@
 <translation id="5283677936944177147">عفوًا!  تعذّر النظام في تحديد طراز الجهاز أو رقمه التسلسلي.</translation>
 <translation id="5284445933715251131">متابعة التنزيل</translation>
 <translation id="5285635972691565180">عرض <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">منطقة المخرَجات في الطابعة ممتلئة</translation>
 <translation id="5286194356314741248">جارٍ البحث</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">حساباتك</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">تعيينات سياسة الشهادة</translation>
 <translation id="5554489410841842733">سيظهر هذا الرمز عند عمل الإضافة في الصفحة الحالية.</translation>
 <translation id="5554720593229208774">المرجع المصدق للبريد الإلكتروني</translation>
-<translation id="5554931805291741487">منطقة المخرَجات في الطابعة شبه ممتلئة</translation>
 <translation id="5556459405103347317">إعادة التحميل</translation>
 <translation id="5558125320634132440">تم حظر هذا الموقع الإلكتروني لأنه قد يتضمّن محتوى للكبار</translation>
 <translation id="5558129378926964177">ت&amp;كبير</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">لا تتطلب هذه الإضافة أذونات خاصة</translation>
 <translation id="7154130902455071009">تغيير الصفحة الرئيسية إلى: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">صورة حالية من الكاميرا أو الملف</translation>
-<translation id="7163766494674803047">هناك خطأ جهاز في الطابعة</translation>
 <translation id="7165320105431587207">تعذّرت تهيئة الشبكة</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" يمكنها قراءة ملفات الصور والفيديو والصوت في المواقع المحددة.</translation>
 <translation id="7167486101654761064">فت&amp;ح هذا النوع من الملفّات دائمًا</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index a860a69..00f65043 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">পাৱাৰৱাশ্ব</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" />ক সুৰক্ষিতভাৱে ডাউনল’ড কৰিব নোৱাৰি</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" />এ যোৰা লাগিব খোজে</translation>
-<translation id="2341476639346994688">প্ৰিণ্টাৰটো বন্ধ হৈ আছে</translation>
 <translation id="2342740338116612727">বুকমাৰ্ক যোগ কৰা হ’ল</translation>
 <translation id="2343747224442182863">এই টেবটোত ফ'কাছ কৰক</translation>
 <translation id="2344686470986284227">ভাৰ্ছুৱেল মেচিনটোৰ নিয়ন্ত্ৰক আৰম্ভ কৰি থকা হৈছে</translation>
@@ -3441,7 +3440,6 @@
 <translation id="5283677936944177147">আমি দুঃখিত!  ছিষ্টেমটোৱে ডিভাইচৰ ম'ডেল আৰু ক্ৰমিক নম্বৰ নিৰ্ধাৰণ কৰিব নোৱাৰিলে।</translation>
 <translation id="5284445933715251131">ডাউনল’ড কৰি থকাটো অব্যাহত ৰাখক</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> প্ৰদৰ্শন কৰক</translation>
-<translation id="5286094561505658635">আউটপুট ক্ষেত্ৰখন ভৰ্তি হৈ পৰিছে</translation>
 <translation id="5286194356314741248">স্কেন কৰি থকা হৈছে</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">আপোনাৰ একাউণ্ট</translation>
@@ -3662,7 +3660,6 @@
 <translation id="5553089923092577885">প্ৰমাণপত্ৰৰ নীতি মেপিং</translation>
 <translation id="5554489410841842733">এক্সটেনশ্বনটোৱে বর্তমানৰ পৃষ্ঠাটোত কার্য সম্পাদন কৰিব পাৰিলে এই আইকনটো দেখা পোৱা যাব।</translation>
 <translation id="5554720593229208774">ইমেইলৰ প্ৰমাণপত্ৰৰ কৰ্তৃপক্ষ</translation>
-<translation id="5554931805291741487">আউটপুট ক্ষেত্ৰখন প্ৰায় ভৰ্তি হৈ পৰিছে</translation>
 <translation id="5556459405103347317">পুনৰ ল’ড কৰক</translation>
 <translation id="5558125320634132440">এই ছাইটটো অৱৰোধ কৰা হৈছে কাৰণ ইয়াত প্ৰাপ্তবয়স্কৰ সমল থাকিব পাৰে</translation>
 <translation id="5558129378926964177">জুম &amp;ইন কৰক</translation>
@@ -4927,7 +4924,6 @@
 <translation id="7152478047064750137">এই এক্সটেনশ্বনটোৰ বাবে কোনো বিশেষ অনুমতি ল’ব নালাগে</translation>
 <translation id="7154130902455071009">আপোনাৰ আৰম্ভণিৰ পৃষ্ঠা ইয়ালৈ সলনি কৰক: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">কেমেৰা বা ফাইলৰ পৰা ইতিমধ্যে থকা ফট’</translation>
-<translation id="7163766494674803047">প্ৰিণ্টাৰৰ ডিভাইচৰ আসোঁৱাহ</translation>
 <translation id="7165320105431587207">নেটৱৰ্ক কনফিগাৰ কৰাত বিফল হ'ল</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />"এ পৰীক্ষা কৰা অৱস্থানসমূহত প্ৰতিচ্ছবি, ভিডিঅ’ আৰু ধ্বনিৰ ফাইলসমূহ পঢ়িব আৰু লিখিব পাৰে।</translation>
 <translation id="7167486101654761064">এই ধৰণৰ ফাইলসমূহ &amp;সদায় খোলক</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index f7f13fd0..6e3ff79 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -1104,7 +1104,6 @@
 <translation id="2336381494582898602">Sıfırlama</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> faylını təhlükəsiz şəkildə endirmək mümkün deyil</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ütləndirmək istəyir</translation>
-<translation id="2341476639346994688">Printer dayanıb</translation>
 <translation id="2342740338116612727">Əlfəcinlər əlavə edildi</translation>
 <translation id="2343747224442182863">Bu Tabı Mərkəzə Gətirin</translation>
 <translation id="2344686470986284227">Virtual cihaz nizamlayıcısı başladılır</translation>
@@ -3441,7 +3440,6 @@
 <translation id="5283677936944177147">Ups!  Sistem bu cihaz üçün cihaz modelini və seriya nömrəsini aşkarlaya bilmədi.</translation>
 <translation id="5284445933715251131">Endirməyə Davam edin</translation>
 <translation id="5285635972691565180">Displey <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Çıxış sahəsi dolub</translation>
 <translation id="5286194356314741248">Skan edilir</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Hesablarınız</translation>
@@ -3662,7 +3660,6 @@
 <translation id="5553089923092577885">Sertifikat Siyasəti Tutuşdurmaları</translation>
 <translation id="5554489410841842733">Artırma cari səhifədə fəaliyyət göstərən zaman bu ikona görünə bilər.</translation>
 <translation id="5554720593229208774">E-poçt Sertifikatlaşdırma Təşkilatı</translation>
-<translation id="5554931805291741487">Çıxış sahəsi dolmaq üzrədir</translation>
 <translation id="5556459405103347317">Yenidən yükləyin</translation>
 <translation id="5558125320634132440">Bu sayt böyüklər üçün məzmun ehtiva etdiyinə görə bloklanıb.</translation>
 <translation id="5558129378926964177">Böyüdün</translation>
@@ -4931,7 +4928,6 @@
 <translation id="7152478047064750137">Bu artırma xüsusi icazələr tələb etmir</translation>
 <translation id="7154130902455071009">Başlanğıc səhifənizi buna dəyişin: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Kamera və ya fayldan mövcud foto</translation>
-<translation id="7163766494674803047">Printer cihaz xətası</translation>
 <translation id="7165320105431587207">Şəbəkəni konfiqurasiya etmək uğursuz oldu</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" yoxlanılmış məkanlarda şəkil, video və səs fayllarını oxuya bilər.</translation>
 <translation id="7167486101654761064">Bu növ faylları hər zaman açın</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 8331d2d..c0e17b2a 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Бяспечна спампаваць файл "<ph name="FILE_NAME" />" нельга</translation>
 <translation id="2340263603246777781">Сайт <ph name="ORIGIN" /> запытвае спалучэнне</translation>
-<translation id="2341476639346994688">Работа прынтара спынена</translation>
 <translation id="2342740338116612727">Закладкі дададзены</translation>
 <translation id="2343747224442182863">Перайсці на гэту ўкладку</translation>
 <translation id="2344686470986284227">Ідзе запуск кантролера віртуальнай машыны</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Памылка!  Сістэме не ўдалося вызначыць мадэль прылады або яе серыйны нумар.</translation>
 <translation id="5284445933715251131">Працягнуць спампоўванне</translation>
 <translation id="5285635972691565180">Дысплэй <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Выхадны латок запоўнены</translation>
 <translation id="5286194356314741248">Праверка</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Вашы ўліковыя запісы</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Супастаўленні палітык сертыфікатаў</translation>
 <translation id="5554489410841842733">Гэты значок будзе бачным, калі пашырэнне можа працаваць на бягучай старонцы.</translation>
 <translation id="5554720593229208774">Цэнтр сертыфікацыі электроннай пошты</translation>
-<translation id="5554931805291741487">Выхадны латок амаль запоўнены</translation>
 <translation id="5556459405103347317">Перазагрузіць</translation>
 <translation id="5558125320634132440">Сайт заблакіраваны, бо ён можа змяшчаць змесціва для дарослых</translation>
 <translation id="5558129378926964177">Павялічыць &amp;маштаб</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Пашырэнне не патрабуе спецыяльных дазволаў</translation>
 <translation id="7154130902455071009">Змяніць пачатковую старонку на наступную: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Існуючае фота з камеры або файла</translation>
-<translation id="7163766494674803047">Памылка прынтара</translation>
 <translation id="7165320105431587207">Не ўдалося наладзіць сетку</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" можа чытаць відарысы, відэа- і аўдыяфайлы ў адзначаных месцах.</translation>
 <translation id="7167486101654761064">&amp;Заўсёды адкрываць файлы гэтага тыпу</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 71d6ba1e..362510ea 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -1109,7 +1109,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> не може да се изтегли по сигурен начин</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> иска да се сдвои</translation>
-<translation id="2341476639346994688">Принтерът спря</translation>
 <translation id="2342740338116612727">Отметките бяха добавени</translation>
 <translation id="2343747224442182863">Фокус върху този раздел</translation>
 <translation id="2344686470986284227">Контролерът за виртуалната машина стартира</translation>
@@ -3457,7 +3456,6 @@
 <translation id="5283677936944177147">Ами сега! Системата не успя да определи модела или серийния номер на устройството.</translation>
 <translation id="5284445933715251131">Продължаване на изтеглянето</translation>
 <translation id="5285635972691565180">Екран <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Изходната тава е пълна</translation>
 <translation id="5286194356314741248">Сканира се</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Вашите профили</translation>
@@ -3679,7 +3677,6 @@
 <translation id="5553089923092577885">Съответствия на правилата за сертификата</translation>
 <translation id="5554489410841842733">Тази икона ще се показва, когато разширението може да изпълнява действия върху текущата страница.</translation>
 <translation id="5554720593229208774">Сертифициращ орган за имейл</translation>
-<translation id="5554931805291741487">Изходната тава е почти пълна</translation>
 <translation id="5556459405103347317">Повторно зареждане</translation>
 <translation id="5558125320634132440">Този сайт е блокиран, защото в него може да има съдържание за възрастни</translation>
 <translation id="5558129378926964177">&amp;Увеличаване</translation>
@@ -4954,7 +4951,6 @@
 <translation id="7152478047064750137">Това разширение не изисква специални разрешения</translation>
 <translation id="7154130902455071009">Промяна на началната ви страница на <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Съществуваща снимка от камерата или от файл</translation>
-<translation id="7163766494674803047">Грешка в принтера</translation>
 <translation id="7165320105431587207">Конфигурирането на мрежата не бе успешно</translation>
 <translation id="716640248772308851"><ph name="EXTENSION" /> може да чете изображения, видео- и звукови файлове в местоположенията с отметка.</translation>
 <translation id="7167486101654761064">&amp;Файловете от този тип да се отварят винаги</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index dd691a3f..b366e55 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">পাওয়ারওয়াশ</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ফাইলটি নিরাপদে ডাউনলোড করা যাচ্ছে না</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> এদের সঙ্গে যুক্ত হতে চাচ্ছে</translation>
-<translation id="2341476639346994688">প্রিন্টার বন্ধ করা আছে</translation>
 <translation id="2342740338116612727">বুকমার্ক যোগ করা হয়েছে</translation>
 <translation id="2343747224442182863">এই ট্যাবে ফোকাস করুন</translation>
 <translation id="2344686470986284227">ভার্চুয়াল মেশিন কন্ট্রোলার শুরু করা হচ্ছে</translation>
@@ -3446,7 +3445,6 @@
 <translation id="5283677936944177147">ওহো! সিস্টেমটি ডিভাইস মডেল বা সিরিয়াল নম্বর নির্ধারণ করতে ব্যর্থ হয়েছে।</translation>
 <translation id="5284445933715251131">ডাউনলোড চালিয়ে যান</translation>
 <translation id="5285635972691565180">ডিসপ্লে <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">আউটপুট এরিয়া সম্পূর্ণ ভরে গেছে</translation>
 <translation id="5286194356314741248">স্ক্যান হচ্ছে</translation>
 <translation id="5286252187236914003">L2TP/IPসেক</translation>
 <translation id="5287425679749926365">আপনার অ্যাকাউন্টগুলি</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">সার্টিফিকেট নীতি ম্যাপিং</translation>
 <translation id="5554489410841842733">এক্সটেনশনটি বর্তমান পৃষ্ঠাতে কাজ করলে এই আইনকটিকে দেখা যাবে৷</translation>
 <translation id="5554720593229208774">ইমেল সার্টিফিকেশন কর্তৃপক্ষ</translation>
-<translation id="5554931805291741487">আউটপুট এরিয়া প্রায় ভরে এসেছে</translation>
 <translation id="5556459405103347317">রিলোড করুন</translation>
 <translation id="5558125320634132440">প্রাপ্তবয়স্কদের জন্য কন্টেন্ট থাকার কারণে হয়ত এই সাইট ব্লক করা হয়েছে</translation>
 <translation id="5558129378926964177">বড়ো করুন</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">এই এক্সটেনশনটির জন্য কোনও বিশেষ অনুমতির প্রয়োজন নেই</translation>
 <translation id="7154130902455071009">আপনার সূচনা পৃষ্ঠাকে এতে পরিবর্তন করুন: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">ক্যামেরা বা ফাইল থেকে বিদ্যমান ফটো</translation>
-<translation id="7163766494674803047">প্রিন্টারের ডিভাইসে কোনও সমস্যা হয়েছে</translation>
 <translation id="7165320105431587207">নেটওয়ার্ক কনফিগার করা যায়নি</translation>
 <translation id="716640248772308851">" <ph name="EXTENSION" /> " নির্দিষ্ট করা অবস্থানে ছবি, ভিডিও এবং সাউন্ড ফাইলগুলি পড়তে পারে৷</translation>
 <translation id="7167486101654761064">&amp;সবসময় এই ধরনের ফাইল খুলুন</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 80cdaf9..88aa051 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -60,7 +60,7 @@
 <translation id="1067048845568873861">Kreirano</translation>
 <translation id="1067291318998134776">Linux (Beta)</translation>
 <translation id="1067922213147265141">Ostale Googleove usluge</translation>
-<translation id="1068961867683064946">Izradite Google račun za svoje dijete</translation>
+<translation id="1068961867683064946">Kreirajte Google račun za svoje dijete</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Drugi program na vašem računaru je dodao ekstenziju koja može promijeniti rad Chromea.
 
@@ -273,7 +273,7 @@
 <translation id="1319983966058170660">Dugme za povratak na podstranicu <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Prikažite i upravljajte lozinkama koje čuva <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Štiti lične Google račune svih onih koji su u opasnosti od ciljanih napada</translation>
-<translation id="1325985428688410772">Dodavanje razmaka</translation>
+<translation id="1325985428688410772">Dodaj prostor</translation>
 <translation id="1326317727527857210">Da bi se prikazale kartice s vaših ostalih uređaja, prijavite se na Chrome.</translation>
 <translation id="1327074568633507428">Štampač na usluzi Google Cloud Print</translation>
 <translation id="1327272175893960498">Kerberos tiketi</translation>
@@ -1084,7 +1084,7 @@
 <translation id="2307462900900812319">Konfiguriraj mrežu</translation>
 <translation id="230927227160767054">Ova stranica želi instalirati obrađivača usluge.</translation>
 <translation id="2309620859903500144">Ovoj stranici je blokiran pristup vašim senzorima pokreta ili svjetla.</translation>
-<translation id="2314873619957287124">Postavite osnovna digitalna pravila kako biste svojem djetetu pomogli da uči, igra se i istražuje</translation>
+<translation id="2314873619957287124">Postavite osnovna digitalna pravila da pomognete djetetu da uči, igra se i istražuje</translation>
 <translation id="2315414688463285945">Greška prilikom konfiguriranja Linux fajlova. Pokušajte ponovo.</translation>
 <translation id="2315587498123194634">Pošalji link na uređaj <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Ne, hvala</translation>
@@ -1096,7 +1096,7 @@
 <translation id="2322318151094136999">Pitaj kada web lokacija želi pristupiti serijskim priključcima (preporučeno)</translation>
 <translation id="2323018538045954000">Sačuvane WiFi mreže</translation>
 <translation id="2325444234681128157">Zapamti lozinku</translation>
-<translation id="2326160999284776503">Prijavite se s Google računom svojeg djeteta</translation>
+<translation id="2326160999284776503">Prijavite se putem Google računa djeteta</translation>
 <translation id="2326188115274135041">Potvrdite PIN da uključite automatsko otključavanje</translation>
 <translation id="2326931316514688470">&amp;Ponovo učitaj aplikaciju</translation>
 <translation id="2327492829706409234">Omogući aplikaciju</translation>
@@ -1112,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Nije moguće sigurno preuzeti fajl <ph name="FILE_NAME" /></translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> se želi upariti</translation>
-<translation id="2341476639346994688">Štampač je zaustavljen</translation>
 <translation id="2342740338116612727">Dodana je oznaka</translation>
 <translation id="2343747224442182863">Fokusiraj ovu stranicu</translation>
 <translation id="2344686470986284227">Pokretanje kontrolera virtuelnog računara</translation>
@@ -1156,7 +1155,7 @@
 <translation id="2384436799579181135">Došlo je do greške. Provjerite svoj štampač i pokušajte ponovo.</translation>
 <translation id="2387052489799050037">Odlazak na početnu stranicu</translation>
 <translation id="2387458720915042159">Vrsta veze s proksi serverom</translation>
-<translation id="2391082728065870591">Slanje izvješća s povratnim informacijama</translation>
+<translation id="2391082728065870591">Pošalji izvještaj o povratnim informacijama</translation>
 <translation id="2391419135980381625">Standardni font</translation>
 <translation id="2392163307141705938">Dostignuto je vremensko ograničenje koje je tvoj roditelj postavio za <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Aktiviraj</translation>
@@ -1287,7 +1286,7 @@
 <translation id="2537178555904266562">Greška prilikom sinhroniziranja lozinki</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> može pregledati i uređivati sljedeće fajlove i foldere</translation>
 <translation id="2537927931785713436">Provjeravanje slike virtuelnog računara</translation>
-<translation id="2538084450874617176">Tko upotrebljava ovaj <ph name="DEVICE_TYPE" />?</translation>
+<translation id="2538084450874617176">Ko koristi ovaj <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Sinhronizacija je onemogućena</translation>
 <translation id="2540449034743108469">Pritisnite "Započnite" da slušate aktivnosti ekstenzija</translation>
 <translation id="2541002089857695151">Optimizirati emitiranje cijelog ekrana?</translation>
@@ -2749,7 +2748,7 @@
 <translation id="4364327530094270451">Dinja</translation>
 <translation id="4364567974334641491">Aplikacija <ph name="APP_NAME" /> dijeli prozor.</translation>
 <translation id="4364830672918311045">Prikaži obavještenja</translation>
-<translation id="4368115171699243057">Postavite ovaj uređaj <ph name="DEVICE_TYPE" /> za svoje dijete</translation>
+<translation id="4368115171699243057">Postavite ovaj <ph name="DEVICE_TYPE" /> za svoje dijete</translation>
 <translation id="437004882363131692">Primajte savjete, ponude i ažuriranja za uređaj <ph name="DEVICE_TYPE" /> i dijelite povratne informacije. Otkažite pretplatu bilo kada.</translation>
 <translation id="4370975561335139969">Unijeli ste e-adresu i zaporku koje se ne podudaraju</translation>
 <translation id="4374831787438678295">Paket za instalaciju Linuxa</translation>
@@ -2910,7 +2909,7 @@
 <translation id="4565377596337484307">Sakrij lozinku</translation>
 <translation id="4565917129334815774">Pohrani zapisnike sistema</translation>
 <translation id="456717285308019641">Jezik stranice za prijevod</translation>
-<translation id="4567533462991917415">Nakon postavljanja uvijek možete dodati više osoba. Svaka osoba može prilagoditi svoj račun i zadržati privatnost svojih podataka.</translation>
+<translation id="4567533462991917415">Uvijek možete dodati još osoba nakon postavljanja. Svaka osoba može personalizirati svoj račun i čuvati privatnost podataka.</translation>
 <translation id="4567772783389002344">Dodaj riječ</translation>
 <translation id="4568025708905928793">Traži se sigurnosni ključ</translation>
 <translation id="4568213207643490790">Žao nam je, Google računi nisu dozvoljeni na ovom uređaju.</translation>
@@ -2962,7 +2961,7 @@
 <translation id="4628762811416793313">Postavljanje Linux spremnika nije završeno. Pokušajte ponovo.</translation>
 <translation id="4633003931260532286">Minimalna verzija za "<ph name="IMPORT_NAME" />" koju zahtijeva ekstenzija je "<ph name="IMPORT_VERSION" />", ali je instalirana samo verzija "<ph name="INSTALLED_VERSION" />"</translation>
 <translation id="4633757335284074492">Izradite sigurnosne kopije na Google disku. Jednostavno u svakom trenutku vratite podatke ili promijenite uređaj. Ova sigurnosna kopija obuhvata podatke aplikacija. Sigurnosne kopije se otpremaju na Google i šifriraju pomoću lozinke Google računa vašeg djeteta.</translation>
-<translation id="4634575639321169635">Postavite ovaj uređaj za poslovnu ili osobnu upotrebu</translation>
+<translation id="4634575639321169635">Postavite ovaj uređaj za rad ili ličnu upotrebu</translation>
 <translation id="4634771451598206121">Prijavite se ponovo...</translation>
 <translation id="4635072447747973225">Deinstalirajte Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> nije dostupan gostima.</translation>
@@ -3381,7 +3380,7 @@
 <translation id="5185386675596372454">Najnovija verzija ekstenzije "<ph name="EXTENSION_NAME" />" je onemogućena jer joj je potrebno više odobrenja.</translation>
 <translation id="5185500136143151980">Nema internetske veze</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
-<translation id="5190392396417374287">Izbornik opcija za <ph name="PROFILE_LOCAL_NAME" /></translation>
+<translation id="5190392396417374287">Opcije menija za profil <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Aktiviranje priključka</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> želi preuzeti više fajlova</translation>
 <translation id="5192062846343383368">Otvorite aplikaciju Family Link da vidite svoje postavke nadzora</translation>
@@ -3458,7 +3457,6 @@
 <translation id="5283677936944177147">Ups!  Sistem nije uspio odrediti model ili serijski broj uređaja.</translation>
 <translation id="5284445933715251131">Nastavi preuzimati</translation>
 <translation id="5285635972691565180">Ekran <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Izlazna ladica je puna</translation>
 <translation id="5286194356314741248">Skeniranje</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Vaši računi</translation>
@@ -3629,7 +3627,7 @@
 <translation id="5495597166260341369">Ostavi uključen zaslon</translation>
 <translation id="5496587651328244253">Organizacija</translation>
 <translation id="5497251278400702716">Ovaj fajl</translation>
-<translation id="5498967291577176373">Pišite brže pomoću prijedloga u tekstu vašeg imena, adrese ili telefonskog broja</translation>
+<translation id="5498967291577176373">Brže pišite uz umetnute preporuke za ime, adresu ili broj telefona</translation>
 <translation id="5499313591153584299">Ovaj fajl može naštetiti vašem računaru.</translation>
 <translation id="5499453227627332024">Dostupna je nadogradnja za Linux spremnik. Također možete nadograditi kasnije putem aplikacije Postavke.</translation>
 <translation id="5500709606820808700">Sigurnosna provjera je izvršena danas</translation>
@@ -3680,7 +3678,6 @@
 <translation id="5553089923092577885">Mapiranja pravila potvrda</translation>
 <translation id="5554489410841842733">Ikona će biti vidljiva kada ekstenzija može djelovati na trenutnoj stranici.</translation>
 <translation id="5554720593229208774">Tijelo za certifikaciju e-pošte</translation>
-<translation id="5554931805291741487">Izlazna ladica je skoro puna</translation>
 <translation id="5556459405103347317">Učitaj ponovo</translation>
 <translation id="5558125320634132440">Ova web lokacija je blokirana zbog mogućeg sadržaja za odrasle</translation>
 <translation id="5558129378926964177">Uve&amp;ćaj</translation>
@@ -3787,7 +3784,7 @@
 <translation id="5689516760719285838">Lokacija</translation>
 <translation id="56907980372820799">Poveži podatke</translation>
 <translation id="5691511426247308406">Porodica</translation>
-<translation id="5691581861107245578">Primajte prijedloge emojija na temelju onoga što upisujete</translation>
+<translation id="5691581861107245578">Primajte prijedloge emoji sličica na osnovu sadržaja koji pišete</translation>
 <translation id="5691772641933328258">Otisak prsta nije prepoznat</translation>
 <translation id="5692183275898619210">Štampanje je završeno</translation>
 <translation id="569425414730375234">Trenutna sesija u anonimnom načinu rada: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4188,7 +4185,7 @@
 <translation id="6178664161104547336">Odaberite potvrdu</translation>
 <translation id="6181431612547969857">Preuzimanje je blokirano</translation>
 <translation id="6185132558746749656">Lokacija uređaja</translation>
-<translation id="6195446518998936840">Da bi se postavio roditeljski nadzor, vaše dijete mora imati Google račun pri čijem ćete upravljanju i vi pomoći. Možete postaviti ograničenja vremena upotrebe, odobravati ili blokirati web-lokacije i više pomoću aplikacije Family Link.</translation>
+<translation id="6195446518998936840">Da postavite roditeljski nadzor, dijete mora imati Google račun kojim ćete upravljati. Pomoću aplikacije Family Link možete postaviti ograničenja vremena korištenja uređaja, odobriti ili blokirati web lokacije i još mnogo toga.</translation>
 <translation id="6195693561221576702">Ovaj uređaj se ne može postaviti u demo načinu rada van mreže.</translation>
 <translation id="6196640612572343990">Blokiraj kolačiće trećih strana</translation>
 <translation id="6196854373336333322">Ekstenzija "<ph name="EXTENSION_NAME" />" je preuzela kontrolu nad postavkama vašeg proksi servera, što znači da može promijeniti, prekinuti ili prisluškivati sve što radite na mreži. Ako niste sigurni zašto je došlo do ove promjene, vjerovatno je i ne želite.</translation>
@@ -4954,7 +4951,6 @@
 <translation id="7152478047064750137">Za ovu ekstenziju nisu potrebna posebna odobrenja</translation>
 <translation id="7154130902455071009">Promijenite početnu stranicu na: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Postojeća fotografija sa kamere ili fajl</translation>
-<translation id="7163766494674803047">Greška uređaja štampača</translation>
 <translation id="7165320105431587207">Konfiguriranje mjreže nije uspjelo</translation>
 <translation id="716640248772308851">Ekstenzija "<ph name="EXTENSION" />" može čitati fajlove za slike, videozapise i zvuk u označenim lokacijama.</translation>
 <translation id="7167486101654761064">&amp;Uvijek otvori ovu vrstu datoteka</translation>
@@ -5803,7 +5799,7 @@
 <translation id="8198323535106903877">Instalirat ćemo sljedeći broj aplikacija za vas: <ph name="NUMBER_OF_APPS" /></translation>
 <translation id="8199300056570174101">Svojstva mreže (usluge) i uređaja</translation>
 <translation id="8200772114523450471">Nastavi</translation>
-<translation id="8201717382574620700">Odaberite albume za <ph name="TOPIC_SOURCE" /></translation>
+<translation id="8201717382574620700">Odaberite albume: <ph name="TOPIC_SOURCE" /></translation>
 <translation id="8202160505685531999">Ponovo unesite zaporku da biste ažurirali svoj profil na uređaju <ph name="DEVICE_TYPE" />.</translation>
 <translation id="8203732864715032075">Šalje vam obavještenja i kao zadanu postavku pamti ovaj računar za Messages. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="820568752112382238">Najposjećenije web lokacije</translation>
@@ -5944,7 +5940,7 @@
 <translation id="8372369524088641025">Nepravilan WEP ključ</translation>
 <translation id="8372477600026034341">Dodatni host računari</translation>
 <translation id="8373652277231415614">Dijeljeni direktoriji na Crostiniju</translation>
-<translation id="8376384591331888629">Uključujući kolačiće treće strane na ovoj web-lokaciji</translation>
+<translation id="8376384591331888629">Uključujući kolačiće treće strane na ovoj web lokaciji</translation>
 <translation id="8378714024927312812">Pod upravljanjem vaše organizacije</translation>
 <translation id="8379878387931047019">Ovaj uređaj ne podržava vrstu sigurnosnog ključa koji je zatražila ova web lokacija</translation>
 <translation id="8379991678458444070">Označite karticu da se lakše vratite</translation>
@@ -6028,7 +6024,7 @@
 <translation id="8481187309597259238">Potvrdite odobrenje za USB</translation>
 <translation id="8483248364096924578">IP adresa</translation>
 <translation id="8487678622945914333">Uvećaj</translation>
-<translation id="8489156414266187072">Osobni prijedlozi prikazuju se samo na vašem računu</translation>
+<translation id="8489156414266187072">Lični prijedlozi se prikazuju samo na vašem računu</translation>
 <translation id="8490896350101740396">Ažurirane su sljedeće aplikacije za kiosk: "<ph name="UPDATED_APPS" />". Ponovno pokrenite uređaj da dovršite postupak ažuriranja.</translation>
 <translation id="8493236660459102203">Mikrofon:</translation>
 <translation id="8496717697661868878">Pokreni ovaj dodatak</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 0ac3c7b..31c85c7 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Creada</translation>
 <translation id="1067291318998134776">Linux (versió beta)</translation>
 <translation id="1067922213147265141">Altres serveis de Google</translation>
+<translation id="1068961867683064946">Crea un Compte de Google per al teu fill</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Un altre programa de l'ordinador ha afegit una extensió que pot canviar el funcionament de Chrome.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Botó Enrere de la subpàgina <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Consulta i gestiona les contrasenyes desades al <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Protegeix els Comptes personals de Google de qualsevol usuari que corri el risc de rebre atacs dirigits</translation>
+<translation id="1325985428688410772">Afegeix un espai</translation>
 <translation id="1326317727527857210">Inicia la sessió a Chrome per accedir a les pestanyes dels altres dispositius que tinguis.</translation>
 <translation id="1327074568633507428">Impressora a Google Cloud Print</translation>
 <translation id="1327272175893960498">Tiquets de Kerberos</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Configura la xarxa</translation>
 <translation id="230927227160767054">Aquesta pàgina vol instal·lar un gestor de serveis.</translation>
 <translation id="2309620859903500144">Aquest lloc web no té permís per accedir als sensors de llum o moviment.</translation>
+<translation id="2314873619957287124">Defineix les regles digitals bàsiques per ajudar el teu fill a aprendre, jugar i explorar</translation>
 <translation id="2315414688463285945">S'ha produït un error en configurar els fitxers de Linux. Torna-ho a provar.</translation>
 <translation id="2315587498123194634">Envia l'enllaç a <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">No, gràcies</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Pregunta'm quan un lloc web vulgui accedir a ports en sèrie (opció recomanada)</translation>
 <translation id="2323018538045954000">Xarxes Wi-Fi desades</translation>
 <translation id="2325444234681128157">Recorda la contrasenya</translation>
+<translation id="2326160999284776503">Inicia la sessió amb el Compte de Google del teu fill</translation>
 <translation id="2326188115274135041">Confirma el PIN per activar el desbloqueig automàtic</translation>
 <translation id="2326931316514688470">&amp;Tornar a carregar l'aplicació</translation>
 <translation id="2327492829706409234">Activa l'aplicació</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> no es pot baixar de manera segura</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> es vol vincular</translation>
-<translation id="2341476639346994688">La impressora s'ha aturat</translation>
 <translation id="2342740338116612727">Les adreces d'interès s'han afegit</translation>
 <translation id="2343747224442182863">Posa el focus en aquesta pestanya</translation>
 <translation id="2344686470986284227">S'està iniciant el controlador de la màquina virtual</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">S'ha produït un error. Comprova la impressora i torna-ho a provar.</translation>
 <translation id="2387052489799050037">Ves a la pantalla d’inici</translation>
 <translation id="2387458720915042159">Tipus de connexió del servidor intermediari</translation>
+<translation id="2391082728065870591">Envia un informe de suggeriments</translation>
 <translation id="2391419135980381625">Tipus de lletra estàndard</translation>
 <translation id="2392163307141705938">Has arribat al límit de temps que els teus pares han definit per a <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Activa</translation>
@@ -1281,6 +1285,7 @@
 <translation id="2537178555904266562">S'ha produït un error en sincronitzar les contrasenyes</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> pot veure i editar els fitxers i les carpetes següents</translation>
 <translation id="2537927931785713436">S'està comprovant la imatge de la màquina virtual</translation>
+<translation id="2538084450874617176">Qui està utilitzant aquest dispositiu <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Sincronització desactivada</translation>
 <translation id="2540449034743108469">Prem Inicia per escoltar les activitats de les extensions</translation>
 <translation id="2541002089857695151">Vols optimitzar l'emissió en pantalla completa?</translation>
@@ -2741,6 +2746,7 @@
 <translation id="4364327530094270451">Meló</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> està compartint una finestra.</translation>
 <translation id="4364830672918311045">Mostra les notificacions</translation>
+<translation id="4368115171699243057">Configura aquest dispositiu <ph name="DEVICE_TYPE" /> per al teu fill</translation>
 <translation id="437004882363131692">Obtén consells, ofertes i informació sobre <ph name="DEVICE_TYPE" />, i envia suggeriments. Pots cancel·lar la subscripció en qualsevol moment.</translation>
 <translation id="4370975561335139969">El correu electrònic i la contrasenya indicats no coincideixen</translation>
 <translation id="4374831787438678295">Instal·lador de Linux</translation>
@@ -2901,6 +2907,7 @@
 <translation id="4565377596337484307">Oculta la contrasenya</translation>
 <translation id="4565917129334815774">Emmagatzema els registres del sistema</translation>
 <translation id="456717285308019641">Idioma de la pàgina que cal traduir</translation>
+<translation id="4567533462991917415">Sempre ets a temps d'afegir més persones després de la configuració. Cada persona pot personalitzar el seu compte i mantenir la privadesa de les dades.</translation>
 <translation id="4567772783389002344">Afegeix la paraula</translation>
 <translation id="4568025708905928793">Se sol·licita una clau de seguretat</translation>
 <translation id="4568213207643490790">No s'admeten comptes de Google en aquest dispositiu.</translation>
@@ -2952,6 +2959,7 @@
 <translation id="4628762811416793313">La configuració del contenidor de Linux no s'ha completat. Torna-ho a provar.</translation>
 <translation id="4633003931260532286">L'extensió requereix <ph name="IMPORT_NAME" /> amb <ph name="IMPORT_VERSION" /> com a versió mínima, però només hi ha instal·lada la versió <ph name="INSTALLED_VERSION" /></translation>
 <translation id="4633757335284074492">Crea còpies de seguretat a Google Drive. Canvia de dispositiu o restaura'n les dades fàcilment en qualsevol moment. Aquesta còpia de seguretat inclou dades d'aplicacions. Les còpies de seguretat es pengen a Google i s'encripten amb la contrasenya del Compte de Google del teu fill.</translation>
+<translation id="4634575639321169635">Configura aquest dispositiu per a la feina o per a ús personal</translation>
 <translation id="4634771451598206121">Torna a iniciar la sessió...</translation>
 <translation id="4635072447747973225">Desinstal·la Crostini</translation>
 <translation id="4635398712689569051">La pàgina <ph name="PAGE_NAME" /> no està disponible per als usuaris convidats.</translation>
@@ -3235,7 +3243,7 @@
 <translation id="5015344424288992913">Resolent el servidor intermediari...</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">Recorda</translation>
-<translation id="5017643436812738274">Pots navegar per les pàgines amb un cursor de text. Prem Ctrl+Cerca+7 per desactivar-lo.</translation>
+<translation id="5017643436812738274">Pots navegar per les pàgines amb un cursor de text. Prem Ctrl+Cerca+7 per desactivar aquesta funció.</translation>
 <translation id="5018207570537526145">Obre el lloc web de l'extensió</translation>
 <translation id="5018526990965779848">Envia dades d'ús i de diagnòstic. Ajuda a millorar la teva experiència a Android enviant automàticament a Google dades de diagnòstic, del dispositiu i d'ús d'aplicacions. Aquestes dades ajudaran a millorar l'estabilitat del sistema i de les aplicacions, entre altres característiques. Una part de les dades agregades també serà útil per a les aplicacions i per als partners de Google, com ara els desenvolupadors d'Android. Si tens activada l'opció Activitat al web i en aplicacions addicional, és possible que aquestes dades es desin al teu Compte de Google.</translation>
 <translation id="5021750053540820849">Encara no s'ha actualitzat</translation>
@@ -3370,6 +3378,7 @@
 <translation id="5185386675596372454">La darrera versió de "<ph name="EXTENSION_NAME" />" s'ha desactivat perquè necessita més permisos.</translation>
 <translation id="5185500136143151980">Sense connexió a Internet</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Menú d'opcions per a <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Activa el port</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vol baixar diversos fitxers</translation>
 <translation id="5192062846343383368">Obre l'aplicació Family Link per veure la configuració de supervisió</translation>
@@ -3447,7 +3456,6 @@
 <translation id="5283677936944177147">El sistema no ha pogut determinar el model ni el número de sèrie del dispositiu.</translation>
 <translation id="5284445933715251131">Continua la baixada</translation>
 <translation id="5285635972691565180">Pantalla <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Té l'àrea de sortida plena</translation>
 <translation id="5286194356314741248">S'està cercant</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Els comptes</translation>
@@ -3591,7 +3599,7 @@
 <translation id="5464660706533281090">Els usuaris menors d'edat no poden canviar aquesta opció de configuració.</translation>
 <translation id="5466374726908360271">Engan&amp;xa i cerca "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5468173180030470402">S'estan cercant usos compartits de fitxers</translation>
-<translation id="5469852975082458401">Pots navegar per les pàgines amb un cursor de text. Prem F7 per desactivar-ho.</translation>
+<translation id="5469852975082458401">Pots navegar per les pàgines amb un cursor de text. Prem F7 per desactivar aquesta funció.</translation>
 <translation id="5470735824776589490">Cal reiniciar el dispositiu per poder restablir-lo amb Powerwash. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Hola! Soc la teva veu per a la conversió de text a parla.</translation>
 <translation id="5472627187093107397">Desa les contrasenyes d'aquest lloc web</translation>
@@ -3618,6 +3626,7 @@
 <translation id="5495597166260341369">Mantén la pantalla activa</translation>
 <translation id="5496587651328244253">Organitza</translation>
 <translation id="5497251278400702716">Aquest fitxer</translation>
+<translation id="5498967291577176373">Escriu més ràpidament amb suggeriments inserits per al teu nom, la teva adreça o el teu número de telèfon</translation>
 <translation id="5499313591153584299">Aquest fitxer pot malmetre l'ordinador.</translation>
 <translation id="5499453227627332024">Hi ha una actualització disponible per al teu contenidor de Linux. També pots fer l'actualització més endavant des de l'aplicació Configuració.</translation>
 <translation id="5500709606820808700">S'ha executat una comprovació de seguretat avui</translation>
@@ -3668,7 +3677,6 @@
 <translation id="5553089923092577885">Assignacions de normes de certificats</translation>
 <translation id="5554489410841842733">Aquesta icona serà visible quan les extensions puguin actuar a la pàgina actual.</translation>
 <translation id="5554720593229208774">Correu electrònic de l'entitat emissora de certificats</translation>
-<translation id="5554931805291741487">Té l'àrea de sortida quasi plena</translation>
 <translation id="5556459405103347317">Torna a carregar</translation>
 <translation id="5558125320634132440">Aquest lloc web s'ha bloquejat perquè pot tenir contingut no apte per a menors</translation>
 <translation id="5558129378926964177">&amp;Amplia</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Ubicació</translation>
 <translation id="56907980372820799">Enllaça les dades</translation>
 <translation id="5691511426247308406">Família</translation>
+<translation id="5691581861107245578">Obtén suggeriments d'emojis basats en el que escrius</translation>
 <translation id="5691772641933328258">L'empremta digital no s'ha reconegut</translation>
 <translation id="5692183275898619210">S'ha completat la impressió</translation>
 <translation id="569425414730375234">Sessió d'incògnit actual: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Aquest lloc web necessita més permisos.</translation>
 <translation id="6125479973208104919">Cal que tornis a afegir el teu compte en aquest <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6129691635767514872">Les dades seleccionades s'han suprimit de Chrome i dels dispositius sincronitzats. És possible que el teu compte de Google tingui altres formes de l'historial de navegació, com ara les cerques i l'activitat d'altres serveis de Google a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">El teu fill</translation>
 <translation id="6129938384427316298">Comentari de certificat de Netscape</translation>
 <translation id="6129953537138746214">Espai</translation>
 <translation id="6130692320435119637">Afegeix una Wi‑Fi</translation>
@@ -4175,6 +4185,7 @@
 <translation id="6178664161104547336">Seleccioneu un certificat</translation>
 <translation id="6181431612547969857">S'ha bloquejat la baixada</translation>
 <translation id="6185132558746749656">Ubicació del dispositiu</translation>
+<translation id="6195446518998936840">Per configurar els controls parentals, el teu fill ha de tenir un Compte de Google que es gestionarà amb la teva ajuda. Pots definir límits de temps de connexió, aprovar o bloquejar llocs web i fer més coses amb l'aplicació Family Link.</translation>
 <translation id="6195693561221576702">Aquest dispositiu no es pot configurar en mode de demostració sense connexió.</translation>
 <translation id="6196640612572343990">Bloqueja les galetes de tercers</translation>
 <translation id="6196854373336333322">L'extensió <ph name="EXTENSION_NAME" /> ha passat a controlar la configuració del servidor intermediari. Això vol dir que pot modificar, desfer o espiar qualsevol acció que feu en línia. Si no esteu segur del motiu d'aquest canvi, és possible que no el vulgueu aplicar.</translation>
@@ -4940,7 +4951,6 @@
 <translation id="7152478047064750137">Aquesta extensió no requereix cap permís especial</translation>
 <translation id="7154130902455071009">Canvia la pàgina d'inici per: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto existent de la càmera o d'un fitxer</translation>
-<translation id="7163766494674803047">Error de dispositiu de la impressora</translation>
 <translation id="7165320105431587207">No s'ha pogut configurar la xarxa</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" pot llegir imatges, vídeos i fitxers d'àudio de les ubicacions marcades.</translation>
 <translation id="7167486101654761064">&amp;Obre sempre els fitxers d'aquest tipus</translation>
@@ -5930,6 +5940,7 @@
 <translation id="8372369524088641025">Clau WEP no vàlida</translation>
 <translation id="8372477600026034341">Amfitrions addicionals</translation>
 <translation id="8373652277231415614">Directoris compartits de Crostini</translation>
+<translation id="8376384591331888629">Incloses les galetes de tercers en aquest lloc web</translation>
 <translation id="8378714024927312812">Gestionat per la teva organització</translation>
 <translation id="8379878387931047019">Aquest dispositiu no admet el tipus de clau de seguretat sol·licitat per aquest lloc web</translation>
 <translation id="8379991678458444070">Afegeix aquesta pestanya a les adreces d'interès per poder-hi tornar ràpidament</translation>
@@ -6013,6 +6024,7 @@
 <translation id="8481187309597259238">Confirma el permís d'USB</translation>
 <translation id="8483248364096924578">Adreça IP</translation>
 <translation id="8487678622945914333">Amplia</translation>
+<translation id="8489156414266187072">Els suggeriments personals només es mostren al teu compte</translation>
 <translation id="8490896350101740396">S'han actualitzat les aplicacions de Quiosc següents: <ph name="UPDATED_APPS" />. Reinicieu el dispositiu per completar el procés d'actualització.</translation>
 <translation id="8493236660459102203">Micròfon:</translation>
 <translation id="8496717697661868878">Executa aquest connector</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 1bb04f78..eb11a143 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Soubor <ph name="FILE_NAME" /> nelze bezpečně stáhnout</translation>
 <translation id="2340263603246777781">Web <ph name="ORIGIN" /> žádá o spárování</translation>
-<translation id="2341476639346994688">Tiskárna je zastavená</translation>
 <translation id="2342740338116612727">Byly přidány záložky</translation>
 <translation id="2343747224442182863">Vybrat tuto kartu</translation>
 <translation id="2344686470986284227">Spouštění ovladače virtuálního počítače</translation>
@@ -3446,7 +3445,6 @@
 <translation id="5283677936944177147">Jejda, systému se nepodařilo určit model nebo sériové číslo zařízení.</translation>
 <translation id="5284445933715251131">Pokračovat ve stahování</translation>
 <translation id="5285635972691565180">Obrazovka <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Výstupní zásobník je plný</translation>
 <translation id="5286194356314741248">Skenování</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Vaše účty</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">Mapování zásad certifikátu</translation>
 <translation id="5554489410841842733">Tato ikona se zobrazí, když bude rozšíření moci provádět akce na aktuální stránce.</translation>
 <translation id="5554720593229208774">Certifikační autorita pro ověřování e-mailu</translation>
-<translation id="5554931805291741487">Výstupní zásobník je téměř plný</translation>
 <translation id="5556459405103347317">Načíst znovu</translation>
 <translation id="5558125320634132440">Tento web byl zablokován, protože může zahrnovat obsah nevhodný pro děti</translation>
 <translation id="5558129378926964177">&amp;Přiblížit</translation>
@@ -4938,7 +4935,6 @@
 <translation id="7152478047064750137">Toto rozšíření nevyžaduje žádná speciální oprávnění.</translation>
 <translation id="7154130902455071009">Změnit úvodní stránku na: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Stávající fotka z fotoaparátu nebo souboru</translation>
-<translation id="7163766494674803047">Chyba zařízení tiskárny</translation>
 <translation id="7165320105431587207">Konfigurace sítě se nezdařila</translation>
 <translation id="716640248772308851">Rozšíření <ph name="EXTENSION" /> může číst obrázky, video a zvukové soubory v povolených umístěních.</translation>
 <translation id="7167486101654761064">Vždy otevírat soubory tohoto typu</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index b3e6172..ba0d9fb 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Oprettet</translation>
 <translation id="1067291318998134776">Linux (beta)</translation>
 <translation id="1067922213147265141">Andre Google-tjenester</translation>
+<translation id="1068961867683064946">Opret en Google-konto til dit barn</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Et andet program på din computer har tilføjet en udvidelse, som kan ændre måden, Chrome fungerer på.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Knap til undersiden <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Se og administrer gemte adgangskoder på din <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Beskytter personlige Google-konti for brugere, der er i fare for målrettede angreb</translation>
+<translation id="1325985428688410772">Tilføj space</translation>
 <translation id="1326317727527857210">Log ind på Chrome for at få adgang til dine faner på dine andre enheder.</translation>
 <translation id="1327074568633507428">Printer i Google Cloudprinter</translation>
 <translation id="1327272175893960498">Kerberos-billetter</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Konfigurer netværk</translation>
 <translation id="230927227160767054">Denne side ønsker at installere en tjenestehåndtering.</translation>
 <translation id="2309620859903500144">Dette website er blevet blokeret fra at få adgang til dine bevægelses- eller lyssensorer.</translation>
+<translation id="2314873619957287124">Opstil digitale spilleregler, der kan hjælpe dit barn med at lære, spille og udforske</translation>
 <translation id="2315414688463285945">Der opstod en fejl ved konfiguration af Linux-filer. Prøv igen.</translation>
 <translation id="2315587498123194634">Send link til <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nej tak</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Spørg, når et website vil have adgang til serieporte (anbefalet)</translation>
 <translation id="2323018538045954000">Gemte Wi-Fi-netværk</translation>
 <translation id="2325444234681128157">Husk adgangskoden</translation>
+<translation id="2326160999284776503">Log ind med dit barns Google-konto</translation>
 <translation id="2326188115274135041">Bekræft pinkoden for at aktivere automatisk oplåsning</translation>
 <translation id="2326931316514688470">&amp;Genindlæs app</translation>
 <translation id="2327492829706409234">Aktivér app</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> kan ikke downloades sikkert</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> vil gerne parre</translation>
-<translation id="2341476639346994688">Printeren er stoppet</translation>
 <translation id="2342740338116612727">Bogmærkerne blev tilføjet</translation>
 <translation id="2343747224442182863">Sæt denne fane i fokus</translation>
 <translation id="2344686470986284227">Starter controlleren til den virtuelle maskine</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Der opstod en fejl. Tjek din printer, og prøv igen.</translation>
 <translation id="2387052489799050037">Gå til startskærmen</translation>
 <translation id="2387458720915042159">Proxy-forbindelsestype</translation>
+<translation id="2391082728065870591">Send feedbackrapport</translation>
 <translation id="2391419135980381625">Standardskriftstørrelse</translation>
 <translation id="2392163307141705938">Du har nået den grænse, din forælder har angivet for <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Aktivér</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Adgangskoderne kunne ikke synkroniseres</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> kan se og redigere følgende filer og mapper</translation>
 <translation id="2537927931785713436">Tjekker den virtuelle maskines systembillede</translation>
+<translation id="2538084450874617176">Hvem bruger denne <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Synkronisering er deaktiveret</translation>
 <translation id="2540449034743108469">Tryk på "Start" for at lytte efter udvidelsesaktiviteter</translation>
 <translation id="2541002089857695151">Vil du optimere casting til fuld skærm?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Melon</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> deler et vindue.</translation>
 <translation id="4364830672918311045">Vis notifikationer</translation>
+<translation id="4368115171699243057">Konfigurer denne <ph name="DEVICE_TYPE" /> for dit barn</translation>
 <translation id="437004882363131692">Få tips, tilbud og opdateringer i forbindelse med <ph name="DEVICE_TYPE" />, og giv feedback. Du kan til enhver tid afmelde dette.</translation>
 <translation id="4370975561335139969">Den mail og adgangskode, du indtastede, stemmer ikke overens</translation>
 <translation id="4374831787438678295">Linux-installationsprogram</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Skjul adgangskode</translation>
 <translation id="4565917129334815774">Gem systemlogs</translation>
 <translation id="456717285308019641">Sidens sprog, som skal oversættes</translation>
+<translation id="4567533462991917415">Du kan til enhver tid tilføje flere personer efter konfigurationen. Hver person kan tilpasse sin konto og holde sine data private.</translation>
 <translation id="4567772783389002344">Tilføj ord</translation>
 <translation id="4568025708905928793">Der anmodes om en sikkerhedsnøgle</translation>
 <translation id="4568213207643490790">Google-konti er ikke tilladte på denne enhed.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Konfigurationen af Linux-containeren blev ikke fuldført. Prøv igen.</translation>
 <translation id="4633003931260532286">Udvidelsen skal bruge "<ph name="IMPORT_NAME" />" med minimumversionen "<ph name="IMPORT_VERSION" />", men kun versionen "<ph name="INSTALLED_VERSION" />" er installeret</translation>
 <translation id="4633757335284074492">Sikkerhedskopiér i Google Drev. Gendan nemt data, eller skift enhed når som helst. Denne backup omfatter appdata. Backups uploades til Google og krypteres ved hjælp af adgangskoden til dit barns Google-konto.</translation>
+<translation id="4634575639321169635">Konfigurer denne enhed til personlig brug eller arbejdsbrug</translation>
 <translation id="4634771451598206121">Log ind igen...</translation>
 <translation id="4635072447747973225">Afinstaller Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> er ikke tilgængelig for gæstebrugere</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">Den nyeste version af "<ph name="EXTENSION_NAME" />" er blevet deaktiveret, fordi den kræver flere tilladelser.</translation>
 <translation id="5185500136143151980">Der er ingen internetforbindelse</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Indstillingsmenu for <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Aktivér port</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vil downloade flere filer</translation>
 <translation id="5192062846343383368">Åbn Family Link-appen for at se dine indstillinger for forældrestyring</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Ups! Systemet kunne ikke bestemme enhedsmodellen eller serienummeret.</translation>
 <translation id="5284445933715251131">Fortsæt download</translation>
 <translation id="5285635972691565180">Skærm <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Udbakken til papir er fuld</translation>
 <translation id="5286194356314741248">Søger</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Dine konti</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Hold skærmen tændt</translation>
 <translation id="5496587651328244253">Organiser</translation>
 <translation id="5497251278400702716">Denne fil</translation>
+<translation id="5498967291577176373">Skriv hurtigere med indlejrede forslag til dit navn, din adresse eller dit telefonnummer</translation>
 <translation id="5499313591153584299">Denne fil kan være skadelig for din computer.</translation>
 <translation id="5499453227627332024">Der er en tilgængelig opgradering til din Linux-container. Du kan også opgradere senere via appen Indstillinger.</translation>
 <translation id="5500709606820808700">Sikkerhedstjekket blev udført i dag</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Beskrivelse af certifikatpolitik</translation>
 <translation id="5554489410841842733">Dette ikon er synligt, når udvidelsen kan fungere på den aktuelle side.</translation>
 <translation id="5554720593229208774">Mail-certificeringsautoritet</translation>
-<translation id="5554931805291741487">Udbakken til papir er næsten fuld</translation>
 <translation id="5556459405103347317">Genindlæs</translation>
 <translation id="5558125320634132440">Dette website er blokeret, fordi indholdet kan være uegnet for børn</translation>
 <translation id="5558129378926964177">Zoom &amp;ind</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Placering</translation>
 <translation id="56907980372820799">Link data</translation>
 <translation id="5691511426247308406">Familie</translation>
+<translation id="5691581861107245578">Få emojiforslag baseret på det, du skriver</translation>
 <translation id="5691772641933328258">Fingeraftrykket kunne ikke genkendes</translation>
 <translation id="5692183275898619210">Udskrivning er gennemført</translation>
 <translation id="569425414730375234">Aktuel inkognitosession: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Dette website kræver flere tilladelser.</translation>
 <translation id="6125479973208104919">Du skal desværre føje din konto til denne <ph name="DEVICE_TYPE" /> igen.</translation>
 <translation id="6129691635767514872">De valgte data er blevet fjernet fra Chrome og synkroniserede enheder. Din Google-konto kan indeholde andre former for browserhistorik, f.eks. søgninger og aktivitet i andre Google-tjenester, på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
+<translation id="6129839611163153407">Dit barn</translation>
 <translation id="6129938384427316298">Kommentar til Netscape-certifikat</translation>
 <translation id="6129953537138746214">Mellemrum</translation>
 <translation id="6130692320435119637">Tilføj Wi-Fi</translation>
@@ -4176,6 +4186,7 @@
 <translation id="6178664161104547336">Vælg et certifikat</translation>
 <translation id="6181431612547969857">Downloaden blev blokeret</translation>
 <translation id="6185132558746749656">Enhedsplacering</translation>
+<translation id="6195446518998936840">Hvis du vil konfigurere forældreindstillinger, skal dit barn have en Google-konto, som du hjælper med at administrere. Du kan angive begrænsninger for skærmtid, godkende eller blokere websites og meget mere med Family Link-appen.</translation>
 <translation id="6195693561221576702">Enheden kan ikke konfigureres i offlinedemotilstand.</translation>
 <translation id="6196640612572343990">Bloker cookies fra tredjeparter</translation>
 <translation id="6196854373336333322">Udvidelsen <ph name="EXTENSION_NAME" /> har taget kontrol over dine proxyindstillinger, hvilket betyder, at den kan ændre, ødelægge eller aflytte alt, hvad du foretager dig på nettet. Hvis du ikke er sikker på, hvorfor denne ændring er sket, er den sandsynligvis uønsket.</translation>
@@ -4941,7 +4952,6 @@
 <translation id="7152478047064750137">Denne udvidelse kræver ikke nogen særlige tilladelser</translation>
 <translation id="7154130902455071009">Skifte din startside til: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Eksisterende billede fra kamera eller fil</translation>
-<translation id="7163766494674803047">Printerfejl</translation>
 <translation id="7165320105431587207">Netværket kunne ikke konfigureres</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" har læserettigheder til billed-, video- og lydfiler på de markerede placeringer.</translation>
 <translation id="7167486101654761064">&amp;Åbn altid filer af denne type</translation>
@@ -5930,6 +5940,7 @@
 <translation id="8372369524088641025">Ugyldig WEP-nøgle</translation>
 <translation id="8372477600026034341">Ekstra hosts</translation>
 <translation id="8373652277231415614">Delte indekser i Crostini</translation>
+<translation id="8376384591331888629">Medtag tredjepartscookies på dette websites</translation>
 <translation id="8378714024927312812">Administreret af din organisation</translation>
 <translation id="8379878387931047019">Denne enhed understøtter ikke den type sikkerhedsnøgle, der anmodes om på dette website</translation>
 <translation id="8379991678458444070">Tilføj denne fane som bogmærke, så du hurtigt kan vende tilbage hertil</translation>
@@ -6013,6 +6024,7 @@
 <translation id="8481187309597259238">Bekræft USB-tilladelse</translation>
 <translation id="8483248364096924578">IP-adresse</translation>
 <translation id="8487678622945914333">Zoom ind</translation>
+<translation id="8489156414266187072">Personlige forslag vises kun på din konto</translation>
 <translation id="8490896350101740396">Følgende terminalapps "<ph name="UPDATED_APPS" />" er opdateret. Genstart din enhed for at fuldføre opdateringsprocessen.</translation>
 <translation id="8493236660459102203">Mikrofon:</translation>
 <translation id="8496717697661868878">Kør dette plugin</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 70af61d..509d084 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> kann nicht sicher heruntergeladen werden</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> möchte eine Kopplung durchführen</translation>
-<translation id="2341476639346994688">Drucker angehalten</translation>
 <translation id="2342740338116612727">Lesezeichen hinzugefügt</translation>
 <translation id="2343747224442182863">Diesen Tab fokussieren</translation>
 <translation id="2344686470986284227">Controller der virtuellen Maschine wird gestartet</translation>
@@ -3444,7 +3443,6 @@
 <translation id="5283677936944177147">Hoppla! Das System konnte das Gerätemodell oder die Seriennummer nicht erkennen.</translation>
 <translation id="5284445933715251131">Download fortsetzen</translation>
 <translation id="5285635972691565180">Bildschirm <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Druckerausgabe voll</translation>
 <translation id="5286194356314741248">Durchsuchen</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Meine Konten</translation>
@@ -3665,7 +3663,6 @@
 <translation id="5553089923092577885">Zuordnungen von Zertifikatrichtlinien</translation>
 <translation id="5554489410841842733">Dieses Symbol wird eingeblendet, wenn die Erweiterung auf die aktuelle Seite angewendet werden kann.</translation>
 <translation id="5554720593229208774">E-Mail-Zertifizierungsstelle</translation>
-<translation id="5554931805291741487">Druckerausgabe fast voll</translation>
 <translation id="5556459405103347317">Neu laden</translation>
 <translation id="5558125320634132440">Diese Website ist gesperrt, weil sie möglicherweise nicht jugendfreie Inhalte enthält</translation>
 <translation id="5558129378926964177">Ver&amp;größern</translation>
@@ -4936,7 +4933,6 @@
 <translation id="7152478047064750137">Diese Erweiterung erfordert keine speziellen Berechtigungen</translation>
 <translation id="7154130902455071009">Startseite in <ph name="START_PAGE" /> ändern</translation>
 <translation id="7155171745945906037">Vorhandenes Foto von der Kamera oder als Datei</translation>
-<translation id="7163766494674803047">Drucker-Gerätefehler</translation>
 <translation id="7165320105431587207">Fehler beim Konfigurieren des Netzwerks</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" kann Bilder, Video- und Sounddateien an den geprüften Orten lesen.</translation>
 <translation id="7167486101654761064">Dateien dieses Typs &amp;immer öffnen</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 1f9265a..ffc4397e 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -1112,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Δεν είναι δυνατή η λήψη του αρχείου <ph name="FILE_NAME" /> με ασφάλεια</translation>
 <translation id="2340263603246777781">Ο ιστότοπος <ph name="ORIGIN" /> επιθυμεί σύζευξη</translation>
-<translation id="2341476639346994688">Ο εκτυπωτής σταμάτησε</translation>
 <translation id="2342740338116612727">Προστέθηκαν σελιδοδείκτες</translation>
 <translation id="2343747224442182863">Εστίαση σε αυτήν την καρτέλα</translation>
 <translation id="2344686470986284227">Εκκίνηση του χειριστηρίου της εικονικής μηχανής</translation>
@@ -3458,7 +3457,6 @@
 <translation id="5283677936944177147">Δυστυχώς, το σύστημα δεν κατάφερε να προσδιορίσει το μοντέλο ή τον σειριακό αριθμό της συσκευής.</translation>
 <translation id="5284445933715251131">Συνέχιση λήψης</translation>
 <translation id="5285635972691565180">Οθόνη <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Η περιοχή εξόδου είναι γεμάτη</translation>
 <translation id="5286194356314741248">Σάρωση</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Οι λογαριασμοί σας</translation>
@@ -3680,7 +3678,6 @@
 <translation id="5553089923092577885">Αντιστοιχίσεις πολιτικής πιστοποιητικών</translation>
 <translation id="5554489410841842733">Αυτό το εικονίδιο θα είναι ορατό όταν η επέκταση θα μπορεί να ενεργεί στην τρέχουσα σελίδα.</translation>
 <translation id="5554720593229208774">Αρχή πιστοποίησης ηλεκτρονικού ταχυδρομείου</translation>
-<translation id="5554931805291741487">Η περιοχή εξόδου είναι σχεδόν γεμάτη.</translation>
 <translation id="5556459405103347317">Επαναφόρτωση</translation>
 <translation id="5558125320634132440">Αυτός ο ιστότοπος αποκλείστηκε επειδή μπορεί να περιλαμβάνει περιεχόμενο για ενηλίκους.</translation>
 <translation id="5558129378926964177">Μεγέθυνση</translation>
@@ -4955,7 +4952,6 @@
 <translation id="7152478047064750137">Αυτή η επέκταση δεν απαιτεί ειδικές άδειες</translation>
 <translation id="7154130902455071009">Αλλαγή της σελίδας έναρξης σε: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Υπάρχουσα φωτογραφία από την κάμερα ή το αρχείο</translation>
-<translation id="7163766494674803047">Σφάλμα συσκευής εκτυπωτή</translation>
 <translation id="7165320105431587207">Αποτυχία διαμόρφωσης δικτύου</translation>
 <translation id="716640248772308851">Η επέκταση "<ph name="EXTENSION" />" μπορεί να διαβάσει εικόνες, βίντεο και αρχεία ήχου στις επιλεγμένες τοποθεσίες.</translation>
 <translation id="7167486101654761064">&amp;Πάντα άνοιγμα αρχείων αυτού του τύπου</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index eeb68781..aed5882 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -1112,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> can't be downloaded securely</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> wants to pair</translation>
-<translation id="2341476639346994688">Printer is stopped</translation>
 <translation id="2342740338116612727">Bookmarks added</translation>
 <translation id="2343747224442182863">Focus This Tab</translation>
 <translation id="2344686470986284227">Starting the virtual machine controller</translation>
@@ -3458,7 +3457,6 @@
 <translation id="5283677936944177147">Oops!  The system failed to determine device model or serial number.</translation>
 <translation id="5284445933715251131">Continue Downloading</translation>
 <translation id="5285635972691565180">Display <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Output area is full</translation>
 <translation id="5286194356314741248">Scanning</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Your accounts</translation>
@@ -3680,7 +3678,6 @@
 <translation id="5553089923092577885">Certificate Policy Mappings</translation>
 <translation id="5554489410841842733">This icon will be visible when the extension can act on the current page.</translation>
 <translation id="5554720593229208774">Email Certification Authority</translation>
-<translation id="5554931805291741487">Output area is almost full</translation>
 <translation id="5556459405103347317">Reload</translation>
 <translation id="5558125320634132440">This site is blocked because it may have mature content</translation>
 <translation id="5558129378926964177">Zoom &amp;In</translation>
@@ -4954,7 +4951,6 @@
 <translation id="7152478047064750137">This extension requires no special permissions</translation>
 <translation id="7154130902455071009">Change your start page to: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Existing photo from camera or file</translation>
-<translation id="7163766494674803047">Printer device error</translation>
 <translation id="7165320105431587207">Failed to configure network</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" can read images, video and sound files in the ticked locations.</translation>
 <translation id="7167486101654761064">&amp;Always open files of this type</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 03e83ab..e9ba8ae 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">No se puede descargar el archivo <ph name="FILE_NAME" /> de forma segura</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> desea sincronizarse</translation>
-<translation id="2341476639346994688">Se detuvo la impresora</translation>
 <translation id="2342740338116612727">Se agregaron favoritos</translation>
 <translation id="2343747224442182863">Enfocar esta pestaña</translation>
 <translation id="2344686470986284227">Iniciando el controlador de la máquina virtual</translation>
@@ -3445,7 +3444,6 @@
 <translation id="5283677936944177147">El sistema no pudo determinar el modelo del dispositivo ni el número de serie.</translation>
 <translation id="5284445933715251131">Continuar con la descarga</translation>
 <translation id="5285635972691565180">Pantalla <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">La bandeja de salida está completa</translation>
 <translation id="5286194356314741248">Examinando</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Tus cuentas</translation>
@@ -3666,7 +3664,6 @@
 <translation id="5553089923092577885">Asignaciones de directivas para certificados</translation>
 <translation id="5554489410841842733">Este ícono será visible cuando la extensión pueda actuar en la página actual.</translation>
 <translation id="5554720593229208774">Entidad de certificación de correo electrónico</translation>
-<translation id="5554931805291741487">La bandeja de salida está casi completa</translation>
 <translation id="5556459405103347317">Cargar de nuevo</translation>
 <translation id="5558125320634132440">Se bloqueó este sitio porque puede incluir contenido para mayores de edad</translation>
 <translation id="5558129378926964177">Acercar</translation>
@@ -3682,7 +3679,7 @@
 <translation id="5575473780076478375">Extensión de incógnito: <ph name="EXTENSION_NAME" /></translation>
 <translation id="5575528586625653441">Hubo un problema con la solicitud de registro de demostración.</translation>
 <translation id="557722062034137776">Restablecer el dispositivo no afectará las cuentas de Google ni los datos sincronizados con esas cuentas. Sin embargo, se eliminarán todos los archivos guardados localmente en el dispositivo.</translation>
-<translation id="5578016818170236660">Selecciona tus recuerdos</translation>
+<translation id="5578016818170236660">Selecciona recuerdos</translation>
 <translation id="5578059481725149024">Acceso automático</translation>
 <translation id="558170650521898289">Verificación de controladores de hardware de Windows, Microsoft</translation>
 <translation id="5581972110672966454">No se puede unir el dispositivo con el dominio. Vuelve a intentarlo o comunícate con el administrador o propietario de tu dispositivo. Código de error: <ph name="ERROR_CODE" />.</translation>
@@ -4937,7 +4934,6 @@
 <translation id="7152478047064750137">Esta extensión no requiere permisos especiales</translation>
 <translation id="7154130902455071009">Cambiar la página de inicio por <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto existente de la cámara o archivo</translation>
-<translation id="7163766494674803047">Error en la impresora</translation>
 <translation id="7165320105431587207">Error al configurar la red</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" puede leer archivos de video, sonido e imágenes en las ubicaciones seleccionadas.</translation>
 <translation id="7167486101654761064">&amp;Abrir siempre archivos de este tipo</translation>
@@ -6507,7 +6503,7 @@
 <translation id="9088234649737575428">La política empresarial bloqueó <ph name="PLUGIN_NAME" /></translation>
 <translation id="9088446193279799727">No se pudo configurar Linux. Conéctate a Internet y vuelve a intentarlo.</translation>
 <translation id="9088917181875854783">Confirma que esta clave de acceso se muestra en "<ph name="DEVICE_NAME" />":</translation>
-<translation id="9093429538970210897">Te recomendamos realizar una copia de seguridad de los archivos en caso de que esta no pueda completarse. Si inicias la actualización, se cerrará Linux (Beta). Antes de continuar, guarda los archivos abiertos.</translation>
+<translation id="9093429538970210897">Te recomendamos realizar una copia de seguridad de los archivos en caso de que la actualización no pueda completarse. Si inicias la actualización, se cerrará Linux (Beta). Antes de continuar guarda los archivos abiertos.</translation>
 <translation id="9094033019050270033">Actualizar contraseña</translation>
 <translation id="9094038138851891550">El nombre de usuario no es válido</translation>
 <translation id="9094982973264386462">Quitar</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index c909d41..5409cb6 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> no se puede descargar de forma segura</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> quiere vincularse</translation>
-<translation id="2341476639346994688">La impresora se ha detenido</translation>
 <translation id="2342740338116612727">Se han añadido marcadores</translation>
 <translation id="2343747224442182863">Destacar esta pestaña</translation>
 <translation id="2344686470986284227">Iniciando el controlador de la máquina virtual</translation>
@@ -3447,7 +3446,6 @@
 <translation id="5283677936944177147">¡Vaya! El sistema no ha podido determinar el número de serie o el modelo del dispositivo.</translation>
 <translation id="5284445933715251131">Seguir descargando</translation>
 <translation id="5285635972691565180">Pantalla <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">La zona de salida está llena</translation>
 <translation id="5286194356314741248">Buscando</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Tus cuentas</translation>
@@ -3668,7 +3666,6 @@
 <translation id="5553089923092577885">Asignaciones de políticas de certificados</translation>
 <translation id="5554489410841842733">Este icono aparecerá cuando la extensión pueda actuar en la página actual.</translation>
 <translation id="5554720593229208774">Entidad emisora de certificados de correo electrónico</translation>
-<translation id="5554931805291741487">La bandeja de salida está casi llena</translation>
 <translation id="5556459405103347317">Volver a cargar</translation>
 <translation id="5558125320634132440">Este sitio web está bloqueado porque puede que incluya contenido para adultos</translation>
 <translation id="5558129378926964177">&amp;Ampliar</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">Esta extensión no requiere permisos especiales</translation>
 <translation id="7154130902455071009">Cambiar página de inicio por: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto de la cámara o archivo</translation>
-<translation id="7163766494674803047">Error de dispositivo de la impresora</translation>
 <translation id="7165320105431587207">Error al configurar la red</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" puede leer archivos de sonido, vídeo e imágenes en las ubicaciones seleccionadas.</translation>
 <translation id="7167486101654761064">&amp;Abrir siempre archivos de este tipo</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 7e5fe70..c14d475 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Faili <ph name="FILE_NAME" /> ei saa turvaliselt alla laadida</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> soovib siduda</translation>
-<translation id="2341476639346994688">Printer on peatunud</translation>
 <translation id="2342740338116612727">Järjehoidjad on lisatud</translation>
 <translation id="2343747224442182863">Tõsta see vaheleht esile</translation>
 <translation id="2344686470986284227">Virtuaalmasina kontrolleri käivitamine</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Vabandust! Süsteemil ei õnnestunud seadme mudelit või seerianumbrit määrata.</translation>
 <translation id="5284445933715251131">Jätka allalaadimist</translation>
 <translation id="5285635972691565180">Kuva <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Väljastusala on täis</translation>
 <translation id="5286194356314741248">Skaneering</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Teie kontod</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Sertifikaadi reeglite vastendused</translation>
 <translation id="5554489410841842733">See ikoon on nähtav, kui laiendit saab vaadataval lehel kasutada.</translation>
 <translation id="5554720593229208774">Saatke meil sertifitseerimisorganile</translation>
-<translation id="5554931805291741487">Väljastusala on peaaegu täis</translation>
 <translation id="5556459405103347317">Laadi uuesti</translation>
 <translation id="5558125320634132440">See sait blokeeriti, kuna see võib sisaldada täiskasvanutele mõeldud sisu</translation>
 <translation id="5558129378926964177">Suum&amp;i</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Selle laienduse jaoks pole erilube vaja</translation>
 <translation id="7154130902455071009">Määrake avaleheks <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Olemasolev foto kaamerast või failist</translation>
-<translation id="7163766494674803047">Printeri seadme viga</translation>
 <translation id="7165320105431587207">Võrgu seadistamine ebaõnnestus</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />” saab loa märgitud asukohtade pildi-, video- ja helifaile lugeda.</translation>
 <translation id="7167486101654761064">&amp;Ava alati seda tüüpi failid</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index cb178497..bcd0d99 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -67,7 +67,7 @@
 <translation id="1070705170564860382">Beste arakatzaile batean irekiko da <ph name="COUNTDOWN_SECONDS" /> segundo barru</translation>
 <translation id="1071917609930274619">Datuak zifratzea</translation>
 <translation id="1072700771426194907">USB bidezko gailu bat hauteman da</translation>
-<translation id="1076176485976385390">Nabigatu orrietatik tartekatze-ikurra erabilita</translation>
+<translation id="1076176485976385390">Nabigatu orrietatik testu-kurtsorea erabilita</translation>
 <translation id="1076698951459398590">Gaitu gaia</translation>
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blokeatu beti kamerarako sarbidea</translation>
@@ -386,7 +386,7 @@
 <translation id="1465827627707997754">Pizza zatia</translation>
 <translation id="1468571364034902819">Ezin da erabili profil hau</translation>
 <translation id="1470084204649225129">{NUM_TABS,plural, =1{Gehitu fitxa talde berrian}other{Gehitu fitxak talde berrian}}</translation>
-<translation id="1470946456740188591">Tartekatze-ikurraren bidez arakatzeko eginbidea aktibatu edo desaktibatzeko, erabili Ktrl + Bilatu + 7 lasterbidea</translation>
+<translation id="1470946456740188591">Testu-kurtsorearen bidez arakatzeko eginbidea aktibatu edo desaktibatzeko, erabili Ktrl + Bilatu + 7 lasterbidea</translation>
 <translation id="1472675084647422956">Erakutsi gehiago</translation>
 <translation id="1474785664565228650">Mikrofonoaren ezarpenean egindako aldaketa gauzatzeko, berrabiarazi egin behar da Parallels Desktop. Aurrera egiteko, berrabiarazi Parallels Desktop.</translation>
 <translation id="1475502736924165259">Beste kategorietarako egokiak ez diren ziurtagiriak dituzu erregistratuta</translation>
@@ -573,7 +573,7 @@
 <translation id="1680849702532889074">Errore bat gertatu da Linux aplikazioa instalatzean.</translation>
 <translation id="16815041330799488">Ez utzi ikusten webguneei arbelean kopiatzen dituzun testuak eta irudiak</translation>
 <translation id="1682548588986054654">Ezkutuko leiho berria</translation>
-<translation id="1682867089915960590">Tartekatze-ikurraren bidez arakatzeko eginbidea aktibatu nahi duzu?</translation>
+<translation id="1682867089915960590">Testu-kurtsorearen bidez arakatzeko eginbidea aktibatu nahi duzu?</translation>
 <translation id="1686550358074589746">Gaitu idazketa lerrakorra</translation>
 <translation id="168715261339224929">Laster-markak gailu guztietan eskura izateko, aktibatu sinkronizazioa.</translation>
 <translation id="1688867105868176567">Webguneko datuak garbitu nahi dituzu?</translation>
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Berrezarri fabrikako ezarpenak</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ezin da segurtasunez deskargatu</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> webguneak parekatu egin nahi du</translation>
-<translation id="2341476639346994688">Gelditu egin da inprimagailua</translation>
 <translation id="2342740338116612727">Laster-markak gehitu dira</translation>
 <translation id="2343747224442182863">Fokuratu fitxa</translation>
 <translation id="2344686470986284227">Makina birtualaren kontrolagailua abiarazten</translation>
@@ -1507,7 +1506,7 @@
 <translation id="2805770823691782631">Xehetasun gehigarriak</translation>
 <translation id="2807517655263062534">Deskargatutako fitxategiak agertuko dira hemen</translation>
 <translation id="2809586584051668049">eta beste <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation>
-<translation id="2810024255621914659">Hautatutako oroitzapenen diapositiba-aurkezpena sortuko da. Lehendik dauden albumetan aldaketak egiteko, joan <ph name="LINK_BEGIN" />Google Argazkiak<ph name="LINK_END" /> zerbitzura.</translation>
+<translation id="2810024255621914659">Hautatutako oroitzapenen diapositiba-aurkezpen bat sortuko da. Lehendik dauden albumetan aldaketak egiteko, joan <ph name="LINK_BEGIN" />Google Argazkiak<ph name="LINK_END" /> zerbitzura.</translation>
 <translation id="2810390687497823527">Luzapenen bat ezagutzen ez baduzu edo arakatzaileak ez badu funtzionatzen behar bezala, desaktibatu edo pertsonalizatu luzapenak hemen.</translation>
 <translation id="2812049959647166806">Thunderbolt konektorea ez da bateragarria</translation>
 <translation id="2812989263793994277">Ez erakutsi irudirik</translation>
@@ -2722,7 +2721,7 @@
 <translation id="4336434711095810371">Garbitu datu guztiak</translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> webguneak "<ph name="EXTENSION_NAME" />" aplikazioarekin komunikatu nahi du</translation>
 <translation id="4340575312453649552">Iragarki honek gailuko baliabide gehiegi erabili ditu; ondorioz, Chrome-k kendu egin du.</translation>
-<translation id="4341577178275615435">Tartekatze-ikurraren bidez arakatzeko eginbidea aktibatu edo desaktibatzeko, erabili F7 lasterbidea</translation>
+<translation id="4341577178275615435">Testu-kurtsorearen bidez arakatzeko eginbidea aktibatu edo desaktibatzeko, erabili F7 lasterbidea</translation>
 <translation id="434404122609091467">Uneko zerbitzu-hornitzailearekin</translation>
 <translation id="4345587454538109430">Konfiguratu…</translation>
 <translation id="4345732373643853732">Erabiltzaile-izena ezezaguna da zerbitzarian</translation>
@@ -2821,7 +2820,7 @@
 <translation id="4469477701382819144">Iragarkiak blokeatuta daude iragarki oztopatzaileak edo iruzurrezkoak erakusten dituzten webguneetan</translation>
 <translation id="4469762931504673593"><ph name="ORIGIN" /> webguneak <ph name="FOLDERNAME" /> karpetako fitxategiak edita ditzake</translation>
 <translation id="4470957202018033307">Kanpoko memoria erabiltzeko hobespenak</translation>
-<translation id="4471354919263203780">Ahotsa hautemateko fitxategiak deskargatzen… % <ph name="PERCENT" /></translation>
+<translation id="4471354919263203780">Ahots-hautematearen fitxategiak deskargatzen… % <ph name="PERCENT" /></translation>
 <translation id="447252321002412580">Lagundu Chrome-ren eginbideak eta errendimendua hobetzen</translation>
 <translation id="4472575034687746823">Hasi erabiltzen</translation>
 <translation id="4474155171896946103">Egin laster-markak fitxa guztiei…</translation>
@@ -3237,7 +3236,7 @@
 <translation id="5015344424288992913">Proxya ebazten…</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">Gogoratu</translation>
-<translation id="5017643436812738274">Nabigatu orrietatik tartekatze-ikurra erabilita. Eginbidea desaktibatzeko, sakatu Ktrl + Bilatu + 7.</translation>
+<translation id="5017643436812738274">Nabigatu orrietatik testu-kurtsorea erabilita. Eginbidea desaktibatzeko, sakatu Ktrl + Bilatu + 7.</translation>
 <translation id="5018207570537526145">Ireki luzapenaren webgunea</translation>
 <translation id="5018526990965779848">Bidali erabilera- eta diagnostiko-datuak. Bidali diagnostikoak eta gailu zein aplikazioen erabilera-datuak Google-ri automatikoki darabiltzazun Android-en zerbitzuak hobetzeko. Horri esker, sistemaren eta aplikazioen egonkortasuna hobetuko da, besteak beste. Gainera, multzokatutako datu batzuk oso baliagarriak izango dira Google-ren aplikazioak hobetzeko eta bazkideei laguntzeko (adibidez, Android-en garatzaileei). Sareko eta aplikazioetako jarduera gehigarriak ezarpena aktibatuta badago, baliteke datu horiek Google-ko kontuan gordetzea.</translation>
 <translation id="5021750053540820849">Oraindik ez da eguneratu</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Sistemak ezin izan du zehaztu gailuaren modeloa edo serie-zenbakia.</translation>
 <translation id="5284445933715251131">Jarraitu deskargatzen</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> pantaila</translation>
-<translation id="5286094561505658635">Beteta dago irteera-eremua</translation>
 <translation id="5286194356314741248">Bilatzen</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Zure kontuak</translation>
@@ -3592,7 +3590,7 @@
 <translation id="5464660706533281090">Haurrek ezin dute aldatu ezarpen hau.</translation>
 <translation id="5466374726908360271">It&amp;satsi eta bilatu "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5468173180030470402">Fitxategiak parekatzeko sareko gailuak bilatzen</translation>
-<translation id="5469852975082458401">Nabigatu orrietatik tartekatze-ikurra erabilita. Eginbidea desaktibatzeko, sakatu F7.</translation>
+<translation id="5469852975082458401">Nabigatu orrietatik testu-kurtsorea erabilita. Eginbidea desaktibatzeko, sakatu F7.</translation>
 <translation id="5470735824776589490">Berrabiarazi egin behar da gailuan fabrikako ezarpenak berrezarri ahal izateko. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Kaixo! Testua ahots bihurtzeko eginbidearen ahotsa naiz.</translation>
 <translation id="5472627187093107397">Gorde webgune honetako pasahitzak</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Ziurtagiri-gidalerroen esleipenak</translation>
 <translation id="5554489410841842733">Ikonoa ikusgai egongo da luzapenak uneko orrian ekintzak egin ditzakeenean.</translation>
 <translation id="5554720593229208774">Mezu elektronikoaren ziurtagiri-emailea</translation>
-<translation id="5554931805291741487">Inprimagailuaren irteera-eremua ia beteta dago</translation>
 <translation id="5556459405103347317">Kargatu berriro</translation>
 <translation id="5558125320634132440">Webgunea blokeatu egin da, agian helduentzako edukiak baititu</translation>
 <translation id="5558129378926964177">&amp;Handitu</translation>
@@ -4458,7 +4455,7 @@
 <translation id="6545864417968258051">Bluetooth bidezko gailuen bilaketa</translation>
 <translation id="6545867563032584178">Mikrofonoa erabiltzeko baimena desaktibatuta dago Mac sistemaren hobespenetan</translation>
 <translation id="6547354035488017500">Libratu gutxienez 512 MB; bestela, gailuak ez du erantzungo. Tokia egiteko, ezabatu fitxategiak gailuaren memoriatik.</translation>
-<translation id="654871471440386944">Tartekatze-ikurraren bidez arakatzeko eginbidea aktibatu nahi duzu?</translation>
+<translation id="654871471440386944">Testu-kurtsorearen bidez arakatzeko eginbidea aktibatu nahi duzu?</translation>
 <translation id="6550675742724504774">Aukerak</translation>
 <translation id="6551508934388063976">Agindua ez dago erabilgarri. Beste leiho bat irekitzeko, sakatu Kontrol+N.</translation>
 <translation id="6551612971599078809">USB gailu bat erabiltzen ari da webgunea</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Luzapen honek ez du baimen berezirik behar</translation>
 <translation id="7154130902455071009">Aldatu hasiera-orria hau izan dadin: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Lehendik duzun kamerako argazkia edo fitxategia</translation>
-<translation id="7163766494674803047">Errore bat gertatu da inprimagailuan</translation>
 <translation id="7165320105431587207">Ezin izan da konfiguratu sarea</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" luzapenak markatutako kokapenetako irudiak, bideoak eta soinu-fitxategiak irakur ditzake.</translation>
 <translation id="7167486101654761064">Ireki &amp;beti mota honetako fitxategiak</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 6c07450..9abc2785 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">ایجاد شد</translation>
 <translation id="1067291318998134776">‏Linux (بتا)</translation>
 <translation id="1067922213147265141">‏سایر سرویس‌های Google</translation>
+<translation id="1068961867683064946">‏ایجاد «حساب Google» برای فرزندتان</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">‏برنامه دیگری در رایانه شما یک افزونه اضافه کرده است که ممکن است نحوه کارکرد Chrome را تغییر دهد.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">دکمه برگشت صفحه فرعی <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">در <ph name="SAVED_PASSWORDS_STORE" /> گذرواژه‌های ذخیره‌شده‌تان را مشاهده و مدیریت کنید</translation>
 <translation id="1324106254079708331">‏از «حساب‌های Google» شخصی همه افرادی که درخطر حمله هدفمند قرار دارند حفاظت می‌کند</translation>
+<translation id="1325985428688410772">افزودن فضا</translation>
 <translation id="1326317727527857210">‏برای دسترسی به برگه‌هایتان در دستگاه‌های دیگر، به سیستم Chrome وارد شوید.</translation>
 <translation id="1327074568633507428">‏چاپگر در Google Cloud Print</translation>
 <translation id="1327272175893960498">‏بلیت‌های Kerberos</translation>
@@ -1079,6 +1081,7 @@
 <translation id="2307462900900812319">پیکربندی شبکه</translation>
 <translation id="230927227160767054">این صفحه، می‌خواهد یک کنترل‌کننده سرویس نصب کند.</translation>
 <translation id="2309620859903500144">دسترسی این سایت به حسگرهای نور یا حرکت مسدود شده است.</translation>
+<translation id="2314873619957287124">تنظیم قوانین پایه دیجیتال برای کمک به فرزندتان در زمینه یادگیری، بازی، و کاوش</translation>
 <translation id="2315414688463285945">‏هنگام پیکربندی فایل‌های Linux خطایی روی داد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="2315587498123194634">ارسال پیوند به <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">نه متشکرم</translation>
@@ -1090,6 +1093,7 @@
 <translation id="2322318151094136999">اگر سایتی بخواهد به درگاه‌های سریال دسترسی یابد، سؤال شود (توصیه می‌شود)</translation>
 <translation id="2323018538045954000">‏شبکه‌های Wi-Fi ذخیره‌شده</translation>
 <translation id="2325444234681128157">گذرواژه به خاطر سپرده شود</translation>
+<translation id="2326160999284776503">‏ورود به سیستم با «حساب Google» فرزندتان</translation>
 <translation id="2326188115274135041">برای اینکه باز شدن خودکار قفل روشن شود، پین را تأیید کنید</translation>
 <translation id="2326931316514688470">&amp;تازه‌سازی برنامه</translation>
 <translation id="2327492829706409234">فعال کردن برنامه</translation>
@@ -1105,7 +1109,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">نمی‌توان <ph name="FILE_NAME" /> را به‌طور ایمن بارگیری کرد</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> می‌خواهد مرتبط شود</translation>
-<translation id="2341476639346994688">چاپگر متوقف شد</translation>
 <translation id="2342740338116612727">نشانک‌ها اضافه شد</translation>
 <translation id="2343747224442182863">متمرکز کردن این برگه</translation>
 <translation id="2344686470986284227">درحال شروع کنترل‌کننده دستگاه مجازی</translation>
@@ -1149,6 +1152,7 @@
 <translation id="2384436799579181135">خطایی روی داده است. لطفاً چاپگرتان را بررسی و دوباره امتحان کنید.</translation>
 <translation id="2387052489799050037">رفتن به صفحه اصلی</translation>
 <translation id="2387458720915042159">نوع اتصال پراکسی</translation>
+<translation id="2391082728065870591">ارسال گزارش بازخورد</translation>
 <translation id="2391419135980381625">قلم استاندارد</translation>
 <translation id="2392163307141705938">به حداکثر زمانی که ولی‌تان برای استفاده از <ph name="IDS_SHORT_PRODUCT_NAME" /> تعیین کرده است رسیده‌اید.</translation>
 <translation id="2392369802118427583">فعالسازی</translation>
@@ -1279,6 +1283,7 @@
 <translation id="2537178555904266562">خطا در همگام‌سازی گذرواژه‌ها</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> می‌تواند این فایل‌ها و پوشه‌ها را مشاهده و ویرایش کند:</translation>
 <translation id="2537927931785713436">درحال بررسی تصویر دستگاه مجازی</translation>
+<translation id="2538084450874617176">چه کسی از این <ph name="DEVICE_TYPE" /> استفاده می‌کند؟</translation>
 <translation id="2538361623464451692">همگام‌سازی غیرفعال شد</translation>
 <translation id="2540449034743108469">برای گوش دادن به فعالیت‌های افزونه، روی «شروع» فشار دهید</translation>
 <translation id="2541002089857695151">ارسال محتوای تمام‌صفحه بهینه‌سازی شود؟</translation>
@@ -2740,6 +2745,7 @@
 <translation id="4364327530094270451">خربزه</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> در حال اشتراک‌گذاری یک پنجره است.</translation>
 <translation id="4364830672918311045">نمایش اعلان‌ها</translation>
+<translation id="4368115171699243057">راه‌اندازی این <ph name="DEVICE_TYPE" /> برای فرزندتان</translation>
 <translation id="437004882363131692">نکته‌ها، پیشنهادها، و به‌روزرسانی‌های مربوط به <ph name="DEVICE_TYPE" /> را دریافت کنید و بازخورد ارائه دهید. هرزمان خواستید اشتراک را لغو کنید.</translation>
 <translation id="4370975561335139969">ایمیل و گذرواژه‌ای که وارد کرده‌اید، مطابقت ندارند</translation>
 <translation id="4374831787438678295">‏نصب‌کننده Linux</translation>
@@ -2900,6 +2906,7 @@
 <translation id="4565377596337484307">عدم نمایش گذرواژه</translation>
 <translation id="4565917129334815774">ذخیره گزارش‌های سیستم</translation>
 <translation id="456717285308019641">زبان صفحه موردنظر برای ترجمه</translation>
+<translation id="4567533462991917415">بعد از راه‌اندازی، هرزمان خواستید می‌توانید افراد بیشتری را اضافه کنید. هر فرد می‌تواند حسابش را شخصی‌سازی کند و داده‌ها را خصوصی نگه دارد.</translation>
 <translation id="4567772783389002344">افزودن واژه</translation>
 <translation id="4568025708905928793">کلید امنیتی درخواست شده است</translation>
 <translation id="4568213207643490790">‏متأسفیم، حساب‌های Google در این دستگاه مجاز نیستند.</translation>
@@ -2951,6 +2958,7 @@
 <translation id="4628762811416793313">‏راه‌اندازی محتوی Linux تکمیل نشد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="4633003931260532286">افزونه به «<ph name="IMPORT_NAME" />» با نسخه حداقل «<ph name="IMPORT_VERSION" />» نیاز دارد اما تنها نسخه «<ph name="INSTALLED_VERSION" />» نصب شده است</translation>
 <translation id="4633757335284074492">‏در Google Drive پشتیبان‌گیری کنید. به‌آسانی داده‌ها را بازیابی کنید یا هرزمان خواستید دستگاه را عوض کنید. این نسخه پشتیبان حاوی داده‌های برنامه است. پشتیبان‌ها در Google بارگذاری می‌شوند و با گذرواژه «حساب Google» فرزندتان رمزگذاری می‌شوند.</translation>
+<translation id="4634575639321169635">راه‌اندازی این دستگاه برای استفاده کاری یا شخصی</translation>
 <translation id="4634771451598206121">ورود مجدد به سیستم...</translation>
 <translation id="4635072447747973225">‏حذف نصب Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> برای کاربران مهمان دردسترس نیست.</translation>
@@ -3369,6 +3377,7 @@
 <translation id="5185386675596372454">جدیدترین نسخه از "<ph name="EXTENSION_NAME" />" غیر فعال شده است زیرا به مجوزهای بیشتری نیاز دارد.</translation>
 <translation id="5185500136143151980">اتصال اینترنت وجود ندارد</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">منوی گزینه‌ها برای <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">فعال کردن درگاه</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> می‌خواهد چند فایل را بارگیری کند</translation>
 <translation id="5192062846343383368">‏برای مشاهده تنظیمات نظارت، برنامه Family Link را باز کنید</translation>
@@ -3445,7 +3454,6 @@
 <translation id="5283677936944177147">متأسفیم! سیستم مدل دستگاه یا شماره سریال را تعیین نکرد.</translation>
 <translation id="5284445933715251131">ادامه بارگیری</translation>
 <translation id="5285635972691565180">نمایشگر <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">قسمت خروجی پر است</translation>
 <translation id="5286194356314741248">اسکن کردن</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">حساب‌های شما</translation>
@@ -3616,6 +3624,7 @@
 <translation id="5495597166260341369">روشن ماندن نمایشگر</translation>
 <translation id="5496587651328244253">سازماندهی</translation>
 <translation id="5497251278400702716">این فایل</translation>
+<translation id="5498967291577176373">نوشتن سریع‌تر با پیشنهادهای متغیر برای نام، نشانی، یا شماره تلفن</translation>
 <translation id="5499313591153584299">شاید این فایل برای کامپیوتر شما مضر باشد.</translation>
 <translation id="5499453227627332024">‏نسخه‌ای برای ارتقای محتوی Linux شما دردسترس است. همچنین می‌توانید بعداً در «تنظیمات» ارتقا دهید.</translation>
 <translation id="5500709606820808700">بررسی ایمنی امروز اجرا شد</translation>
@@ -3666,7 +3675,6 @@
 <translation id="5553089923092577885">نگاشتهای سیاست گواهی</translation>
 <translation id="5554489410841842733">این نماد وقتی قابل رؤیت است که برنامهٔ افزودنی بتواند برای صفحه فعلی کار کند.</translation>
 <translation id="5554720593229208774">ارائه دهنده مجوز ایمیل</translation>
-<translation id="5554931805291741487">قسمت خروجی تقریباً پر است</translation>
 <translation id="5556459405103347317">تازه‌سازی</translation>
 <translation id="5558125320634132440">این سایت مسدود شده است زیرا احتمالاً حاوی محتوای بزرگ‌سالان است</translation>
 <translation id="5558129378926964177">&amp;بزرگنمایی</translation>
@@ -3773,6 +3781,7 @@
 <translation id="5689516760719285838">مکان</translation>
 <translation id="56907980372820799">داده‌های پیوند</translation>
 <translation id="5691511426247308406">خانواده</translation>
+<translation id="5691581861107245578">دریافت پیشنهادهای اموجی براساس آنچه تایپ می‌کنید</translation>
 <translation id="5691772641933328258">اثر انگشت تشخیص داده نشد</translation>
 <translation id="5692183275898619210">چاپ کامل شد</translation>
 <translation id="569425414730375234">جلسه ناشناس کنونی: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4132,6 +4141,7 @@
 <translation id="6124698108608891449">این سایت به مجوزهای بیشتری نیاز دارد.</translation>
 <translation id="6125479973208104919">متأسفانه دوباره باید حسابتان را به این <ph name="DEVICE_TYPE" /> اضافه کنید.</translation>
 <translation id="6129691635767514872">‏داده‌های انتخاب‌شده از Chrome و دستگاه‌های همگام‌سازی‌شده برداشته شده‌اند. ممکن است حساب Google شما در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> شکل‌های دیگری از سابقه مرور (مانند جستجوها و فعالیت از سایر سرویس‌های Google) داشته باشد.</translation>
+<translation id="6129839611163153407">فرزندتان</translation>
 <translation id="6129938384427316298">‏نظر گواهی Netscape</translation>
 <translation id="6129953537138746214">فاصله</translation>
 <translation id="6130692320435119637">‏افزودن Wi-Fi</translation>
@@ -4172,6 +4182,7 @@
 <translation id="6178664161104547336">انتخاب گواهی</translation>
 <translation id="6181431612547969857">بارگیری مسدود شد</translation>
 <translation id="6185132558746749656">مکان دستگاه</translation>
+<translation id="6195446518998936840">‏برای راه‌اندازی «کنترل‌های والدین»، فرزندتان باید یک «حساب Google» داشته باشد که شما در مدیریت آن به او کمک خواهید کرد. می‌توانید محدودیت‌های مدت تماشای صفحه تنظیم کنید، وب‌سایت‌ها را تأیید یا مسدود کنید، و کارهای بیشتری با برنامه Family Link انجام دهید.</translation>
 <translation id="6195693561221576702">این دستگاه روی حالت نمایشی آفلاین تنظیم نمی‌شود.</translation>
 <translation id="6196640612572343990">مسدود کردن کوکی‌های شخص ثالث</translation>
 <translation id="6196854373336333322">افزونه «<ph name="EXTENSION_NAME" />»، کنترل تنظیمات پروکسی شما را در اختیار گرفته است یعنی می‌تواند هر چیزی که در حالت آنلاین انجام می‌دهید تغییر دهد، خراب کند یا استراق سمع کند. اگر مطمئن نیستید چرا این تغییر انجام شده است، احتمالاً این افزونه را نمی‌خواهید.</translation>
@@ -4937,7 +4948,6 @@
 <translation id="7152478047064750137">این افزونه به مجوز خاصی نیاز ندارد</translation>
 <translation id="7154130902455071009">تغییر صفحه شروعتان به: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">عکس موجود از دوربین یا فایل</translation>
-<translation id="7163766494674803047">خطای دستگاه چاپگر</translation>
 <translation id="7165320105431587207">پیکربندی شبکه انجام نشد</translation>
 <translation id="716640248772308851">«<ph name="EXTENSION" />» می‌تواند تصاویر، ویدئوها و فایل‌های صوتی موجود در مکان‌های انتخاب شده را بخواند.</translation>
 <translation id="7167486101654761064">&amp;همیشه این نوع فایل‌ها باز شوند</translation>
@@ -5927,6 +5937,7 @@
 <translation id="8372369524088641025">‏کلید WEP نادرست</translation>
 <translation id="8372477600026034341">میزبان‌های اضافی</translation>
 <translation id="8373652277231415614">‏فهرست‌های راهنمای هم‌رسانی‌شده Crostini</translation>
+<translation id="8376384591331888629">شامل کوکی‌های شخص ثالث در این سایت می‌شود</translation>
 <translation id="8378714024927312812">توسط سازمانتان مدیریت می‌شود</translation>
 <translation id="8379878387931047019">این دستگاه نوع کلید امنیتیِ درخواستی ازجانب این وب‌سایت را پشتیبانی نمی‌کند</translation>
 <translation id="8379991678458444070">با نشانک‌گذاری این برگه، سریع به اینجا برگردید</translation>
@@ -6010,6 +6021,7 @@
 <translation id="8481187309597259238">‏تأیید مجوز USB</translation>
 <translation id="8483248364096924578">‏نشانی IP</translation>
 <translation id="8487678622945914333">بزرگ‌نمایی</translation>
+<translation id="8489156414266187072">پیشنهادهای شخصی فقط در حساب شما نمایش داده می‌شوند</translation>
 <translation id="8490896350101740396">برنامه‌های کیوسک زیر «<ph name="UPDATED_APPS" />» به‌روز شده‌اند. لطفاً برای تکمیل فرآیند به‌روزرسانی دستگاه را مجدداً راه‌اندازی کنید.</translation>
 <translation id="8493236660459102203">میکروفن:</translation>
 <translation id="8496717697661868878">اجرای این افزایه</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 54dca221..15ae89c 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Tiedostoa (<ph name="FILE_NAME" />) ei voi ladata turvallisesti.</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> haluaa muodostaa laiteparin</translation>
-<translation id="2341476639346994688">Tulostin on pysähtynyt</translation>
 <translation id="2342740338116612727">Kirjanmerkit lisätty</translation>
 <translation id="2343747224442182863">Aseta tämä välilehti aktiiviseksi</translation>
 <translation id="2344686470986284227">Virtuaalikone-ohjainta käynnistetään</translation>
@@ -3445,7 +3444,6 @@
 <translation id="5283677936944177147">Hups! Järjestelmä ei voinut määrittää tämän laitteen mallia tai sarjanumeroa.</translation>
 <translation id="5284445933715251131">Jatka latausta</translation>
 <translation id="5285635972691565180">Näyttö <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Tulostuslokero on täynnä</translation>
 <translation id="5286194356314741248">Etsitään</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Tilisi</translation>
@@ -3666,7 +3664,6 @@
 <translation id="5553089923092577885">Varmenteen käytäntökytkennät</translation>
 <translation id="5554489410841842733">Tämä kuvake näytetään, kun laajennus voi toimia nykyisellä sivulla.</translation>
 <translation id="5554720593229208774">Sähköpostivarmenteen myöntäjä</translation>
-<translation id="5554931805291741487">Tulostuslokero on melkein täynnä</translation>
 <translation id="5556459405103347317">Lataa uudelleen</translation>
 <translation id="5558125320634132440">Sivusto on estetty, koska sillä voi olla aikuisille suunnattua sisältöä</translation>
 <translation id="5558129378926964177">&amp;Lähennä</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">Tämä laajennus ei vaadi erityisiä käyttöoikeuksia.</translation>
 <translation id="7154130902455071009">Vaihda aloitussivuksi <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Olemassa oleva kuva kamerasta tai tiedostosta</translation>
-<translation id="7163766494674803047">Tulostuslaitteen virhe</translation>
 <translation id="7165320105431587207">Verkon asetuksien määrittäminen epäonnistui</translation>
 <translation id="716640248772308851"><ph name="EXTENSION" /> voi lukea kuva-, video- ja äänitiedostoja valituissa sijainneissa.</translation>
 <translation id="7167486101654761064">&amp;Avaa aina tämäntyyppiset tiedostot</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 6ad170f..406ae8e9 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Hindi ligtas na mada-download ang <ph name="FILE_NAME" /></translation>
 <translation id="2340263603246777781">Gustong makipagpares ng <ph name="ORIGIN" /></translation>
-<translation id="2341476639346994688">Nakahinto ang printer</translation>
 <translation id="2342740338116612727">Nagdagdag ng mga bookmark</translation>
 <translation id="2343747224442182863">I-focus ang Tab na Ito</translation>
 <translation id="2344686470986284227">Sinisimulan ang controller ng virtual machine</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Oops!  Hindi natukoy ng system ang modelo o serial number ng device.</translation>
 <translation id="5284445933715251131">Ituloy ang Pag-download</translation>
 <translation id="5285635972691565180">Display <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Puno ang output area</translation>
 <translation id="5286194356314741248">Nagsa-scan</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Ang iyong mga account</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Certificate Policy Mappings</translation>
 <translation id="5554489410841842733">Makikita ang icon na ito kapag maaaring kumilos ang extension sa kasalukuyang pahina.</translation>
 <translation id="5554720593229208774">Email Certification Authority</translation>
-<translation id="5554931805291741487">Malapit nang mapuno ang output area</translation>
 <translation id="5556459405103347317">I-reload</translation>
 <translation id="5558125320634132440">Naka-block ang site na ito dahil posibleng mayroon itong pang-mature na content</translation>
 <translation id="5558129378926964177">Mag-zoom &amp;In</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Hindi nangangailangan ang extension na ito ng mga espesyal na pahintulot</translation>
 <translation id="7154130902455071009">Gawing ito ang iyong panimulang pahina: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Kasalukuyang larawan mula sa camera o file</translation>
-<translation id="7163766494674803047">Error sa printer device</translation>
 <translation id="7165320105431587207">Nabigong ma-configure ang network</translation>
 <translation id="716640248772308851">Ang "<ph name="EXTENSION" />" ay nakakabasa ng mga larawan, video, at file ng tunog sa mga may check na lokasyon.</translation>
 <translation id="7167486101654761064">&amp;Laging buksan ang uri ng mga file na ito</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 93741f5..d1f31a3 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ne peut pas être téléchargé de manière sécuritaire</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> veut s'associer</translation>
-<translation id="2341476639346994688">L'imprimante est arrêtée</translation>
 <translation id="2342740338116612727">Favoris ajoutés</translation>
 <translation id="2343747224442182863">Mettre cet onglet en évidence</translation>
 <translation id="2344686470986284227">Démarrage du contrôleur de la machine virtuelle en cours…</translation>
@@ -3449,7 +3448,6 @@
 <translation id="5283677936944177147">Oups! Le système n'a pas réussi à déterminer le modèle de l'appareil ni son numéro de série.</translation>
 <translation id="5284445933715251131">Poursuivre le téléchargement</translation>
 <translation id="5285635972691565180">Écran <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Le plateau de sortie est plein</translation>
 <translation id="5286194356314741248">Recherche en cours…</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Vos comptes</translation>
@@ -3670,7 +3668,6 @@
 <translation id="5553089923092577885">Mappages des règles de certificat</translation>
 <translation id="5554489410841842733">Cette icône sera visible lorsque l'extension pourra agir sur la page en cours.</translation>
 <translation id="5554720593229208774">Autorité de certification de courrier électronique</translation>
-<translation id="5554931805291741487">La zone de sortie de l'imprimante est presque pleine</translation>
 <translation id="5556459405103347317">Actualiser</translation>
 <translation id="5558125320634132440">Ce site a été bloqué, car il est possible qu'il comporte du contenu réservé aux adultes</translation>
 <translation id="5558129378926964177">Zoom &amp;avant</translation>
@@ -4941,7 +4938,6 @@
 <translation id="7152478047064750137">Cette extension fonctionne sans autorisation spéciale</translation>
 <translation id="7154130902455071009">Utiliser l'adresse <ph name="START_PAGE" /> comme page de démarrage?</translation>
 <translation id="7155171745945906037">Photo existante de l'appareil photo ou du fichier</translation>
-<translation id="7163766494674803047">Erreur d'appareil sur l'imprimante</translation>
 <translation id="7165320105431587207">Échec de la configuration du réseau</translation>
 <translation id="716640248772308851">« <ph name="EXTENSION" /> » dispose d'un droit d'accès en lecture aux images, aux vidéos et aux fichiers audio figurant dans les dossiers sélectionnés.</translation>
 <translation id="7167486101654761064">&amp;Toujours ouvrir les fichiers de ce type</translation>
@@ -6510,7 +6506,7 @@
 <translation id="9088234649737575428">Le plugiciel <ph name="PLUGIN_NAME" /> est bloqué par une politique de l'entreprise</translation>
 <translation id="9088446193279799727">Impossible de configurer Linux. Connectez-vous à Internet et réessayez.</translation>
 <translation id="9088917181875854783">Veuillez confirmer que le code d'authentification suivant est affiché sur « <ph name="DEVICE_NAME" /> » :</translation>
-<translation id="9093429538970210897">Nous vous recommandons de sauvegarder vos fichiers au cas où la mise à niveau ne pourrait pas être effectuée au complet. Lorsque vous démarrez la mise à niveau, Linux (bêta) s'éteindra. Veuillez enregistrer vos fichiers avant de continuer.</translation>
+<translation id="9093429538970210897">Nous vous recommandons de sauvegarder vos fichiers au cas où la mise à niveau ne pourrait pas être effectuée au complet. Lorsque vous démarrerez la mise à niveau, Linux (bêta) s'éteindra. Veuillez enregistrer vos fichiers avant de continuer.</translation>
 <translation id="9094033019050270033">Mettre à jour le mot de passe</translation>
 <translation id="9094038138851891550">Nom d'utilisateur incorrect</translation>
 <translation id="9094982973264386462">Supprimer</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 982650d..f2e4e0d9 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Impossible de télécharger <ph name="FILE_NAME" /> de manière sécurisée</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> tente de s'associer</translation>
-<translation id="2341476639346994688">Imprimante arrêtée</translation>
 <translation id="2342740338116612727">Favoris ajoutés</translation>
 <translation id="2343747224442182863">Sélectionner cet onglet</translation>
 <translation id="2344686470986284227">Démarrage du contrôleur de la machine virtuelle…</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Petit problème… Échec de l'identification du modèle ou du numéro de série de l'appareil.</translation>
 <translation id="5284445933715251131">Continuer le téléchargement</translation>
 <translation id="5285635972691565180">Écran <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Bac de sortie plein</translation>
 <translation id="5286194356314741248">Recherche…</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Vos comptes</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Mappages des stratégies de certificat</translation>
 <translation id="5554489410841842733">Cette icône s'affiche lorsque l'extension peut agir sur la page active.</translation>
 <translation id="5554720593229208774">Autorité de certification de messagerie</translation>
-<translation id="5554931805291741487">Bac de sortie presque plein</translation>
 <translation id="5556459405103347317">Actualiser</translation>
 <translation id="5558125320634132440">Ce site a été bloqué, car il est possible qu'il comporte du contenu réservé à un public averti</translation>
 <translation id="5558129378926964177">Zoom &amp;avant</translation>
@@ -4941,7 +4938,6 @@
 <translation id="7152478047064750137">Cette extension ne nécessite aucune autorisation spéciale</translation>
 <translation id="7154130902455071009">Utiliser l'adresse <ph name="START_PAGE" /> comme page de démarrage ?</translation>
 <translation id="7155171745945906037">Photo existante au niveau de l'appareil photo ou dans les fichiers</translation>
-<translation id="7163766494674803047">Erreur d'imprimante</translation>
 <translation id="7165320105431587207">Échec de la configuration du réseau.</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" dispose d'un droit d'accès en lecture sur les images, les vidéos et les fichiers audio figurant dans les lieux contrôlés.</translation>
 <translation id="7167486101654761064">&amp;Toujours ouvrir les fichiers de ce type</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index f92ee8d2..44ff3c7 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Creada</translation>
 <translation id="1067291318998134776">Linux (beta)</translation>
 <translation id="1067922213147265141">Outros servizos de Google</translation>
+<translation id="1068961867683064946">Crear unha Conta de Google para o teu fillo ou filla</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Outro programa do teu ordenador engadiu unha extensión que pode cambiar o funcionamento de Chrome.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Botón Atrás da subpáxina <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Para consultar e xestionar os contrasinais gardados, accede á túa <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Protexe as Contas de Google persoais de calquera usuario que corra o risco de sufrir ataques dirixidos</translation>
+<translation id="1325985428688410772">Engadir espazo</translation>
 <translation id="1326317727527857210">Inicia sesión en Chrome para sincronizar as pestanas dos demais dispositivos.</translation>
 <translation id="1327074568633507428">Impresora en Google Cloud Print</translation>
 <translation id="1327272175893960498">Tíckets de Kerberos</translation>
@@ -1081,6 +1083,7 @@
 <translation id="2307462900900812319">Configurar rede</translation>
 <translation id="230927227160767054">Esta páxina quere instalar un controlador de servizo.</translation>
 <translation id="2309620859903500144">Bloqueouse o acceso deste sitio aos teus sensores de movemento ou luz.</translation>
+<translation id="2314873619957287124">Define normas básicas para axudar ao teu fillo ou filla a aprender, a xogar e a explorar o mundo dixital</translation>
 <translation id="2315414688463285945">Produciuse un erro ao configurar ficheiros de Linux. Téntao de novo.</translation>
 <translation id="2315587498123194634">Enviar ligazón a <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Non, grazas</translation>
@@ -1092,6 +1095,7 @@
 <translation id="2322318151094136999">Preguntar cando un sitio queira acceder aos portos de serie (opción recomendada)</translation>
 <translation id="2323018538045954000">Redes wifi gardadas</translation>
 <translation id="2325444234681128157">Lembrar contrasinal</translation>
+<translation id="2326160999284776503">Iniciar sesión coa Conta de Google do teu fillo ou filla</translation>
 <translation id="2326188115274135041">Confirma o PIN para activar o desbloqueo automático</translation>
 <translation id="2326931316514688470">Vo&amp;lver cargar aplicación</translation>
 <translation id="2327492829706409234">Activar aplicación</translation>
@@ -1107,7 +1111,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">O ficheiro <ph name="FILE_NAME" /> non se pode descargar de forma segura</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> quere sincronizarse</translation>
-<translation id="2341476639346994688">A impresora está detida</translation>
 <translation id="2342740338116612727">Engadíronse marcadores</translation>
 <translation id="2343747224442182863">Enfocar esta pestana</translation>
 <translation id="2344686470986284227">Iniciando controlador de máquinas virtuais</translation>
@@ -1151,6 +1154,7 @@
 <translation id="2384436799579181135">Produciuse un erro. Comproba a túa impresora e téntao de novo.</translation>
 <translation id="2387052489799050037">Ir á páxina de inicio</translation>
 <translation id="2387458720915042159">Tipo de conexión mediante proxy</translation>
+<translation id="2391082728065870591">Enviar informe de comentarios</translation>
 <translation id="2391419135980381625">Fonte estándar</translation>
 <translation id="2392163307141705938">Chegaches ao límite que definiu teu pai ou túa nai para <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Activar</translation>
@@ -1281,6 +1285,7 @@
 <translation id="2537178555904266562">Produciuse un erro ao sincronizar os contrasinais</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> pode ver e editar os seguintes ficheiros e cartafoles</translation>
 <translation id="2537927931785713436">Comprobando imaxe da máquina virtual</translation>
+<translation id="2538084450874617176">Quen está usando este dispositivo (<ph name="DEVICE_TYPE" />)?</translation>
 <translation id="2538361623464451692">Desactivouse a sincronización</translation>
 <translation id="2540449034743108469">Para escoitar as actividades da extensión, preme Iniciar</translation>
 <translation id="2541002089857695151">Queres optimizar a emisión en pantalla completa?</translation>
@@ -2742,6 +2747,7 @@
 <translation id="4364327530094270451">Melón</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> está compartindo unha ventá.</translation>
 <translation id="4364830672918311045">Mostrar notificacións</translation>
+<translation id="4368115171699243057">Configurar este dispositivo (<ph name="DEVICE_TYPE" />) para o teu fillo ou filla</translation>
 <translation id="437004882363131692">Recibe consellos sobre <ph name="DEVICE_TYPE" />, mantente ao tanto das novidades e das ofertas, e envíanos os teus comentarios. Podes cancelar a subscrición en calquera momento.</translation>
 <translation id="4370975561335139969">O correo electrónico e o contrasinal inseridos non coinciden</translation>
 <translation id="4374831787438678295">Instalador de Linux</translation>
@@ -2902,6 +2908,7 @@
 <translation id="4565377596337484307">Ocultar contrasinal</translation>
 <translation id="4565917129334815774">Almacenar rexistros do sistema</translation>
 <translation id="456717285308019641">Idioma da páxina que se quere traducir</translation>
+<translation id="4567533462991917415">Poderás engadir máis persoas despois da configuración. Cada unha delas pode personalizar a súa conta e protexer a privacidade dos seus datos.</translation>
 <translation id="4567772783389002344">Engadir palabra</translation>
 <translation id="4568025708905928793">Solicítase unha chave de seguranza</translation>
 <translation id="4568213207643490790">Non se admiten contas de Google neste dispositivo.</translation>
@@ -2953,6 +2960,7 @@
 <translation id="4628762811416793313">A configuración do contedor de Linux non se completou. Téntao de novo.</translation>
 <translation id="4633003931260532286">A extensión necesita "<ph name="IMPORT_NAME" />" coa versión "<ph name="IMPORT_VERSION" />" como mínimo, pero só está instalada a versión "<ph name="INSTALLED_VERSION" />"</translation>
 <translation id="4633757335284074492">Facer copia de seguranza en Drive. Restaura os datos facilmente ou cambia de dispositivo en calquera momento. Esta copia de seguranza inclúe os datos das aplicacións. As copias de seguranza cárganse en Google e encríptanse co contrasinal da Conta de Google do teu fillo.</translation>
+<translation id="4634575639321169635">Configura este dispositivo para uso laboral ou persoal</translation>
 <translation id="4634771451598206121">Inicia sesión de novo...</translation>
 <translation id="4635072447747973225">Desinstalar Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> non está dispoñible para usuarios invitados.</translation>
@@ -3371,6 +3379,7 @@
 <translation id="5185386675596372454">Desactivouse a versión máis recente de "<ph name="EXTENSION_NAME" />" porque require máis permisos.</translation>
 <translation id="5185500136143151980">Non hai conexión a Internet</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Menú de opcións para <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Activar porto</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> quere descargar varios ficheiros</translation>
 <translation id="5192062846343383368">Abrir a aplicación Family Link para ver a configuración de supervisión</translation>
@@ -3447,7 +3456,6 @@
 <translation id="5283677936944177147">Vaites! Produciuse un erro no sistema e non puido determinar o modelo do dispositivo ou o número de serie.</translation>
 <translation id="5284445933715251131">Continuar coa descarga</translation>
 <translation id="5285635972691565180">Pantalla <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">A bandexa de saída está chea</translation>
 <translation id="5286194356314741248">Buscando</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">As túas contas</translation>
@@ -3618,6 +3626,7 @@
 <translation id="5495597166260341369">Manter a pantalla activada</translation>
 <translation id="5496587651328244253">Organizar</translation>
 <translation id="5497251278400702716">Este ficheiro</translation>
+<translation id="5498967291577176373">Escribe máis rápido coas suxestións inseridas para o teu nome, enderezo ou número de teléfono</translation>
 <translation id="5499313591153584299">É posible que este ficheiro sexa daniño para o teu ordenador.</translation>
 <translation id="5499453227627332024">Hai dispoñible unha actualización para o teu contedor de Linux. Tamén podes instalar a actualización máis adiante desde a aplicación Configuración.</translation>
 <translation id="5500709606820808700">A comprobación de seguranza executouse hoxe</translation>
@@ -3668,7 +3677,6 @@
 <translation id="5553089923092577885">Asignacións de políticas de certificados</translation>
 <translation id="5554489410841842733">Esta icona verase cando a extensión poida actuar na páxina actual.</translation>
 <translation id="5554720593229208774">Autoridade de certificación de correo electrónico</translation>
-<translation id="5554931805291741487">A bandexa de saída case está chea</translation>
 <translation id="5556459405103347317">Volver cargar</translation>
 <translation id="5558125320634132440">Bloqueouse este sitio porque pode incluír contido reservado para adultos</translation>
 <translation id="5558129378926964177">Achegar</translation>
@@ -3775,6 +3783,7 @@
 <translation id="5689516760719285838">Localización</translation>
 <translation id="56907980372820799">Ligar datos</translation>
 <translation id="5691511426247308406">Familia</translation>
+<translation id="5691581861107245578">Recibe suxestións de emojis baseadas no que escribas</translation>
 <translation id="5691772641933328258">Non se recoñeceu a impresión dixital</translation>
 <translation id="5692183275898619210">Finalizou a impresión</translation>
 <translation id="569425414730375234">Sesión actual do modo de incógnito: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4134,6 +4143,7 @@
 <translation id="6124698108608891449">Este sitio necesita máis permisos.</translation>
 <translation id="6125479973208104919">Terás que engadir a túa conta a este dispositivo <ph name="DEVICE_TYPE" /> de novo.</translation>
 <translation id="6129691635767514872">Os datos seleccionados elimináronse de Chrome e dos dispositivos sincronizados. É posible que a túa conta de Google teña outras formas do historial de navegación, como buscas e actividade doutros servizos de Google, en <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">O teu fillo ou filla</translation>
 <translation id="6129938384427316298">Comentario do certificado de Netscape</translation>
 <translation id="6129953537138746214">Espazo</translation>
 <translation id="6130692320435119637">Engadir wifi</translation>
@@ -4174,6 +4184,7 @@
 <translation id="6178664161104547336">Selecciona un certificado</translation>
 <translation id="6181431612547969857">Descarga bloqueada</translation>
 <translation id="6185132558746749656">Localización do dispositivo</translation>
+<translation id="6195446518998936840">Para configurar os controis parentais, o teu fillo ou filla debe ter unha Conta de Google que axudarás a xestionar. Podes definir límites de tempo diante da pantalla, aprobar ou bloquear sitios web e moito máis coa aplicación Family Link.</translation>
 <translation id="6195693561221576702">Este dispositivo non se pode configurar no modo de demostración sen conexión.</translation>
 <translation id="6196640612572343990">Bloquear cookies de terceiros</translation>
 <translation id="6196854373336333322">A extensión "<ph name="EXTENSION_NAME" />" asumiu o control da túa configuración de proxy, o que significa que pode cambiar, anular ou espiar todo o que fagas en liña. Se non estás seguro de por que se produciu este cambio, é probable que non che interese conservalo.</translation>
@@ -4939,7 +4950,6 @@
 <translation id="7152478047064750137">Esta extensión non necesita permisos especiais</translation>
 <translation id="7154130902455071009">Cambiar a páxina de inicio a: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto existente da cámara ou do ficheiro</translation>
-<translation id="7163766494674803047">Produciuse un erro relacionado co dispositivo de impresión</translation>
 <translation id="7165320105431587207">Non se puido configurar a rede</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" pode ler ficheiros de imaxes, vídeo e son nas localizacións marcadas.</translation>
 <translation id="7167486101654761064">&amp;Abrir sempre ficheiros deste tipo</translation>
@@ -5928,6 +5938,7 @@
 <translation id="8372369524088641025">Clave WEP incorrecta</translation>
 <translation id="8372477600026034341">Hosts extra</translation>
 <translation id="8373652277231415614">Directorios compartidos de Crostini</translation>
+<translation id="8376384591331888629">Incluír as cookies de terceiros deste sitio</translation>
 <translation id="8378714024927312812">Xestionado pola túa organización</translation>
 <translation id="8379878387931047019">Este dispositivo non é compatible co tipo de chave de seguranza que solicita este sitio web</translation>
 <translation id="8379991678458444070">Engade esta pestana aos marcadores para volver a ela rapidamente</translation>
@@ -6011,6 +6022,7 @@
 <translation id="8481187309597259238">Confirma o permiso do USB</translation>
 <translation id="8483248364096924578">Enderezo IP</translation>
 <translation id="8487678622945914333">Achegar o zoom</translation>
+<translation id="8489156414266187072">As suxestións persoais só se mostran na túa conta</translation>
 <translation id="8490896350101740396">Actualizáronse as seguintes aplicacións de quiosco: "<ph name="UPDATED_APPS" />". Reinicia o dispositivo para completar o proceso de actualización.</translation>
 <translation id="8493236660459102203">Micrófono:</translation>
 <translation id="8496717697661868878">Executar este plugin</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index c37f8a0..15dfb20 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1104,7 +1104,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> સુરક્ષિતપણે ડાઉનલોડ કરી શકાતી નથી</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" />, જોડી કરવા માગે છે</translation>
-<translation id="2341476639346994688">પ્રિન્ટર થોભાવવામાં આવ્યું છે</translation>
 <translation id="2342740338116612727">બુકમાર્ક ઉમેર્યા</translation>
 <translation id="2343747224442182863">આ ટૅબ પર ફોકસ કરો</translation>
 <translation id="2344686470986284227">વર્ચ્યુઅલ મશીન નિયંત્રક શરૂ કરી રહ્યાં છીએ</translation>
@@ -3444,7 +3443,6 @@
 <translation id="5283677936944177147">અરેરે! સિસ્ટમ, ઉપકરણ મોડલ અથવા અનુક્રમ નંબર નિર્ધારિત કરવામાં નિષ્ફળ થઈ.</translation>
 <translation id="5284445933715251131">ડાઉનલોડ કરવાનું ચાલુ રાખો</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> બતાવો</translation>
-<translation id="5286094561505658635">પ્રિન્ટરનો આઉટપુટ વિસ્તાર ભરાઈ ગયો છે</translation>
 <translation id="5286194356314741248">સ્કેનિંગ</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">તમારા એકાઉન્ટ્સ</translation>
@@ -3665,7 +3663,6 @@
 <translation id="5553089923092577885">પ્રમાણપત્ર નીતિ મેપિંગ્સ</translation>
 <translation id="5554489410841842733">જ્યારે એક્સટેન્શન ચાલુ પૃષ્ઠ પર કાર્ય કરી શકે ત્યારે આ આયકન દેખાશે.</translation>
 <translation id="5554720593229208774">ઇમેઇલ પ્રમાણન અધિકારી</translation>
-<translation id="5554931805291741487">આઉટપુટ વિસ્તાર લગભગ ભરાઈ ગયો છે</translation>
 <translation id="5556459405103347317">ફરિથી લોડ કરો</translation>
 <translation id="5558125320634132440">આ સાઇટમાં પુખ્ય વયના લોકો માટેનું કન્ટેન્ટ હોવાને કારણે તેને બ્લૉક કરવામાં આવી છે.</translation>
 <translation id="5558129378926964177">Zoom &amp;In</translation>
@@ -4938,7 +4935,6 @@
 <translation id="7152478047064750137">આ એક્સટેન્શનને કોઈ વિશિષ્ટ પરવાનગીઓની જરૂર નથી</translation>
 <translation id="7154130902455071009">તમારા પ્રારંભ પૃષ્ઠને આ પર બદલો: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">કૅમેરા અથવા ફાઇલમાંથી અસ્તિત્વમાંનો ફોટો</translation>
-<translation id="7163766494674803047">પ્રિન્ટર ડિવાઇસમાં ભૂલ</translation>
 <translation id="7165320105431587207">નેટવર્ક ગોઠવવામાં નિષ્ફળ</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" આ તપાસાયેલા સ્થાનોમાં ફોટા, વીડિયો અને સાઉન્ડ ફાઇલોને વાંચી શકે છે.</translation>
 <translation id="7167486101654761064">આ પ્રકારની ફાઇલો &amp;હંમેશા ખોલો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 6a9a4d02..f57c0b8d 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">पॉवरवॉश</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> सुरक्षित तरीके से डाउनलोड नहीं की जा सकती</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> युग्मित करना चाहता है</translation>
-<translation id="2341476639346994688">किसी गड़बड़ी की वजह से प्रिंटर बंद हो गया है</translation>
 <translation id="2342740338116612727">बुकमार्क जोड़े गए</translation>
 <translation id="2343747224442182863">इस टैब पर फ़ोकस करें</translation>
 <translation id="2344686470986284227">वर्चुअल मशीन कंट्रोलर शुरू हो रहा है</translation>
@@ -3447,7 +3446,6 @@
 <translation id="5283677936944177147">ओह!  सिस्टम, डिवाइस का मॉडल या सीरियल नंबर पता नहीं कर सका.</translation>
 <translation id="5284445933715251131">डाउनलोड करना जारी रखें</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> का डिसप्ले</translation>
-<translation id="5286094561505658635">प्रिंटर में आउटपुट वाली जगह भर गई है</translation>
 <translation id="5286194356314741248">स्‍कैन हो रहा है</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">आपके खाते</translation>
@@ -3668,7 +3666,6 @@
 <translation id="5553089923092577885">प्रमाणपत्र नीति मानचित्रण</translation>
 <translation id="5554489410841842733">यह आइकॉन तब दिखाई देगा जब एक्सटेंशन मौजूदा पेज पर काम कर सकेगा.</translation>
 <translation id="5554720593229208774">ईमेल प्रमाणन प्राधिकरण</translation>
-<translation id="5554931805291741487">प्रिंटर में आउटपुट वाली जगह करीब-करीब भर गई है</translation>
 <translation id="5556459405103347317">फिर लोड करें</translation>
 <translation id="5558125320634132440">इस साइट को ब्लॉक किया गया है, क्योंकि इसमें परिपक्व सामग्री हो सकती है</translation>
 <translation id="5558129378926964177">ज़ूम &amp;इन करें</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">इस एक्‍सटेंशन को कोई खास अनुमति नहीं चाहिए</translation>
 <translation id="7154130902455071009">अपना आरंभ पेज इसमें बदलें: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">कैमरा या फ़ाइल से मौजूदा फ़ोटो</translation>
-<translation id="7163766494674803047">प्रिंटर में डिवाइस से जुड़ी कोई गड़बड़ी है</translation>
 <translation id="7165320105431587207">नेटवर्क कॉन्फ़िगर करने में विफल</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" चेक किए गए स्‍थानों में चित्रों, वीडियो, और ध्‍वनि फ़ाइलों को पढ़ सकता है.</translation>
 <translation id="7167486101654761064">इस प्रकार की फ़ाइलें &amp;हमेशा खोलें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index b21e634..70dde01 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -207,7 +207,7 @@
 <translation id="1238191093934674082">Open VPN</translation>
 <translation id="1239594683407221485">Istražite sadržaj ovog uređaja u aplikaciji Datoteke.</translation>
 <translation id="124116460088058876">Više jezika</translation>
-<translation id="1241639418100230264">Možda će biti troškova za podatkovni promet</translation>
+<translation id="1241639418100230264">Možda će se naplatiti podatkovni promet</translation>
 <translation id="1241753985463165747">čitati i mijenjati sve vaše podatke na trenutačnoj web-lokaciji pri pozivanju</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> želi vratiti vaše postavke na zadano.</translation>
 <translation id="1243314992276662751">Prenesi</translation>
@@ -1112,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Datoteka <ph name="FILE_NAME" /> ne može se sigurno preuzeti</translation>
 <translation id="2340263603246777781">Web-lokacija <ph name="ORIGIN" /> želi se upariti</translation>
-<translation id="2341476639346994688">Pisač je zaustavljen</translation>
 <translation id="2342740338116612727">Oznake su dodane</translation>
 <translation id="2343747224442182863">Fokusiraj tu karticu</translation>
 <translation id="2344686470986284227">Pokretanje upravljača virtualnog računala</translation>
@@ -3458,7 +3457,6 @@
 <translation id="5283677936944177147">Ups! Sustav nije uspio utvrditi model uređaja ili serijski broj.</translation>
 <translation id="5284445933715251131">Nastavi preuzimanje</translation>
 <translation id="5285635972691565180">Zaslon <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Izlazna je ladica puna</translation>
 <translation id="5286194356314741248">Skeniranje</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Vaši računi</translation>
@@ -3680,7 +3678,6 @@
 <translation id="5553089923092577885">Mapiranja pravila certifikata</translation>
 <translation id="5554489410841842733">Ova ikona bit će vidljiva kad na trenutnoj stranici proširenje postane aktivno.</translation>
 <translation id="5554720593229208774">Tijelo za izdavanje certifikata za e-poštu</translation>
-<translation id="5554931805291741487">Izlazna je ladica gotovo puna</translation>
 <translation id="5556459405103347317">Ponovno učitaj</translation>
 <translation id="5558125320634132440">Web-lokacija je blokirana jer se na njoj vjerojatno nalazi sadržaj za odrasle</translation>
 <translation id="5558129378926964177">Zoom &amp;In (Povećaj)</translation>
@@ -4954,7 +4951,6 @@
 <translation id="7152478047064750137">To proširenje ne zahtijeva nikakva posebna dopuštenja</translation>
 <translation id="7154130902455071009">promijeniti vašu početnu stranicu u: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Postojeća fotografija s fotoaparata ili iz datoteke</translation>
-<translation id="7163766494674803047">Pogreška pisača</translation>
 <translation id="7165320105431587207">Konfiguriranje mreže nije uspjelo</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" može čitati slikovne, video i audiodatoteke na označenim lokacijama.</translation>
 <translation id="7167486101654761064">&amp;Uvijek otvori ovu vrstu datoteka</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 9566d76..07b8bf50 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Létrehozva</translation>
 <translation id="1067291318998134776">Linux (béta)</translation>
 <translation id="1067922213147265141">Egyéb Google-szolgáltatások</translation>
+<translation id="1068961867683064946">Google-fiók létrehozása a gyermeke számára</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">A számítógépén lévő egyik program olyan bővítményt adott hozzá, amely megváltoztathatja a Chrome működését.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> aloldal vissza gombja</translation>
 <translation id="1322046419516468189">A mentett jelszavakat itt láthatja és kezelheti: <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Segíti a célzott támadások kockázatának kitett személyek személyes Google-fiókjának védelmét</translation>
+<translation id="1325985428688410772">Profil hozzáadása</translation>
 <translation id="1326317727527857210">Ha a többi eszközéről is szeretné elérni a lapjait, jelentkezzen be a Chrome-ba.</translation>
 <translation id="1327074568633507428">Nyomtató a Google Cloud Printben</translation>
 <translation id="1327272175893960498">Kerberos-jegyek</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Hálózat beállítása</translation>
 <translation id="230927227160767054">Ez az oldal szolgáltatáskezelőt akar telepíteni.</translation>
 <translation id="2309620859903500144">Ennél a webhelynél le van tiltva a hozzáférés a felhasználó mozgás- vagy fényérzékelőihez.</translation>
+<translation id="2314873619957287124">Digitális alapszabályok beállításával segíthet gyermekének a tanulásban, játékban és felfedezésben</translation>
 <translation id="2315414688463285945">Hiba történt a Linux-fájlok konfigurálása során. Próbálja újra.</translation>
 <translation id="2315587498123194634">Link küldése ide: <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Köszönöm, nem</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Kérdezzen rá, ha valamelyik webhely hozzá szeretne férni a soros portokhoz (ajánlott)</translation>
 <translation id="2323018538045954000">Mentett Wi-Fi-hálózatok</translation>
 <translation id="2325444234681128157">Jelszó megjegyzése</translation>
+<translation id="2326160999284776503">Bejelentkezés gyermeke Google-fiókjával</translation>
 <translation id="2326188115274135041">A PIN-kód megerősítése az automatikus feloldás bekapcsolásához</translation>
 <translation id="2326931316514688470">Alkalmazás új&amp;ratöltése</translation>
 <translation id="2327492829706409234">Alkalmazás engedélyezése</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">A következő fájlt nem lehet biztonságosan letölteni: <ph name="FILE_NAME" /></translation>
 <translation id="2340263603246777781">A(z) <ph name="ORIGIN" /> párosítást szeretne végrehajtani</translation>
-<translation id="2341476639346994688">A nyomtató leállt</translation>
 <translation id="2342740338116612727">Könyvjelzők hozzáadva</translation>
 <translation id="2343747224442182863">Fókusz erre a lapra</translation>
 <translation id="2344686470986284227">A virtuális gép vezérlőjének indítása</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Hiba történt. Ellenőrizze a nyomtatót, majd próbálja újra.</translation>
 <translation id="2387052489799050037">Ugrás a kezdőképernyőre</translation>
 <translation id="2387458720915042159">Proxykapcsolat típusa</translation>
+<translation id="2391082728065870591">Visszajelzési jelentés küldése</translation>
 <translation id="2391419135980381625">Alapértelmezett betűtípus</translation>
 <translation id="2392163307141705938">Elérted az időkorlátot, amelyet szülőd állított be a következőhöz: <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Aktiválás</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Hiba történt a jelszavak szinkronizálásakor</translation>
 <translation id="2537395079978992874">A(z) <ph name="ORIGIN" /> megtekintheti és szerkesztheti a következő fájlokat és mappákat:</translation>
 <translation id="2537927931785713436">Virtuális gép rendszerképének ellenőrzése</translation>
+<translation id="2538084450874617176">Ki használja a következő eszközt: <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Szinkronizálás letiltva</translation>
 <translation id="2540449034743108469">Nyomja meg az „Indítás” lehetőséget, ha szeretné meghallgatni a bővítmény tevékenységeit</translation>
 <translation id="2541002089857695151">Optimalizálja a teljes képernyős átküldést?</translation>
@@ -2742,6 +2747,7 @@
 <translation id="4364327530094270451">Dinnye</translation>
 <translation id="4364567974334641491">A(z) <ph name="APP_NAME" /> megoszt egy ablakot.</translation>
 <translation id="4364830672918311045">Értesítések megjelenítése</translation>
+<translation id="4368115171699243057">Beállíthatja ezt a(z) <ph name="DEVICE_TYPE" /> eszközt gyermeke számára</translation>
 <translation id="437004882363131692"><ph name="DEVICE_TYPE" />-tippeket és -ajánlatokat, valamint friss híreket kaphat, ezenkívül visszajelzést is küldhet. Bármikor leiratkozhat.</translation>
 <translation id="4370975561335139969">A megadott e-mail-cím és jelszó nem egyezik</translation>
 <translation id="4374831787438678295">Linux-telepítő</translation>
@@ -2902,6 +2908,7 @@
 <translation id="4565377596337484307">Jelszó elrejtése</translation>
 <translation id="4565917129334815774">Rendszernaplók eltárolása</translation>
 <translation id="456717285308019641">Fordítani kívánt oldalnyelv</translation>
+<translation id="4567533462991917415">A beállítás után bármikor felvehet további személyeket. Bárki személyre szabhatja fiókját, és gondoskodhat adatainak biztonságáról.</translation>
 <translation id="4567772783389002344">Szó hozzáadása</translation>
 <translation id="4568025708905928793">A biztonsági hardverkulcs igénylése megtörtént</translation>
 <translation id="4568213207643490790">Sajnáljuk, a Google-fiók jelenleg nem engedélyezett ezen az eszközön.</translation>
@@ -2953,6 +2960,7 @@
 <translation id="4628762811416793313">A Linux-tároló beállítása nem fejeződött be. Próbálja újra.</translation>
 <translation id="4633003931260532286">A bővítmény a(z) „<ph name="IMPORT_NAME" />” legalább „<ph name="IMPORT_VERSION" />” verzióját igényli, ám csak a(z) „<ph name="INSTALLED_VERSION" />” verzió van telepítve</translation>
 <translation id="4633757335284074492">Biztonsági mentés a Google Drive-ra. Bármikor könnyedén visszaállíthatja adatait vagy lecserélheti eszközét. A biztonsági másolat alkalmazásadatokat tartalmaz. A biztonsági másolatokat a Google szervereire tölti fel a rendszer, és a gyermeke Google-fiókjához használt jelszóval titkosítja őket.</translation>
+<translation id="4634575639321169635">Eszköz beállítása munkahelyi vagy személyes használatra</translation>
 <translation id="4634771451598206121">Bejelentkezés újra...</translation>
 <translation id="4635072447747973225">A Crostini eltávolítása</translation>
 <translation id="4635398712689569051">A(z) <ph name="PAGE_NAME" /> nem hozzáférhető a vendég felhasználók számára.</translation>
@@ -3371,6 +3379,7 @@
 <translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />" legújabb verziója ki van kapcsolva, mert több jogosultság kell hozzá.</translation>
 <translation id="5185500136143151980">Nincs internet</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">A(z) <ph name="PROFILE_LOCAL_NAME" /> beállítások menüje</translation>
 <translation id="5190926251776387065">Port aktiválása</translation>
 <translation id="51918995459521422">A(z) <ph name="ORIGIN" /> több fájlt szeretne letölteni</translation>
 <translation id="5192062846343383368">A Family Link alkalmazást megnyitva ellenőrizheti a felügyeleti beállításokat</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Hoppá! A rendszer nem tudta megállapítani az eszköz modelljét vagy sorozatszámát.</translation>
 <translation id="5284445933715251131">Letöltés folytatása</translation>
 <translation id="5285635972691565180">Kijelző (<ph name="DISPLAY_ID" />)</translation>
-<translation id="5286094561505658635">A kimeneti terület megtelt</translation>
 <translation id="5286194356314741248">Keresés</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Az Ön fiókjai</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">A kijelző bekapcsolva marad</translation>
 <translation id="5496587651328244253">Rendezés</translation>
 <translation id="5497251278400702716">Ez a fájl</translation>
+<translation id="5498967291577176373">Nevére, címére vagy telefonszámára vonatkozó szövegközi javaslatokkal gyorsabban gépelhet</translation>
 <translation id="5499313591153584299">Ez a fájl káros lehet a számítógépre.</translation>
 <translation id="5499453227627332024">Frissítés áll rendelkezésre a Linux-tárolóban. A frissítést később is végrehajthatja a Beállítások alkalmazásban.</translation>
 <translation id="5500709606820808700">A biztonsági ellenőrzés ma lefutott</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Tanúsítvány-irányelv leképezések</translation>
 <translation id="5554489410841842733">Ez az ikon akkor látható, ha a bővítmény tehet valamit az aktuális oldalon.</translation>
 <translation id="5554720593229208774">E-mail tanúsítványkibocsátó</translation>
-<translation id="5554931805291741487">A kimeneti terület majdnem tele van</translation>
 <translation id="5556459405103347317">Újratöltés</translation>
 <translation id="5558125320634132440">Ez a webhely le van tiltva a rajta található esetleges felnőtteknek szóló tartalmak miatt</translation>
 <translation id="5558129378926964177">&amp;Nagyítás</translation>
@@ -3777,6 +3785,7 @@
 <translation id="5689516760719285838">Tartózkodási hely</translation>
 <translation id="56907980372820799">Adatok összekapcsolása</translation>
 <translation id="5691511426247308406">Család</translation>
+<translation id="5691581861107245578">Emojijavaslatok megjelenítése az Ön által beírt szöveg alapján</translation>
 <translation id="5691772641933328258">Ujjlenyomat felismerése sikertelen</translation>
 <translation id="5692183275898619210">Nyomtatás kész</translation>
 <translation id="569425414730375234">Jelenlegi munkamenet inkognitó módban: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4136,6 +4145,7 @@
 <translation id="6124698108608891449">A webhelynek több engedélyre van szüksége.</translation>
 <translation id="6125479973208104919">Sajnos ismét hozzá kell adnia fiókját a(z) <ph name="DEVICE_TYPE" /> eszközhöz.</translation>
 <translation id="6129691635767514872">A kiválasztott adatokat eltávolítottuk a Chrome-ból és a szinkronizált eszközökről. Előfordulhat, hogy Google-fiókjában (a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> címen) még szerepelnek a böngészési előzmények egyéb formái, például az egyéb Google-szolgáltatásokban végzett keresései és tevékenységei.</translation>
+<translation id="6129839611163153407">Gyermeke</translation>
 <translation id="6129938384427316298">Netscape tanúsítvány - megjegyzés</translation>
 <translation id="6129953537138746214">Szóköz</translation>
 <translation id="6130692320435119637">Wi-Fi hozzáadása</translation>
@@ -4176,6 +4186,7 @@
 <translation id="6178664161104547336">Tanúsítvány kiválasztása</translation>
 <translation id="6181431612547969857">Letöltés letiltva</translation>
 <translation id="6185132558746749656">Eszközhely</translation>
+<translation id="6195446518998936840">Szülői felügyelet beállításához gyermekének Google-fiókkal kell rendelkeznie – ennek kezelésében segíthet neki. A Family Link alkalmazás segítségével képernyőidőre vonatkozó korlátozásokat állíthat be, webhelyeket hagyhat jóvá és tilthat le, illetve egyéb műveleteket végezhet.</translation>
 <translation id="6195693561221576702">Ezt az eszközt nem lehet offline demó módban beállítani.</translation>
 <translation id="6196640612572343990">Harmadik féltől származó cookie-k letiltása</translation>
 <translation id="6196854373336333322">A(z) <ph name="EXTENSION_NAME" /> bővítmény átvette az irányítást proxybeállításai felett, ami azt jelenti, hogy a bővítmény minden internetes tevékenységét módosíthatja, feltörheti vagy lehallgathatja. Ha nem biztos benne, hogy miért történt a változás, akkor valószínűleg nem is akarja azt.</translation>
@@ -4941,7 +4952,6 @@
 <translation id="7152478047064750137">A bővítmény nem igényel különleges engedélyeket</translation>
 <translation id="7154130902455071009">Kezdőoldal módosítása a következőre: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Meglévő fénykép a fényképezőgépről vagy fájlból</translation>
-<translation id="7163766494674803047">Eszközhiba a nyomtatónál</translation>
 <translation id="7165320105431587207">Nem sikerült konfigurálni a hálózatot</translation>
 <translation id="716640248772308851">A(z) „<ph name="EXTENSION" />” olvashatja a megjelölt helyeken lévő képeket, videókat és hangfájlokat.</translation>
 <translation id="7167486101654761064">&amp;Az ilyen típusú fájlokat mindig nyissa meg</translation>
@@ -5931,6 +5941,7 @@
 <translation id="8372369524088641025">Hibás WEP kulcs</translation>
 <translation id="8372477600026034341">További gazdagépek</translation>
 <translation id="8373652277231415614">Megosztott Crostini-könyvtárak</translation>
+<translation id="8376384591331888629">Ide tartoznak többek között az ezen a webhelyen található, harmadik felektől származó cookie-k</translation>
 <translation id="8378714024927312812">Az Ön szervezete kezeli</translation>
 <translation id="8379878387931047019">Az eszköz nem támogatja a webhely által kért biztonsági hardverkulcstípust</translation>
 <translation id="8379991678458444070">Gyorsan visszajuthat ide, ha hozzáadja a lapot a könyvjelzőkhöz</translation>
@@ -6014,6 +6025,7 @@
 <translation id="8481187309597259238">USB-engedély megerősítése</translation>
 <translation id="8483248364096924578">IP-cím</translation>
 <translation id="8487678622945914333">Nagyítás</translation>
+<translation id="8489156414266187072">A személyes javaslatok csak a fiókjában jelennek meg</translation>
 <translation id="8490896350101740396">A(z) „<ph name="UPDATED_APPS" />” kioszkalkalmazás frissítve lett. Kérjük, indítsa újra az eszközt a frissítési folyamat befejezéséhez.</translation>
 <translation id="8493236660459102203">Mikrofon:</translation>
 <translation id="8496717697661868878">A plug-in futtatása</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 4467fd84..c137e4d 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ֆայլը հնարավոր չէ անվտանգ ներբեռնել</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> կայքն ուզում է զուգակցվել</translation>
-<translation id="2341476639346994688">Տպիչի աշխատանքը կանգնեցվել է</translation>
 <translation id="2342740338116612727">Էջանիշներն ավելացվեցին</translation>
 <translation id="2343747224442182863">Ֆոկուսավորել այս ներդիրը</translation>
 <translation id="2344686470986284227">Վիրտուալ մեքենայի կարգավորիչը գործարկվում է</translation>
@@ -3451,7 +3450,6 @@
 <translation id="5283677936944177147">Համակարգը չճանաչեց սարքի մոդելը կամ սերիական համարը:</translation>
 <translation id="5284445933715251131">Շարունակել ներբեռնումը</translation>
 <translation id="5285635972691565180">Էկրան <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Տպիչի ելքային դարակը լցված է</translation>
 <translation id="5286194356314741248">Որոնում</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Ձեր հաշիվները</translation>
@@ -3672,7 +3670,6 @@
 <translation id="5553089923092577885">Վկայագրի քաղաքականությունների համադրում</translation>
 <translation id="5554489410841842733">Այս պատկերակը կերևա, եթե ընդլայնումը կարող է աշխատել ընթացիկ էջում:</translation>
 <translation id="5554720593229208774">Էլփոստի հավաստագրման կենտրոն</translation>
-<translation id="5554931805291741487">Տպիչի ելքային դարակը գրեթե լցված է</translation>
 <translation id="5556459405103347317">Վերաբեռնել</translation>
 <translation id="5558125320634132440">Կայքն արգելափակվել է, քանի որ այն կարող է պարունակել մեծահասակների համար բովանդակություն</translation>
 <translation id="5558129378926964177">Խոշո&amp;րացնել</translation>
@@ -3893,7 +3890,7 @@
 <translation id="5833726373896279253">Այս կարգավորումները կարող են միայն փոփոխվել սեփականատիրոջ կողմից՝</translation>
 <translation id="5834581999798853053">Մնացել է մոտ <ph name="TIME" /> րոպե</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Տեսախցիկը կամ խոսափողը ներկայումս ձայնագրում է</translation>
-<translation id="5840680448799937675">Ֆայլերը միշտ կփոխանցվեն առանց ինտերնետ կապի</translation>
+<translation id="5840680448799937675">Ֆայլերը միշտ կփոխանցվեն անցանց ռեժիմում</translation>
 <translation id="5841270259333717135">Կարգավորել Ethernet-ը</translation>
 <translation id="5842497610951477805">Միացնել/անջատել Bluetooth-ը</translation>
 <translation id="5844574845205796324">Առաջարկել նոր բովանդակություն ուսումնասիրման համար</translation>
@@ -4943,7 +4940,6 @@
 <translation id="7152478047064750137">Այս ընդլայնումը հատուկ թույլտվություն չի պահանջում</translation>
 <translation id="7154130902455071009">Դարձնել <ph name="START_PAGE" />-ը սկզբնական էջը</translation>
 <translation id="7155171745945906037">Առկա լուսանկար խցիկից կամ ֆայլից</translation>
-<translation id="7163766494674803047">Տպիչը սարքային խնդիր ունի</translation>
 <translation id="7165320105431587207">Չհաջողվեց կազմաձևել ցանցը</translation>
 <translation id="716640248772308851">«<ph name="EXTENSION" />» ընդլայնումը կարող է նշված պանակներում կարդալ պատկերները, տեսանյութերը և ձայնային ֆայլերը:</translation>
 <translation id="7167486101654761064">&amp;Միշտ բացել այս տեսակի ֆայլերը</translation>
@@ -5812,7 +5808,7 @@
 <translation id="8227119283605456246">Կցել ֆայլ</translation>
 <translation id="8229943166551236192">Սարքի տվյալները 24 ժամ հետո կջնջվեն</translation>
 <translation id="8230134520748321204">Պահե՞լ <ph name="ORIGIN" /> կայքի գաղտնաբառը</translation>
-<translation id="8233874515683663066">Առաջարկվող պատկերներ և արվեստի գործեր</translation>
+<translation id="8233874515683663066">Պատկերների ընտրանի</translation>
 <translation id="8234795456569844941">Օգնեք մեր ճարտարագետներին շտկել այս խնդիրը։ Նկարագրեք, թե ինչ տեղի ունեցավ նախքան պրոֆիլի սխալի մասին հաղորդագրություն ստանալը՝</translation>
 <translation id="8236917170563564587">Փոխարենը կիսվեք այս ներդիրով</translation>
 <translation id="8237647586961940482">Մուգ վարդագույն և կարմիր</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 413e4d6..47906b1 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> tidak dapat didownload dengan aman</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ingin menyandingkan</translation>
-<translation id="2341476639346994688">Printer berhenti</translation>
 <translation id="2342740338116612727">Bookmark ditambahkan</translation>
 <translation id="2343747224442182863">Fokuskan Tab Ini</translation>
 <translation id="2344686470986284227">Memulai pengontrol mesin virtual (VM)</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Ups! Sistem gagal menentukan model perangkat atau nomor seri.</translation>
 <translation id="5284445933715251131">Lanjutkan Mendownload</translation>
 <translation id="5285635972691565180">Layar <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Penampung hasil cetak penuh</translation>
 <translation id="5286194356314741248">Memindai</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Akun Anda</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Pemetaan Kebijakan Sertifikat</translation>
 <translation id="5554489410841842733">Ikon ini akan kelihatan saat ekstensi dapat bertindak pada halaman saat ini.</translation>
 <translation id="5554720593229208774">Otoritas Sertifikasi Email</translation>
-<translation id="5554931805291741487">Penampung hasil cetak hampir penuh</translation>
 <translation id="5556459405103347317">Muat ulang</translation>
 <translation id="5558125320634132440">Situs ini diblokir karena mungkin berisi konten dewasa</translation>
 <translation id="5558129378926964177">Per&amp;besar</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Ekstensi ini tidak memerlukan izin khusus</translation>
 <translation id="7154130902455071009">Ubah halaman awal Anda menjadi: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto yang sudah ada dari kamera atau file</translation>
-<translation id="7163766494674803047">Error perangkat pada printer</translation>
 <translation id="7165320105431587207">Gagal mengonfigurasi jaringan</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" dapat membaca file gambar, video, dan suara di lokasi yang dicentang.</translation>
 <translation id="7167486101654761064">Sel&amp;alu buka file jenis ini</translation>
@@ -5811,7 +5807,7 @@
 <translation id="8227119283605456246">Lampirkan file</translation>
 <translation id="8229943166551236192">Data perangkat akan dihapus dalam 24 jam</translation>
 <translation id="8230134520748321204">Simpan sandi untuk <ph name="ORIGIN" />?</translation>
-<translation id="8233874515683663066">Gambar dan karya seni pilihan</translation>
+<translation id="8233874515683663066">Gambar dan poster pilihan</translation>
 <translation id="8234795456569844941">Bantu engineer kami memperbaiki masalah ini. Beri tahu kami yang terjadi tepat sebelum Anda mendapatkan pesan error profil:</translation>
 <translation id="8236917170563564587">Bagikan tab ini saja</translation>
 <translation id="8237647586961940482">Merah muda gelap dan merah tua</translation>
@@ -6095,7 +6091,7 @@
 <translation id="8602851771975208551">Program lain di komputer Anda menambahkan aplikasi yang dapat mengubah cara kerja Chrome.</translation>
 <translation id="8605428685123651449">Memori SQLite</translation>
 <translation id="8608618451198398104">Tambahkan tiket Kerberos</translation>
-<translation id="860909219589324847">Jangan pernah menggunakan data seluler untuk transfer</translation>
+<translation id="860909219589324847">Jangan pernah gunakan data seluler untuk transfer</translation>
 <translation id="8609465669617005112">Berpindah ke atas</translation>
 <translation id="8610103157987623234">Format salah, harap coba lagi</translation>
 <translation id="8613164732773110792">Karakter huruf kecil, angka, garis bawah, atau tanda hubung saja</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 289d558..7c975e2 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Búið til</translation>
 <translation id="1067291318998134776">Linux (tilraunaútgáfa)</translation>
 <translation id="1067922213147265141">Önnur Google þjónusta</translation>
+<translation id="1068961867683064946">Stofnaðu Google reikning fyrir barnið þitt</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Annað forrit í tölvunni þinni bætti við viðbót sem gæti breytt því hvernig Chrome virkar.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Bakkhnappur undirsíðu <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Þú getur skoðað og haft umsjón með vistuðum aðgangsorðum á <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Verndar Google reikninga einstaklinga þar sem hætta er á miðuðum árásum</translation>
+<translation id="1325985428688410772">Bæta við svæði</translation>
 <translation id="1326317727527857210">Skráðu þig inn í Chrome til að fá aðgang að flipunum þínum í öllum tækjum.</translation>
 <translation id="1327074568633507428">Prentari í Google skýjaprentun</translation>
 <translation id="1327272175893960498">Kerberos-miðar</translation>
@@ -386,7 +388,7 @@
 <translation id="1465827627707997754">Pítsusneið</translation>
 <translation id="1468571364034902819">Ekki er hægt að nota þennan prófíl</translation>
 <translation id="1470084204649225129">{NUM_TABS,plural, =1{Bæta flipa við nýjan hóp}one{Bæta flipum við nýjan hóp}other{Bæta flipum við nýjan hóp}}</translation>
-<translation id="1470946456740188591">Notaðu Ctrl+leitarhnappur+7 til að kveikja eða slökkva á skoðun með textabendli</translation>
+<translation id="1470946456740188591">Notaðu Ctrl+leitarhnapp+7 til að kveikja eða slökkva á skoðun með textabendli</translation>
 <translation id="1472675084647422956">Sýna meira</translation>
 <translation id="1474785664565228650">Breytingin á hljóðnemastillingu krefst þess að Parallels Desktop sé endurræst. Endurræstu Parallels Desktop til að halda áfram.</translation>
 <translation id="1475502736924165259">Þú ert með skráð vottorð sem passa ekki í aðra flokka</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Stilla net</translation>
 <translation id="230927227160767054">Þessi síða vill setja upp þjónustuhjálparforrit.</translation>
 <translation id="2309620859903500144">Lokað hefur verið á aðgang þessa vefsvæðis að hreyfi- eða birtuskynjara.</translation>
+<translation id="2314873619957287124">Settu stafrænar reglur til að hjálpa barninu þínu að læra, leika sér og skoða</translation>
 <translation id="2315414688463285945">Villa við að stilla Linux-skrár. Reyndu aftur.</translation>
 <translation id="2315587498123194634">Senda tengil í <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nei, takk</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Spyrja þegar vefsvæði vill fá aðgang að raðtengi (ráðlagt)</translation>
 <translation id="2323018538045954000">Vistuð Wi-Fi net</translation>
 <translation id="2325444234681128157">Muna aðgangsorð</translation>
+<translation id="2326160999284776503">Skráðu þig inn með Google reikningi barnsins</translation>
 <translation id="2326188115274135041">Staðfestu PIN-númer til að kveikja á sjálfvirkri opnun</translation>
 <translation id="2326931316514688470">Endu&amp;rhlaða forrit</translation>
 <translation id="2327492829706409234">Virkja forrit</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Djúphreinsun</translation>
 <translation id="2340239562261172947">Ekki er hægt að sækja <ph name="FILE_NAME" /> á öruggan hátt</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> vill parast</translation>
-<translation id="2341476639346994688">Prentari stöðvaðist</translation>
 <translation id="2342740338116612727">Bókamerkjum bætt við</translation>
 <translation id="2343747224442182863">Setja þennan flipa í fókus</translation>
 <translation id="2344686470986284227">Ræsir fjarstýringu sýndarvélar</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Villa kom upp. Athugaðu prentarann og reyndu aftur.</translation>
 <translation id="2387052489799050037">Fara á heimaskjá</translation>
 <translation id="2387458720915042159">Gerð tengingar staðgengilsþjóns</translation>
+<translation id="2391082728065870591">Senda ábendingaskýrslu</translation>
 <translation id="2391419135980381625">Venjulegt letur</translation>
 <translation id="2392163307141705938">Þú hefur náð tímamörkum sem foreldri þitt stillti fyrir <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Virkja</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Villa við að samstilla aðgangsorð</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> getur skoðað og breytt eftirfarandi skrám og möppum</translation>
 <translation id="2537927931785713436">Athugar mynd sýndarvélar</translation>
+<translation id="2538084450874617176">Hver er að nota <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Slökkt er á samstillingu</translation>
 <translation id="2540449034743108469">Ýttu á „Byrja“ til að hlusta eftir aðgerðum viðbóta</translation>
 <translation id="2541002089857695151">Fínstilla útsendingu á öllum skjánum?</translation>
@@ -2019,7 +2024,7 @@
 <translation id="3475843873335999118">Ennþá tekst ekki að bera kennsl á fingrafarið þitt. Sláðu inn aðgangsorðið þitt.</translation>
 <translation id="3476303763173086583">Senda notkunar- og greiningargögn. Hjálpaðu okkur að bæta Android fyrir barnið þitt með því að senda sjálfkrafa greiningargögn, tækisgögn og upplýsingar um forritanotkun til Google. Þetta verður ekki notað til að bera kennsl á barnið þitt og mun stuðla að því að bæta stöðugleika kerfa og forrita auk annarra endurbóta. Sum uppsöfnuð gögn munu einnig gagnast forritum og samstarfsaðilum Google, til dæmis þróunaraðilum Android. Eigandi valdi þessa <ph name="BEGIN_LINK1" />stillingu<ph name="END_LINK1" />. Eigandi getur kosið að senda greiningar- og notkunargögn þessa tækis til Google. Ef kveikt er á ítarlegri vef- og forritavirkni fyrir barnið geta þessi gögn verið vistuð á Google reikningi barnsins. <ph name="BEGIN_LINK2" />Frekari upplýsingar<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Úbbs!  Kerfið gat ekki sótt stefnu úr tækinu þínu.</translation>
-<translation id="3476903331946078194">Sjálfvirkt val á bestu myndum</translation>
+<translation id="3476903331946078194">Sjálfvirkt val á bestu myndunum</translation>
 <translation id="347785443197175480">Halda áfram að veita <ph name="HOST" /> aðgang að myndavélinni og hljóðnemanum</translation>
 <translation id="3478685642445675458">Opnaðu prófílinn þinn áður en aðili er fjarlægður.</translation>
 <translation id="3479552764303398839">Ekki núna</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Melóna</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> deilir glugga.</translation>
 <translation id="4364830672918311045">Birta tilkynningar</translation>
+<translation id="4368115171699243057">Settu <ph name="DEVICE_TYPE" /> upp fyrir barnið þitt</translation>
 <translation id="437004882363131692">Fáðu ábendingar, tilboð og uppfærslur fyrir <ph name="DEVICE_TYPE" /> og komdu ábendingum á framfæri. Þú getur hætt áskrift hvenær sem er.</translation>
 <translation id="4370975561335139969">Netfangið og aðgangsorðið sem þú slóst inn passa ekki saman</translation>
 <translation id="4374831787438678295">Linux-uppsetningarforrit</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Fela aðgangsorð</translation>
 <translation id="4565917129334815774">Geyma kerfisannála</translation>
 <translation id="456717285308019641">Tungumál síðu sem þýða á af</translation>
+<translation id="4567533462991917415">Þú getur alltaf bætt við fleiri einstaklingum eftir uppsetningu. Hver einstaklingur getur sérsniðið reikninginn sinn og tryggt öryggi gagna.</translation>
 <translation id="4567772783389002344">Bæta orði við</translation>
 <translation id="4568025708905928793">Beðið er um öryggislykil</translation>
 <translation id="4568213207643490790">Google reikningar eru ekki leyfðir á þessu tæki.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Uppsetningu á Linux-geyminum var ekki lokið. Reyndu aftur.</translation>
 <translation id="4633003931260532286">Viðbótin krefst „<ph name="IMPORT_NAME" />“ með „<ph name="IMPORT_VERSION" />“ eða nýrri útgáfu en aðeins útgáfa „<ph name="INSTALLED_VERSION" />“ er uppsett</translation>
 <translation id="4633757335284074492">Taka afrit á Google Drive. Endurheimtu gögn eða skiptu um tæki hvenær sem er. Þetta öryggisafrit inniheldur forritsgögn. Öryggisafritunum þínum er hlaðið inn á Google og þau dulkóðuð með aðgangsorði Google reiknings barnsins þíns.</translation>
+<translation id="4634575639321169635">Settu þetta tæki upp fyrir notkun við vinnu eða til einkanota</translation>
 <translation id="4634771451598206121">Skráðu þig inn aftur...</translation>
 <translation id="4635072447747973225">Fjarlægja Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> er ekki í boði fyrir gestanotendur.</translation>
@@ -3237,7 +3245,7 @@
 <translation id="5015344424288992913">Leysir úr proxy-þjóni...</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">Muna</translation>
-<translation id="5017643436812738274">Þú getur skoðað síður með textabendli. Ýttu á Ctrl+leitarhnappur+7 til að slökkva.</translation>
+<translation id="5017643436812738274">Þú getur skoðað síður með textabendli. Ýttu á Ctrl+leitarhnapp+7 til að slökkva.</translation>
 <translation id="5018207570537526145">Opna vefsvæði viðbótar</translation>
 <translation id="5018526990965779848">Senda notkunar- og greiningargögn. Hjálpaðu okkur að bæta Android fyrir þig með því að senda sjálfkrafa greiningargögn, tækisgögn og upplýsingar um forritanotkun til Google. Þetta mun stuðla að stöðugleika kerfa og forrita og öðrum endurbótum. Sum uppsöfnuð gögn munu einnig gagnast forritum og samstarfsaðilum Google, til dæmis þróunaraðilum Android. Ef kveikt er á ítarlegri vef- og forritavirkni geta þessi gögn verið vistuð á Google reikningnum þínum.</translation>
 <translation id="5021750053540820849">Ekki uppfært enn</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">Nýjasta útgáfa <ph name="EXTENSION_NAME" /> hefur verið gerð óvirk því að hún krefst frekari heimilda.</translation>
 <translation id="5185500136143151980">Engin nettenging</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Valmynd valkosta fyrir <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Virkja gátt</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vill sækja margar skrár</translation>
 <translation id="5192062846343383368">Opnaðu forritið Family Link til að sjá eftirlitsstillingarnar þínar</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Úbbs! Kerfið gat ekki ákvarðað tækisauðkenni eða raðnúmer.</translation>
 <translation id="5284445933715251131">Halda áfram að sækja</translation>
 <translation id="5285635972691565180">Skjár <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Úttakssvæðið er fullt</translation>
 <translation id="5286194356314741248">Leit</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Reikningarnir þínir</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Hafa kveikt á skjá</translation>
 <translation id="5496587651328244253">Skipuleggja</translation>
 <translation id="5497251278400702716">Þessi skrá</translation>
+<translation id="5498967291577176373">Skrifaðu hraðar með tillögum í línum fyrir nafn þitt, heimilisfang eða símanúmer</translation>
 <translation id="5499313591153584299">Þessi skrá getur skaðað tölvuna þína.</translation>
 <translation id="5499453227627332024">Uppfærsla er tiltæk fyrir Linux-ramma. Þú getur einnig uppfært síðar í stillingaforritinu.</translation>
 <translation id="5500709606820808700">Öryggisathugun var keyrð í dag</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Stefnuskipan vottorða</translation>
 <translation id="5554489410841842733">Þetta tákn er birt þegar viðbótin getur haft áhrif á núverandi síðu.</translation>
 <translation id="5554720593229208774">Vottunarstöð tölvupósts</translation>
-<translation id="5554931805291741487">Úttakið er næstum fullt</translation>
 <translation id="5556459405103347317">Endurhlaða</translation>
 <translation id="5558125320634132440">Lokað var á þetta svæði vegna þess að það kann að innihalda efni sem er ætlað fullorðnum</translation>
 <translation id="5558129378926964177">Auka aðdrátt</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Staðsetning</translation>
 <translation id="56907980372820799">Tenglagögn</translation>
 <translation id="5691511426247308406">Fjölskylda</translation>
+<translation id="5691581861107245578">Fáðu tillögur að emoji-táknum út frá því sem þú skrifar</translation>
 <translation id="5691772641933328258">Fingrafar þekkist ekki</translation>
 <translation id="5692183275898619210">Prentun lokið</translation>
 <translation id="569425414730375234">Yfirstandandi huliðslota: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Þetta vefsvæði þarf fleiri heimildir.</translation>
 <translation id="6125479973208104919">Þú mun því miður þurfa að bæta reikningnum þínum aftur við þetta <ph name="DEVICE_TYPE" /> tæki.</translation>
 <translation id="6129691635767514872">Völdu gögnin hafa verið fjarlægð af Chrome og samstilltum tækjum. Google reikningurinn þinn kann að vera með annars konar vefskoðunarferil, svo sem yfir leit og virkni í annarri þjónustu Google, á <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Barnið þitt</translation>
 <translation id="6129938384427316298">Athugasemd Netscape-vottorðs</translation>
 <translation id="6129953537138746214">Bil</translation>
 <translation id="6130692320435119637">Bæta Wi-Fi við</translation>
@@ -4175,6 +4185,7 @@
 <translation id="6178664161104547336">Veldu vottorð</translation>
 <translation id="6181431612547969857">Niðurhal útilokað</translation>
 <translation id="6185132558746749656">Staðsetning tækis</translation>
+<translation id="6195446518998936840">Til að setja upp barnalæsingar verður barnið þitt að vera með Google reikning sem þú aðstoðar við að stjórna. Þú getur stillt takmörkun á skjátíma, samþykkt eða lokað á vefsvæði og fleira í Family Link forritinu.</translation>
 <translation id="6195693561221576702">Ekki er hægt að setja þetta tæki upp í ótengdri prufustillingu.</translation>
 <translation id="6196640612572343990">Loka á fótspor frá þriðja aðila</translation>
 <translation id="6196854373336333322">Viðbótin „<ph name="EXTENSION_NAME" />“ hefur tekið að sér stjórn yfir proxy-stillingunum þínum, sem þýðir að hún getur breytt, slitið eða hlerað allt sem þú gerir á netinu. Ef þú veist ekki hvernig þetta gerðist er þetta líklega eitthvað sem þú vilt ekki.</translation>
@@ -4940,7 +4951,6 @@
 <translation id="7152478047064750137">Þessi viðbót þarf engar sérstakar heimildir</translation>
 <translation id="7154130902455071009">Breyta upphafssíðunni í: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Fyrirliggjandi mynd úr myndavél eða skrá</translation>
-<translation id="7163766494674803047">Villa í prentara</translation>
 <translation id="7165320105431587207">Ekki tókst að stilla netið</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />“ getur lesið myndir, myndskeið og hljóðskrár á merktu stöðunum.</translation>
 <translation id="7167486101654761064">Opna &amp;alltaf skrár af þessari tegund</translation>
@@ -5929,6 +5939,7 @@
 <translation id="8372369524088641025">Rangur WEP-lykill</translation>
 <translation id="8372477600026034341">Aukahýslar</translation>
 <translation id="8373652277231415614">Sameiginleg skráasöfn Crostini</translation>
+<translation id="8376384591331888629">Hafa fótspor þriðju aðila á þessu vefsvæði með</translation>
 <translation id="8378714024927312812">Stjórnað af fyrirtækinu þínu</translation>
 <translation id="8379878387931047019">Þetta tæki styður ekki þá gerð öryggislykils sem vefsíðan óskar eftir</translation>
 <translation id="8379991678458444070">Finndu þennan flipa aftur með því að bókamerkja hann</translation>
@@ -6012,6 +6023,7 @@
 <translation id="8481187309597259238">Staðfesta USB-heimild</translation>
 <translation id="8483248364096924578">IP-tala</translation>
 <translation id="8487678622945914333">Auka aðdrátt</translation>
+<translation id="8489156414266187072">Persónulegar tillögur eru eingöngu birtar á reikningnum þínum</translation>
 <translation id="8490896350101740396">Eftirfarandi sjálfsalaforrit, „<ph name="UPDATED_APPS" />,“ voru uppfærð. Endurræstu tækið til að ljúka uppfærslunni.</translation>
 <translation id="8493236660459102203">Hljóðnemi:</translation>
 <translation id="8496717697661868878">Keyra þessa viðbót</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index d75573f..595a1bbe 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Impossibile scaricare <ph name="FILE_NAME" /> in modo sicuro</translation>
 <translation id="2340263603246777781">Il sito <ph name="ORIGIN" /> desidera accoppiarsi</translation>
-<translation id="2341476639346994688">La stampante si è interrotta</translation>
 <translation id="2342740338116612727">Preferiti aggiunti</translation>
 <translation id="2343747224442182863">Imposta stato attivo su questa scheda</translation>
 <translation id="2344686470986284227">Avvio del controller della macchina virtuale</translation>
@@ -2030,7 +2029,7 @@
 <translation id="3487007233252413104">funzione anonima</translation>
 <translation id="348780365869651045">In attesa di AppCache...</translation>
 <translation id="3488065109653206955">Attivato parzialmente</translation>
-<translation id="3491669675709357988">L'account di tuo figlio non è configurato per la funzionalità Controllo genitori di Family Link. Puoi aggiungere la funzionalità Controllo genitori dopo aver completato la configurazione. Leggi informazioni su questa funzionalità nell'app Esplora.</translation>
+<translation id="3491669675709357988">L'account di tuo figlio non è configurato per la funzionalità Controllo genitori di Family Link. Per aggiungere questa funzionalità, devi completare la configurazione. Leggi informazioni su Controllo genitori nell'app Esplora.</translation>
 <translation id="3492788708641132712">La sincronizzazione non funziona. Riprova ad accedere.</translation>
 <translation id="3493486281776271508">È necessaria una connessione a Internet</translation>
 <translation id="3493881266323043047">Validità</translation>
@@ -3447,7 +3446,6 @@
 <translation id="5283677936944177147">Spiacenti, il sistema non è riuscito a stabilire il modello o il numero di serie del dispositivo.</translation>
 <translation id="5284445933715251131">Continua il download</translation>
 <translation id="5285635972691565180">Schermo <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Lo scomparto di uscita è pieno</translation>
 <translation id="5286194356314741248">Ricerca</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">I tuoi account</translation>
@@ -3668,7 +3666,6 @@
 <translation id="5553089923092577885">Mapping dei criteri dei certificati</translation>
 <translation id="5554489410841842733">Questa icona sarà visibile quando l'estensione potrà interagire nella pagina corrente.</translation>
 <translation id="5554720593229208774">Autorità di certificazione email</translation>
-<translation id="5554931805291741487">Lo scomparto di uscita è quasi pieno</translation>
 <translation id="5556459405103347317">Ricarica</translation>
 <translation id="5558125320634132440">Questo sito è bloccato perché potrebbe mostrare contenuti inappropriati per i minori</translation>
 <translation id="5558129378926964177">&amp;Ingrandisci</translation>
@@ -4499,7 +4496,7 @@
 <translation id="6602956230557165253">Utilizza i tasti freccia sinistra e destra per spostarti.</translation>
 <translation id="6605847144724004692">Nessuna valutazione disponibile.</translation>
 <translation id="6607831829715835317">A&amp;ltri strumenti</translation>
-<translation id="6607890859198268021">L'indirizzo <ph name="USER_EMAIL" /> è gestito da <ph name="DOMAIN" />. Per utilizzare la funzionalità Controllo genitori con un altro Account Google, esci dopo la configurazione, quindi seleziona "Aggiungi persona" nella schermata di accesso.</translation>
+<translation id="6607890859198268021">L'indirizzo <ph name="USER_EMAIL" /> è già gestito da <ph name="DOMAIN" />. Per utilizzare la funzionalità Controllo genitori con un altro Account Google, esci dopo la configurazione, quindi seleziona "Aggiungi persona" nella schermata di accesso.</translation>
 <translation id="6611972847767394631">Trova le tue schede qui</translation>
 <translation id="6612358246767739896">Contenuti protetti</translation>
 <translation id="6615455863669487791">Mostrami</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">Questa estensione non richiede autorizzazioni speciali</translation>
 <translation id="7154130902455071009">Cambio della pagina iniziale con: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto esistente da fotocamera o file</translation>
-<translation id="7163766494674803047">Errore dispositivo stampante</translation>
 <translation id="7165320105431587207">Impossibile configurare la rete</translation>
 <translation id="716640248772308851">L'estensione "<ph name="EXTENSION" />" può leggere file di immagini, video e audio nelle posizioni selezionate.</translation>
 <translation id="7167486101654761064">&amp;Apri sempre file di questo tipo</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index a0b43c3..eedc0af 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">שחזור הגדרות יצרן</translation>
 <translation id="2340239562261172947">לא ניתן להוריד את <ph name="FILE_NAME" /> בצורה מאובטחת</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> רוצה לבצע התאמה עם</translation>
-<translation id="2341476639346994688">המדפסת הפסיקה לפעול</translation>
 <translation id="2342740338116612727">סימניות נוספו</translation>
 <translation id="2343747224442182863">הדגשת הכרטיסייה הזו</translation>
 <translation id="2344686470986284227">המערכת מפעילה את בקר המכונה הווירטואלית</translation>
@@ -3446,7 +3445,6 @@
 <translation id="5283677936944177147">אופס! המערכת לא הצליחה לזהות את דגם המכשיר או את המספר הסידורי.</translation>
 <translation id="5284445933715251131">המשך הורדה</translation>
 <translation id="5285635972691565180">הצגת <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">אזור הפלט מלא</translation>
 <translation id="5286194356314741248">סורק</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">החשבונות שלך</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">מיפויי מדיניות אישור </translation>
 <translation id="5554489410841842733">סמל זה יוצג כאשר ההרחבה תוכל לפעול בדף הנוכחי.</translation>
 <translation id="5554720593229208774">רשות אישורי אימייל</translation>
-<translation id="5554931805291741487">אזור הפלט כמעט מלא</translation>
 <translation id="5556459405103347317">ניסיון טעינה נוסף</translation>
 <translation id="5558125320634132440">האתר נחסם מאחר שהוא עשוי להכיל תוכן למבוגרים בלבד</translation>
 <translation id="5558129378926964177">הת&amp;קרב</translation>
@@ -4938,7 +4935,6 @@
 <translation id="7152478047064750137">אין צורך בהרשאות מיוחדות כדי להשתמש בתוסף זה</translation>
 <translation id="7154130902455071009">שנה את דף הפתיחה ל: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">תמונה קיימת ממצלמה או מקובץ</translation>
-<translation id="7163766494674803047">שגיאה במדפסת</translation>
 <translation id="7165320105431587207">כשל בהגדרת התצורה של הרשת</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" יכול לקרוא קובצי תמונות, וידאו ואודיו במיקומים המסומנים.</translation>
 <translation id="7167486101654761064">&amp;פתח תמיד קבצים מסוג זה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 29333bd..9bfebfe 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> は安全にダウンロードできません</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> がペア設定を要求しています</translation>
-<translation id="2341476639346994688">プリンタは停止中です</translation>
 <translation id="2342740338116612727">ブックマークを追加しました</translation>
 <translation id="2343747224442182863">このタブをフォーカス</translation>
 <translation id="2344686470986284227">仮想マシンのコントローラを起動しています</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">デバイスの機種またはシリアル番号を特定できませんでした。</translation>
 <translation id="5284445933715251131">ダウンロードを続行</translation>
 <translation id="5285635972691565180">ディスプレイ <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">出力エリアに空きがありません</translation>
 <translation id="5286194356314741248">スキャン中</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">お使いのアカウント</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">証明書ポリシーのマッピング</translation>
 <translation id="5554489410841842733">このアイコンは、ページで拡張機能が使用できる場合に表示されます。</translation>
 <translation id="5554720593229208774">メール認証局</translation>
-<translation id="5554931805291741487">出力エリアにほとんど空きがありません</translation>
 <translation id="5556459405103347317">再読み込み</translation>
 <translation id="5558125320634132440">このサイトは成人向けコンテンツを含んでいる可能性があるためブロックされました</translation>
 <translation id="5558129378926964177">拡大(&amp;I)</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">この拡張機能に特別な権限は必要ありません</translation>
 <translation id="7154130902455071009">スタート ページを次に変更します: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">カメラやファイルに保存されている写真</translation>
-<translation id="7163766494674803047">プリンタ デバイスのエラー</translation>
 <translation id="7165320105431587207">ネットワークを設定できませんでした</translation>
 <translation id="716640248772308851">「<ph name="EXTENSION" />」はチェックした場所にある画像、動画、音声の各ファイルを読み取ることができます。</translation>
 <translation id="7167486101654761064">この種類のファイルは常に開く(&amp;A)</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 6f1e31f..ed307a2 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" />-ის უსაფრთხოდ ჩამოტვირთვა ვერ მოხერხდება</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> დაწყვილებას ითხოვს</translation>
-<translation id="2341476639346994688">პრინტერმა შეწყვიტა მუშაობა</translation>
 <translation id="2342740338116612727">სანიშნეები დამატებულია</translation>
 <translation id="2343747224442182863">ამ ჩანართის ფოკუსში მოქცევა</translation>
 <translation id="2344686470986284227">მიმდინარეობს ვირტუალური მოწყობილობის კონტროლერის გაშვება</translation>
@@ -3447,7 +3446,6 @@
 <translation id="5283677936944177147">უი!  სისტემამ ვერ დაადგინა მოწყობილობის მოდელი ან სერიული ნომერი.</translation>
 <translation id="5284445933715251131">ჩამოტვირთვის გაგრძელება</translation>
 <translation id="5285635972691565180">ეკრანი <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">გამომავალი არე სავსეა</translation>
 <translation id="5286194356314741248">მიმდინარეობს სკანირება</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">თქვენი ანგარიშები</translation>
@@ -3668,7 +3666,6 @@
 <translation id="5553089923092577885">სერტიფიკატის წესის შედარება</translation>
 <translation id="5554489410841842733">ეს ხატულა ხილვადი გახდება, როდესაც გაფართოება შეძლებს მოქმედებას მიმდინარე გვერდზე.</translation>
 <translation id="5554720593229208774">ელფოსტის სერთიფიცირების ცენტრი</translation>
-<translation id="5554931805291741487">გამომავალი არე თითქმის სავსეა</translation>
 <translation id="5556459405103347317">ხელახლა ჩატვირთვა</translation>
 <translation id="5558125320634132440">ეს საიტი დაბლოკილია, ვინაიდან ის შეიძლება შეიცავდეს ზრდასრულებისთვის განკუთვნილ კონტენტს</translation>
 <translation id="5558129378926964177">მასშტაბის &amp;გადიდება</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">ეს გაფართოება არ საჭიროებს სპეციალურ ნებართვებს</translation>
 <translation id="7154130902455071009">საწყისი გვერდის შეცვლა ამით: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">არსებული ფოტო კამერიდან ან ფაილიდან</translation>
-<translation id="7163766494674803047">პრინტერის მოწყობილობის შეცდომა</translation>
 <translation id="7165320105431587207">ქსელის კონფიგურაცია ვერ მოხერხდა</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />“-ს შეუძლია გამოსახულებების, ვიდეოს და ხმოვანი ფაილების წაკითხვა დაფიქსირებულ ადგილებში.</translation>
 <translation id="7167486101654761064">&amp;ყოველთვის გაიხსნას ამ ტიპის ფაილები</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 864f947d..d57ea1d 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> файлын қауіпсіз күйде жүктеп алу мүмкін емес.</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> сайты жұптасқысы келеді</translation>
-<translation id="2341476639346994688">Принтердің жұмысы тоқтатылды.</translation>
 <translation id="2342740338116612727">Бетбелгілер енгізілді</translation>
 <translation id="2343747224442182863">Осы қойындыны ерекшелеу</translation>
 <translation id="2344686470986284227">Виртуалды құрылғы контроллері іске қосылуда</translation>
@@ -3445,7 +3444,6 @@
 <translation id="5283677936944177147">Жүйе құрылғының үлгісін не сериялық нөмірін анықтай алмады.</translation>
 <translation id="5284445933715251131">Жүктеп алуды жалғастыру</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> көрсету</translation>
-<translation id="5286094561505658635">Шығыс науасы толы.</translation>
 <translation id="5286194356314741248">Ізделуде</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Есептік жазбаларыңыз</translation>
@@ -3666,7 +3664,6 @@
 <translation id="5553089923092577885">Сертификат саясатының салыстырулары</translation>
 <translation id="5554489410841842733">Бұл белгіше кеңейтім ағымдағы бетте әрекет ететін кезде көрінеді.</translation>
 <translation id="5554720593229208774">Электрондық пошта сертификаттау орталығы</translation>
-<translation id="5554931805291741487">Шығыс науасы толайын деп қалды.</translation>
 <translation id="5556459405103347317">Қайта жүктеу</translation>
 <translation id="5558125320634132440">Бұл сайт бөгелді, себебі құрамында ересектерге арналған мазмұн болуы мүмкін.</translation>
 <translation id="5558129378926964177">Үлкей&amp;ту</translation>
@@ -4937,7 +4934,6 @@
 <translation id="7152478047064750137">Бұл кеңейтім үшін арнайы рұқсаттар қажет емес</translation>
 <translation id="7154130902455071009">Бастапқы бетті келесіге өзгерту: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Камерадан немесе файлдан алынған бар суреттер</translation>
-<translation id="7163766494674803047">Принтерде қате пайда болды.</translation>
 <translation id="7165320105431587207">Желіні реттеу мүмкін емес</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" кеңейтімі таңдалған орындардағы кескіндерді, бейнені және дыбыстық файлдарды оқи алады.</translation>
 <translation id="7167486101654761064">&amp;Түрі осындай файлдарды әрқашан ашу</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 1949a2ad9..03c80d5 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">មិនអាច​ទាញយក <ph name="FILE_NAME" /> ដោយសុវត្ថិភាពបានទេ</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ចង់ផ្គូផ្គង</translation>
-<translation id="2341476639346994688">ម៉ាស៊ីនបោះពុម្ព​ត្រូវបានបញ្ឈប់</translation>
 <translation id="2342740338116612727">បានបញ្ចូល​ចំណាំ</translation>
 <translation id="2343747224442182863">ផ្ដោត​ផ្ទាំងនេះ</translation>
 <translation id="2344686470986284227">កំពុងចាប់ផ្ដើម​ឧបករណ៍បញ្ជា​ម៉ាស៊ីននិម្មិត</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">អូ!  ប្រព័ន្ធបានបរាជ័យក្នុងការកំណត់ម៉ូដែលឧបករណ៍ ឬលេខស៊េរី។</translation>
 <translation id="5284445933715251131">បន្តការទាញយក</translation>
 <translation id="5285635972691565180">បង្ហាញ <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">កន្លែងបញ្ចេញក្រដាស​ពេញហើយ</translation>
 <translation id="5286194356314741248">កំពុង​ស្កេន</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">គណនីរបស់អ្នក</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">ការកំណត់ទីតាំងគោលការណ៍វិញ្ញាបនប័ត្រ</translation>
 <translation id="5554489410841842733">រូបតំណាងនេះអាចមើលឃើញ នៅពេលកម្មវិធីបន្ថែមអាចដំណើរនៅលើទំព័របច្ចុប្បន្ន។</translation>
 <translation id="5554720593229208774">អាជ្ញាធរវិញ្ញាបនប័ត្រអ៊ីម៉ែល</translation>
-<translation id="5554931805291741487">កន្លែងបញ្ចេញក្រដាស​ជិតពេញហើយ</translation>
 <translation id="5556459405103347317">ដំណើរការឡើងវិញ</translation>
 <translation id="5558125320634132440">គេហទំព័រនេះ​ត្រូវបាន​ទប់ស្កាត់ ដោយសារ​វាអាចមាន​ខ្លឹមសារ​សម្រាប់​មនុស្សពេញវ័យ</translation>
 <translation id="5558129378926964177">ពង្រីក</translation>
@@ -4941,7 +4938,6 @@
 <translation id="7152478047064750137">កម្មវិធី​បន្ថែម​នេះ​មិន​តម្រូវ​ឱ្យ​មាន​ការអនុញ្ញាត​ពិសេសទេ</translation>
 <translation id="7154130902455071009">ប្តូរទំព័រចាប់ផ្តើមរបស់អ្នកទៅ៖ <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">រូបភាពពីកាមេរ៉ា និងឯកសារដែលមានស្រាប់</translation>
-<translation id="7163766494674803047">ឧបករណ៍របស់​ម៉ាស៊ីនបោះពុម្ព​មានបញ្ហា</translation>
 <translation id="7165320105431587207">បានបរាជ័យក្នុងការកំណត់បណ្តាាញ</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" មិនអាចអានឯកសាររូបភាព វីដេអូ និងសម្លេងនៅក្នុងទីតាំងដែលបានពិនិត្យទេ។</translation>
 <translation id="7167486101654761064">បើកឯកសារប្រភេទនេះជានិច្ច</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index d96db96..9354094 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">ರಚಿಸಲಾಗಿದೆ</translation>
 <translation id="1067291318998134776">Linux (ಬೀಟಾ)</translation>
 <translation id="1067922213147265141">ಇತರ Google ಸೇವೆಗಳು</translation>
+<translation id="1068961867683064946">ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ Google ಖಾತೆಯನ್ನು ರಚಿಸಿ</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂ, Chrome ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಿಸಬಹುದಾದಂತಹ ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸಿದೆ.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> ಉಪಪುಟದ ಹಿಂದೆ ಬಟನ್</translation>
 <translation id="1322046419516468189">ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು <ph name="SAVED_PASSWORDS_STORE" /> ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="1324106254079708331">ಉದ್ದೇಶಿತ ದಾಳಿಯ ಅಪಾಯದಲ್ಲಿರುವ ಯಾವುದೇ ವೈಯಕ್ತಿಕ Google ಖಾತೆಗಳನ್ನು ರಕ್ಷಿಸುತ್ತದೆ</translation>
+<translation id="1325985428688410772">ಸ್ಥಳವನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="1326317727527857210">ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಿಂದ ನಿಮ್ಮ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation>
 <translation id="1327074568633507428">Google ಕ್ಲೌಡ್ ಮುದ್ರಣದಲ್ಲಿ ಪ್ರಿಂಟರ್</translation>
 <translation id="1327272175893960498">Kerberos ಟಿಕೆಟ್‌ಗಳು</translation>
@@ -1083,6 +1085,7 @@
 <translation id="2307462900900812319">ನೆಟ್‌ವರ್ಕ್ ಕಾನ್ಫಿಗರ್ ಮಾಡು</translation>
 <translation id="230927227160767054">ಸೇವೆ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಈ ಪುಟವು ಬಯಸುತ್ತದೆ.</translation>
 <translation id="2309620859903500144">ನಿಮ್ಮ ಚಲನೆಯ ಅಥವಾ ಲೈಟ್‌ ಸೆನ್ಸರ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸದಂತೆ ಈ ಸೈಟ್‌ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
+<translation id="2314873619957287124">ನಿಮ್ಮ ಮಕ್ಕಳು ಕಲಿಯಲು, ಆಟವಾಡಲು ಮತ್ತು ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಮಾಡಲು ಸಹಾಯ ಮಾಡುವುದಕ್ಕಾಗಿ ತಳಮಟ್ಟದ ಡಿಜಿಟಲ್ ನಿಯಮಗಳನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="2315414688463285945">Linux ಫೈಲ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ. ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2315587498123194634"><ph name="DEVICE_NAME" /> ಗೆ ಲಿಂಕ್ ಕಳುಹಿಸಿ</translation>
 <translation id="2316129865977710310">ಬೇಡ, ಧನ್ಯವಾದಗಳು</translation>
@@ -1094,6 +1097,7 @@
 <translation id="2322318151094136999">ಯಾವುದೇ ಸೈಟ್, ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ಗಳಿಗೆ ಪ್ರವೇಶ ಪಡೆಯಲು ವಿನಂತಿಸಿದಾಗ, ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="2323018538045954000">ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಉಳಿಸಲಾಗಿದೆ</translation>
 <translation id="2325444234681128157">ಪಾಸ್‌ವರ್ಡ್‌ ನೆನಪಿಟ್ಟುಕೊಳ್ಳಿ</translation>
+<translation id="2326160999284776503">ನಿಮ್ಮ ಮಗುವಿನ Google ಖಾತೆಯ ಮೂಲಕ ಸೈನ್-ಇನ್ ಮಾಡಿ</translation>
 <translation id="2326188115274135041">ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನ್‌ಲಾಕ್ ಆನ್ ಮಾಡಲು, ಪಿನ್ ಅನ್ನು ದೃಢೀಕರಿಸಿ</translation>
 <translation id="2326931316514688470">ಅಪ್ಲಿಕೇಶನ್ &amp;ಮರುಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="2327492829706409234">ಅಪ್ಲಿಕೇಶನ್ ಸಕ್ರಿಯಗೊಳಿಸು</translation>
@@ -1109,7 +1113,6 @@
 <translation id="2336381494582898602">ಪವರ್‌ವಾಶ್</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ಜೋಡಿಸಲು ಬಯಸುತ್ತದೆ</translation>
-<translation id="2341476639346994688">ಪ್ರಿಂಟರ್ ನಿಂತುಹೋಗಿದೆ</translation>
 <translation id="2342740338116612727">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ</translation>
 <translation id="2343747224442182863">ಈ ಟ್ಯಾಬ್ ಮೇಲೆ ಗಮನಹರಿಸಿ</translation>
 <translation id="2344686470986284227">ವರ್ಚುವಲ್ ಯಂತ್ರದ ಕಂಟ್ರೋಲರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ</translation>
@@ -1153,6 +1156,7 @@
 <translation id="2384436799579181135">ದೋಷ ಸಂಭವಿಸಿದೆ. ನಿಮ್ಮ ಪ್ರಿಂಟರ್ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2387052489799050037">ಹೋಮ್‌ಗೆ ಹೋಗಿ</translation>
 <translation id="2387458720915042159">ಪ್ರಾಕ್ಸಿ ಪ್ರಕಾರ ಸಂಪರ್ಕ</translation>
+<translation id="2391082728065870591">ಪ್ರತಿಕ್ರಿಯೆ ವರದಿ ಕಳುಹಿಸಿ</translation>
 <translation id="2391419135980381625">ರೂಢಿಯಲ್ಲಿರುವ ಫಾಂಟ್</translation>
 <translation id="2392163307141705938"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಗಾಗಿ ನಿಮ್ಮ ಪೋಷಕರು ಹೊಂದಿಸಿದ ಸಮಯ-ಮಿತಿಯನ್ನು ತಲುಪಿದ್ದೀರಿ.</translation>
 <translation id="2392369802118427583">ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡುವಾಗ ದೋಷ ಉಂಟಾಗಿದೆ</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> ಕೆಳಗಿನ ಫೈಲ್‌ಗಳು ಮತ್ತು ಫೋಲ್ಡರ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ಎಡಿಟ್ ಮಾಡಬಹುದು</translation>
 <translation id="2537927931785713436">ವರ್ಚುವಲ್ ಯಂತ್ರದ ಚಿತ್ರವನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ</translation>
+<translation id="2538084450874617176">ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಯಾರು ಬಳಸುತ್ತಿದ್ದಾರೆ?</translation>
 <translation id="2538361623464451692">ಸಿಂಕ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="2540449034743108469">ವಿಸ್ತರಣೆ ಚಟುವಟಿಕೆಗಳನ್ನು ಆಲಿಸಲು "ಪ್ರಾರಂಭಿಸಿ" ಒತ್ತಿರಿ</translation>
 <translation id="2541002089857695151">ಫುಲ್‌ಸ್ಕ್ರೀನ್ ಬಿತ್ತರಿಸುವಿಕೆಯನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡುವುದೇ?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">ಕರಬೂಜ ಹಣ್ಣು</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> ವಿಂಡೋವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.</translation>
 <translation id="4364830672918311045">ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿ</translation>
+<translation id="4368115171699243057">ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ</translation>
 <translation id="437004882363131692"><ph name="DEVICE_TYPE" /> ಕುರಿತು ಸಲಹೆಗಳು, ಆಫರ್‌ಗಳು ಹಾಗೂ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆಯಿರಿ ಮತ್ತು ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ ಯಾವಾಗ ಬೇಕಾದರೂ ಅನ್‌ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಮಾಡಿ.</translation>
 <translation id="4370975561335139969">ನೀವು ನಮೂದಿಸಿದ ಇಮೇಲ್ ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="4374831787438678295">Linux ಇನ್‌ಸ್ಟಾಲರ್‌‌</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">ಪಾಸ್‌ವರ್ಡ್ ಮರೆಮಾಡಿ</translation>
 <translation id="4565917129334815774">ಸಿಸ್ಟಂ ಲಾಗ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ</translation>
 <translation id="456717285308019641">ಅನುವಾದಿಸಬೇಕಾದ ಪುಟದ ಭಾಷೆ</translation>
+<translation id="4567533462991917415">ಸೆಟಪ್‌ನ ನಂತರ ನೀವು ಯಾವಾಗಲೂ ಹೆಚ್ಚಿನ ಜನರನ್ನು ಸೇರಿಸಬಹುದು. ಪ್ರತಿಯೊಬ್ಬ ವ್ಯಕ್ತಿಯು ತಮ್ಮ ಖಾತೆಯನ್ನು ವೈಯಕ್ತೀಕರಿಸಬಹುದು ಮತ್ತು ಡೇಟಾವನ್ನು ಖಾಸಗಿಯಾಗಿರಿಸಿಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="4567772783389002344">ಪದ ಸೇರಿಸು</translation>
 <translation id="4568025708905928793">ಭದ್ರತೆ ಕೀ ಅನ್ನು ವಿನಂತಿಸಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ</translation>
 <translation id="4568213207643490790">ಕ್ಷಮಿಸಿ, ಈ ಸಾಧನದಲ್ಲಿ Google ಖಾತೆಗಳಿಗೆ ಅನುಮತಿ ಇಲ್ಲ.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Linux ಕಂಟೇನರ್ ಸೆಟಪ್ ಪೂರ್ಣವಾಗಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4633003931260532286">ವಿಸ್ತರಣೆಗೆ "<ph name="IMPORT_NAME" />" ನ ಕನಿಷ್ಠ "<ph name="IMPORT_VERSION" />" ಆವೃತ್ತಿಯ ಅಗತ್ಯವಿದೆ, ಆದರೆ "<ph name="INSTALLED_VERSION" />" ಆವೃತ್ತಿಯನ್ನು ಮಾತ್ರ ಇನ್‍ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="4633757335284074492">Google ಡ್ರೈವ್‌ನಲ್ಲಿ ಬ್ಯಾಕಪ್‌ ಮಾಡಿ. ಡೇಟಾವನ್ನು ಸುಲಭವಾಗಿ ಮರುಸ್ಥಾಪಿಸಿ ಅಥವಾ ಯಾವಾಗ ಬೇಕಾದರೂ ಸಾಧನವನ್ನು ಬದಲಾಯಿಸಿ. ಈ ಬ್ಯಾಕಪ್‌ನಲ್ಲಿ ಆ್ಯಪ್ ಡೇಟಾ ಒಳಗೊಂಡಿರುತ್ತದೆ. ಬ್ಯಾಕಪ್‌ಗಳನ್ನು Google ಗೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಮಗುವಿನ Google ಖಾತೆಯ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಳಸಿ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
+<translation id="4634575639321169635">ಕೆಲಸ ಅಥವಾ ವೈಯಕ್ತಿಕ ಬಳಕೆಗಾಗಿ ಈ ಸಾಧನವನ್ನು ಸೆಟಪ್ ಮಾಡಿ</translation>
 <translation id="4634771451598206121">ಪುನಃ ಸೈನ್ ಇನ್  ಮಾಡಿ...</translation>
 <translation id="4635072447747973225">Crostini ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ಅತಿಥಿ ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿಲ್ಲ.</translation>
@@ -3373,6 +3381,7 @@
 <translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />" ನ ಹೊಸ ಆವೃತ್ತಿಗೆ ಹೆಚ್ಚಿನ ಅನುಮತಿಗಳ ಅಗತ್ಯವಿರುವ ಕಾರಣ ಅದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="5185500136143151980">ಇಂಟರ್ನೆಟ್ ಇಲ್ಲ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" /> ಗಾಗಿ ಆಯ್ಕೆಗಳ ಮೆನು</translation>
 <translation id="5190926251776387065">ಪೋರ್ಟ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> ಬಹು ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಬಯಸುತ್ತದೆ</translation>
 <translation id="5192062846343383368">ನಿಮ್ಮ ಮೇಲ್ವಿಚಾರಣೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನೋಡಲು Family Link ಆ್ಯಪ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation>
@@ -3449,7 +3458,6 @@
 <translation id="5283677936944177147">ಓಹ್‌‌! ಸಿಸ್ಟಂ ಸಾಧನದ ಮಾದರಿ ಅಥವಾ ಕ್ರಮಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಧರಿಸಲು ವಿಫಲಗೊಂಡಿದೆ.</translation>
 <translation id="5284445933715251131">ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation>
 <translation id="5285635972691565180">ಡಿಸ್‌ಪ್ಲೇ <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">ಔಟ್‌ಪುಟ್ ಜಾಗವು ತುಂಬಿದೆ</translation>
 <translation id="5286194356314741248">ಸ್ಕ್ಯಾನಿಂಗ್</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">ನಿಮ್ಮ ಖಾತೆಗಳು</translation>
@@ -3620,6 +3628,7 @@
 <translation id="5495597166260341369">ಡಿಸ್‌ಪ್ಲೇ ಅನ್ನು ಆನ್‌ನಲ್ಲೇ ಇರಿಸಿ</translation>
 <translation id="5496587651328244253">ವ್ಯವಸ್ಥಿತಗೊಳಿಸಿ</translation>
 <translation id="5497251278400702716">ಈ ಫೈಲ್</translation>
+<translation id="5498967291577176373">ನಿಮ್ಮ ಹೆಸರು, ವಿಳಾಸ ಅಥವಾ ಫೋನ್ ಸಂಖ್ಯೆಯಂತಹ ಇನ್‌ಲೈನ್‌ ಸಲಹೆಗಳ ಮೂಲಕ ವೇಗವಾಗಿ ಬರೆಯಿರಿ</translation>
 <translation id="5499313591153584299">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ಗೆ ಈ ಫೈಲ್ ಅಪಾಯಕಾರಿ ಆಗಿರಬಹುದು.</translation>
 <translation id="5499453227627332024">ನಿಮ್ಮ Linux ಕಂಟೇನರ್‌ಗೆ ಅಪ್‌ಗ್ರೇಡ್ ಲಭ್ಯವಿದೆ. ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಆ್ಯಪ್ ಸಹಾಯದಿಂದಲೂ ನೀವು ನಂತರದಲ್ಲಿ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಬಹುದು.</translation>
 <translation id="5500709606820808700">ಸುರಕ್ಷತಾ ಪರಿಶೀಲನೆಯನ್ನು ಈ ದಿನ ನಡೆಸಲಾಗಿದೆ</translation>
@@ -3670,7 +3679,6 @@
 <translation id="5553089923092577885">ಪ್ರಮಾಣಪತ್ರ ನೀತಿ ಮ್ಯಾಪಿಂಗ್‌ಗಳು</translation>
 <translation id="5554489410841842733">ಈ ವಿಸ್ತರಣೆಯು ಪ್ರಸ್ತುತ ಪುಟದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದಾದಾಗ ಈ ಐಕಾನ್ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ.</translation>
 <translation id="5554720593229208774">ಇಮೇಲ್ ಪ್ರಮಾಣಪತ್ರದ ಪ್ರಾಧಿಕಾರ</translation>
-<translation id="5554931805291741487">ಔಟ್‌ಪುಟ್ ಜಾಗವು ಬಹುತೇಕ ತುಂಬಿದೆ</translation>
 <translation id="5556459405103347317">ಮರುಲೋಡ್‌</translation>
 <translation id="5558125320634132440">ಈ ಸೈಟ್ ವಯಸ್ಕರ ವಿಷಯವನ್ನು ಒಳಗೊಂಡಿರಬಹುದಾದ ಕಾರಣ, ಇದನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="5558129378926964177">ಝೂಮ್ &amp;ಇನ್</translation>
@@ -3778,6 +3786,7 @@
 <translation id="5689516760719285838">ಸ್ಥಳ</translation>
 <translation id="56907980372820799">ಲಿಂಕ್ ಡೇಟಾ</translation>
 <translation id="5691511426247308406">ಕುಟುಂಬ</translation>
+<translation id="5691581861107245578">ನೀವು ಏನನ್ನು ಟೈಪ್‌ ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ಎಮೋಜಿಯ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಿರಿ</translation>
 <translation id="5691772641933328258">ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="5692183275898619210">ಪ್ರಿಂಟ್ ಮಾಡುವುದು ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
 <translation id="569425414730375234">ಪ್ರಸ್ತುತ ಅದೃಶ್ಯ ಸೆಶನ್: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4137,6 +4146,7 @@
 <translation id="6124698108608891449">ಈ ಸೈಟ್‌ಗೆ ಇನ್ನಷ್ಟು ಅನುಮತಿಗಳ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="6125479973208104919">ದುರದೃಷ್ಟವಶಾತ್, ನಿಮ್ಮ ಖಾತೆಯನ್ನು ನೀವು ಮತ್ತೆ ಈ <ph name="DEVICE_TYPE" /> ಗೆ ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="6129691635767514872">ಆಯ್ಕೆಮಾಡಲಾದ ಡೇಟಾವನ್ನು Chrome ಮತ್ತು ಸಿಂಕ್ ಮಾಡಲ್ಪಟ್ಟ ಸಾಧನಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ. ನಿಮ್ಮ Google ಖಾತೆಯು <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" />ನಲ್ಲಿನ ಇತರ Google ಸೇವೆಗಳಲ್ಲಿ ಹುಡುಕಾಟಗಳು ಮತ್ತು ಚಟುವಟಿಕೆಯಂತಹ ಬ್ರೌಸಿಂಗ್ ಹುಡುಕಾಟಗಳ ಇತರ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿರಬಹುದು.</translation>
+<translation id="6129839611163153407">ನಿಮ್ಮ ಮಗು</translation>
 <translation id="6129938384427316298">Netscape ಪ್ರಮಾಣಪತ್ರ ಕಾಮೆಂಟ್</translation>
 <translation id="6129953537138746214">ಸ್ಪೇಸ್</translation>
 <translation id="6130692320435119637">ವೈ-ಫೈ ಸೇರಿಸಿ</translation>
@@ -4177,6 +4187,7 @@
 <translation id="6178664161104547336">ಒಂದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="6181431612547969857">ಡೌನ್‌ಲೋಡ್‌ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="6185132558746749656">ಸಾಧನದ ಸ್ಥಳ</translation>
+<translation id="6195446518998936840">ಪೋಷಕ ನಿಯಂತ್ರಣಗಳನ್ನು ಸೆಟಪ್ ಮಾಡಲು, ನಿಮಗೆ ನಿರ್ವಹಿಸಲು ಸಹಾಯ ಮಾಡುವ Google ಖಾತೆಯನ್ನು ನಿಮ್ಮ ಮಗು ಹೊಂದಿರಬೇಕು. Family Link ಆ್ಯಪ್ ಮೂಲಕ ನೀವು ವೀಕ್ಷಣಾ ಅವಧಿ ಮಿತಿಗಳನ್ನು ಹೊಂದಿಸಬಹುದು, ಅನುಮೋದಿಸಬಹುದು ಅಥವಾ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಬಹುದು ಮತ್ತು ಇನ್ನಷ್ಟವುಗಳನ್ನು ಮಾಡಬಹುದು.</translation>
 <translation id="6195693561221576702">ಈ ಸಾಧನವನ್ನು ಆಫ್‌ಲೈನ್ ಡೆಮೊ ಮೋಡ್‌ನಲ್ಲಿ ಸೆಟಪ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="6196640612572343990">ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="6196854373336333322">ನಿಮ್ಮ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ನಿಯಂತ್ರಣಕ್ಕೆ ತೆಗೆದುಕೊಂಡಿದೆ. ಅಂದರೆ, ನೀವು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಮಾಡುವ ಯಾವುದೇ ಕಾರ್ಯವನ್ನು ಇದು ಬದಲಾಯಿಸಬಹುದು, ಒಳನುಸುಳಬಹುದು ಅಥವಾ ಕದ್ದಾಲಿಸಬಹುದು ಎಂದರ್ಥ. ಇದು ಹೇಗೆ ಸಂಭವಿಸಿದೆ ಎಂಬುದೇ ನಿಮಗೆ ಖಚಿತವಿಲ್ಲದಿದ್ದರೆ, ನಿಮಗೆ ಬಹುಶಃ ಇದು ಬೇಕಾಗಿಲ್ಲ.</translation>
@@ -4943,7 +4954,6 @@
 <translation id="7152478047064750137">ಈ ವಿಸ್ತರಣೆಗೆ ಯಾವುದೇ ವಿಶೇಷ ಅನುಮತಿಗಳ ಅಗತ್ಯವಿಲ್ಲ</translation>
 <translation id="7154130902455071009">ನಿಮ್ಮ ಪ್ರಾರಂಭ ಪುಟವನ್ನು ಇದಕ್ಕೆ ಬದಲಾಯಿಸಿ: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">ಕ್ಯಾಮರಾ ಅಥವಾ ಫೈಲ್‌ನಿಂದ ಪ್ರಸ್ತುತ ಫೋಟೋ</translation>
-<translation id="7163766494674803047">ಪ್ರಿಂಟರ್ ಸಾಧನದಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ</translation>
 <translation id="7165320105431587207">ನೆಟ್‌ವರ್ಕ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="716640248772308851">ಗುರುತಿಸಿದ ಸ್ಥಳಗಳಲ್ಲಿ "<ph name="EXTENSION" />"  ಚಿತ್ರಗಳು, ವಿಡಿಯೋ, ಮತ್ತು ಧ್ವನಿ ಫೈಲ್‌ಗಳನ್ನು ಓದಬಹುದು.</translation>
 <translation id="7167486101654761064">&amp;ಯಾವಾಗಲೂ ಈ ಪ್ರಕಾರದ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation>
@@ -5929,6 +5939,7 @@
 <translation id="8372369524088641025">ಕೆಟ್ಟ WEP ಕೀ</translation>
 <translation id="8372477600026034341">ಹೆಚ್ಚುವರಿ ಹೋಸ್ಟ್‌ಗಳು</translation>
 <translation id="8373652277231415614">Crostini ಹಂಚಿಕೊಂಡ ಡೈರೆಕ್ಟರಿಗಳು</translation>
+<translation id="8376384591331888629">ಈ ಸೈಟ್‌ನಲ್ಲಿನ ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ಒಳಗೊಂಡಿದೆ</translation>
 <translation id="8378714024927312812">ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation>
 <translation id="8379878387931047019">ಈ ವೆಬ್‌ಸೈಟ್ ವಿನಂತಿಸಿದ ಸುರಕ್ಷತಾ ಕೀಯ ಪ್ರಕಾರವನ್ನು ಈ ಸಾಧನ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ</translation>
 <translation id="8379991678458444070">ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡಿ ಮತ್ತು ನಿಮಗೆ ಅಗತ್ಯವಿರುವಾಗ ತ್ವರಿತವಾಗಿ ಇಲ್ಲಿಗೆ ಹಿಂತಿರುಗಿ</translation>
@@ -6012,6 +6023,7 @@
 <translation id="8481187309597259238">USB ಅನುಮತಿಯನ್ನು ಖಚಿತಪಡಿಸಿ</translation>
 <translation id="8483248364096924578">ಐಪಿ ವಿಳಾಸ</translation>
 <translation id="8487678622945914333">ಝೂಮ್ ಇನ್</translation>
+<translation id="8489156414266187072">ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿ ಮಾತ್ರ ವೈಯಕ್ತಿಕ ಸಲಹೆಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ</translation>
 <translation id="8490896350101740396">ಈ ಕೆಳಗಿನ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು "<ph name="UPDATED_APPS" />" ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ. ಅಪ್‌ಡೇಟ್‌ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಸಾಧನವನ್ನು ರೀಬೂಟ್ ಮಾಡಿ.</translation>
 <translation id="8493236660459102203">ಮೈಕ್ರೋಫೋನ್:</translation>
 <translation id="8496717697661868878">ಈ ಪ್ಲಗಿನ್ ಚಾಲನೆ ಮಾಡು</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index bdf27876..d3ccf2f 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">파워워시</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> 파일은 안전하게 다운로드할 수 없습니다.</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" />에서 페어링하려고 함</translation>
-<translation id="2341476639346994688">프린터 중지됨</translation>
 <translation id="2342740338116612727">북마크 추가됨</translation>
 <translation id="2343747224442182863">이 탭에 포커스</translation>
 <translation id="2344686470986284227">가상 머신 컨트롤러 시작 중</translation>
@@ -3446,7 +3445,6 @@
 <translation id="5283677936944177147">시스템이 기기 모델 또는 일련번호를 확인하는 데 실패했습니다.</translation>
 <translation id="5284445933715251131">다운로드 계속</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> 표시</translation>
-<translation id="5286094561505658635">출력 영역이 가득 참</translation>
 <translation id="5286194356314741248">검색 중</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">내 계정</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">인증서 정책 매핑</translation>
 <translation id="5554489410841842733">현재 페이지에서 확장 프로그램을 실행할 수 있게 되면 아이콘이 표시됩니다.</translation>
 <translation id="5554720593229208774">이메일 인증 기관</translation>
-<translation id="5554931805291741487">출력 영역이 거의 다 참</translation>
 <translation id="5556459405103347317">새로고침</translation>
 <translation id="5558125320634132440">이 사이트는 미성년자 부적합 콘텐츠가 포함되어 있을 수 있어 차단되었습니다</translation>
 <translation id="5558129378926964177">확대(&amp;I)</translation>
@@ -4938,7 +4935,6 @@
 <translation id="7152478047064750137">이 확장 프로그램에는 특별한 권한이 필요하지 않습니다</translation>
 <translation id="7154130902455071009">다음으로 시작 페이지 변경: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">카메라 또는 파일의 기존 사진</translation>
-<translation id="7163766494674803047">프린터 기기 오류</translation>
 <translation id="7165320105431587207">네트워크를 설정하지 못했습니다.</translation>
 <translation id="716640248772308851">'<ph name="EXTENSION" />'은(는) 선택된 위치에서 이미지, 동영상 및 사운드 파일을 읽을 수 있습니다.</translation>
 <translation id="7167486101654761064">해당 유형의 파일 항상 열기(&amp;A)</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index e789d6d..0ebc16a3 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Жууп салуу</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> файлын коопсуз жүктөп алууга болбойт</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> жупташканы жатат</translation>
-<translation id="2341476639346994688">Принтер токтотулду</translation>
 <translation id="2342740338116612727">Кыстармалар кошулду</translation>
 <translation id="2343747224442182863">Бул өтмөктү фокустоо</translation>
 <translation id="2344686470986284227">Виртуалдык машинанын көзөмөлдөгүчү иштетилүүдө</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Ой! Тутум бул түзмөктүн моделин же сериясынын номерин аныктай албай койду.</translation>
 <translation id="5284445933715251131">Жүктөп алууну улантуу</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> көрсөтүү</translation>
-<translation id="5286094561505658635">Басылып чыгарылган барактар тактасы толуп калды</translation>
 <translation id="5286194356314741248">Текшерилүүдө</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Каттоо эсептериңиз</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Тастыктама саясатынын картасы</translation>
 <translation id="5554489410841842733">Бул бетте кеңейтүү иштей баштаганда, бул сүрөтчө көрүнүп калат.</translation>
 <translation id="5554720593229208774">Электрондук почтанын тастыктама борбору</translation>
-<translation id="5554931805291741487">Принтердин кагаздар басылып чыккан жери толгону калды</translation>
 <translation id="5556459405103347317">Кайра жүктөө</translation>
 <translation id="5558125320634132440">Бул сайт бөгөттөлгөн, анткени анда чоң кишилерге арналган мазмун болушу мүмкүн</translation>
 <translation id="5558129378926964177">Чо&amp;ңойтуу</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Бул кеңейтүү атайын уруксаттарды талап кылбайт</translation>
 <translation id="7154130902455071009">Баштоо баракчаңызды төмөнкүгө өзгөртүңүз: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Камерадагы же файлдагы учурдагы сүрөт</translation>
-<translation id="7163766494674803047">Принтер катасы</translation>
 <translation id="7165320105431587207">Тармак конфигурацияланбай калды</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" белгиленген жерлердеги сүрөттөрдү, видеону жана үн файлдарын окуй алат.</translation>
 <translation id="7167486101654761064">Мындай түрдөгү файлдар &amp;ар дайым ачылсын</translation>
@@ -6168,7 +6164,7 @@
 <translation id="8688579245973331962">Ысымыңызды көрбөй жатасызбы?</translation>
 <translation id="8688591111840995413">Начар сырсөз</translation>
 <translation id="8688672835843460752">Бош</translation>
-<translation id="8695139659682234808">Жөндөгөндөн кийин Ата-эненин көзөмөлү кошуу</translation>
+<translation id="8695139659682234808">Жөндөгөндөн кийин Ата-эненин көзөмөлүн кошуу</translation>
 <translation id="8695825812785969222">Жайгашкан жерди &amp;ачуу…</translation>
 <translation id="8698269656364382265">Мурунку экранга кайтуу үчүн экранды сол капталына сүрүңүз.</translation>
 <translation id="869884720829132584">Колдонмолор менюсу</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 4fdee62..55d1092 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -206,7 +206,7 @@
 <translation id="1238191093934674082">ເປີດ VPN</translation>
 <translation id="1239594683407221485">ສຳຫຼວດເນື້ອຫາຂອງອຸປະກອນຢູ່ໃນແອັບໄຟລ໌.</translation>
 <translation id="124116460088058876">ພາສາເພີ່ມເຕີມ</translation>
-<translation id="1241639418100230264">ອາດມີການຮຽກເກັບຄ່າບໍລິການ</translation>
+<translation id="1241639418100230264">ອາດມີການຮຽກເກັບຄ່າອິນເຕີເນັດ</translation>
 <translation id="1241753985463165747">ອ່ານ ແລະ ປ່ຽນທຸກຂໍ້ມູນຂອງທ່ານໃນເວັບໄຊປັດຈຸບັນເມື່ອມີການຮ້ອງຂໍ</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> ຕ້ອງ​ການ​ຕັ້ງ​ການ​ຕັ້ງ​ຄ່າ​ຂອງ​ທ່ານຄືນ​ໃໝ່.</translation>
 <translation id="1243314992276662751">ອັບ​ໂຫຼດ</translation>
@@ -386,7 +386,7 @@
 <translation id="1465827627707997754">ແຜ່ນພິດຊ້າ</translation>
 <translation id="1468571364034902819">ບໍ່ສາມາດໃຊ້ໂປຣໄຟລ໌ນີ້</translation>
 <translation id="1470084204649225129">{NUM_TABS,plural, =1{ເພີ່ມແຖບໃສ່ກຸ່ມໃໝ່}other{ເພີ່ມແຖບໃສ່ກຸ່ມໃໝ່}}</translation>
-<translation id="1470946456740188591">ເພື່ອເປີດ ຫຼື ປິດການເອີ້ນເບິ່ງດ້ວຍແປ້ນພິມ, ກະລຸນາໃຊ້ທາງລັດ Ctrl+Search+7</translation>
+<translation id="1470946456740188591">ເພື່ອເປີດ ຫຼື ປິດການຮຽກເບິ່ງດ້ວຍແປ້ນພິມ, ກະລຸນາໃຊ້ທາງລັດ Ctrl+Search+7</translation>
 <translation id="1472675084647422956">ສະແດງເພີ່ມເຕີມ</translation>
 <translation id="1474785664565228650">ການປ່ຽນການຕັ້ງຄ່າໄມໂຄຣໂຟນກຳນົດໃຫ້ Parallels Desktop ເລີ່ມເປີດໃຊ້ໃໝ່. ເປີດການນຳໃຊ້ Parallels Desktop ເພື່ອສືບຕໍ່.</translation>
 <translation id="1475502736924165259">ທ່ານມີໃບຢັ້ງຢືນຢູ່ໃນໄຟລ໌ທີ່ບໍ່ເຂົ້າກັບໝວດອື່ນໃດໜຶ່ງ:</translation>
@@ -571,7 +571,7 @@
 <translation id="1680849702532889074">ເກີດຄວາມຜິດພາດໃນລະຫວ່າງການຕິດຕັ້ງແອັບພລິເຄຊັນ Linux ຂອງທ່ານ.</translation>
 <translation id="16815041330799488">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊເຫັນຂໍ້ຄວາມ ແລະ ຮູບພາບທີ່ສຳເນົາໄວ້ໃນຄລິບບອດ</translation>
 <translation id="1682548588986054654">ໜ້າ​ຕ່າງທີ່ບໍ່ເຜີຍຕົນຕົວໃໝ່</translation>
-<translation id="1682867089915960590">ເປີດການເອີ້ນເບິ່ງດ້ວຍແປ້ນພິມບໍ?</translation>
+<translation id="1682867089915960590">ເປີດການຮຽກເບິ່ງດ້ວຍແປ້ນພິມບໍ?</translation>
 <translation id="1686550358074589746">ເປີດການນຳໃຊ້ການພິມແບບເລື່ອນ</translation>
 <translation id="168715261339224929">ເພື່ອມີບຸກມາກຢູ່ໃນທຸກອຸປະກອນຂອງທ່ານ, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນກ່ອນ.</translation>
 <translation id="1688867105868176567">ລຶບລ້າງຂໍ້ມູນເວັບໄຊບໍ?</translation>
@@ -1106,7 +1106,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">ບໍ່ສາມາດດາວໂຫຼດ <ph name="FILE_NAME" /> ໄດ້ຢ່າງປອດໄພ</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ຕ້ອງການຈັບຄູ່</translation>
-<translation id="2341476639346994688">ເຄື່ອງພິມຢຸດເຮັດວຽກ</translation>
 <translation id="2342740338116612727">ເພີ່ມບຸກມາກແລ້ວ</translation>
 <translation id="2343747224442182863">ໂຟກັສແຖບນີ້</translation>
 <translation id="2344686470986284227">ກຳລັງເລີ່ມຕົວຄວບຄຸມເຄື່ອງສະເໝືອນ</translation>
@@ -2720,7 +2719,7 @@
 <translation id="4336434711095810371">ລຶບລ້າງຂໍ້ມູນທັງໝົດ</translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> ຕ້ອງ​ການ​ສື່​ສານ​ກັບ​ແອັບ "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4340575312453649552">ໂຄສະນານີ້ໃຊ້ຊັບພະຍາກອນຫຼາຍເກີນໄປສຳລັບອຸປະກອນຂອງທ່ານ, ສະນັ້ນ Chrome ໄດ້ລຶບມັນອອກແລ້ວ.</translation>
-<translation id="4341577178275615435">ເພື່ອເປີດ ຫຼື ປິດການເອີ້ນເບິ່ງດ້ວຍແປ້ນພິມ, ກະລຸນາໃຊ້ທາງລັດ F7</translation>
+<translation id="4341577178275615435">ເພື່ອເປີດ ຫຼື ປິດການຮຽກເບິ່ງດ້ວຍແປ້ນພິມ, ກະລຸນາໃຊ້ທາງລັດ F7</translation>
 <translation id="434404122609091467">ດ້ວຍຜູ້ໃຫ້ບໍລິການປັດຈຸບັນຂອງທ່ານ</translation>
 <translation id="4345587454538109430">ປັບຕັ້ງຄ່າ...</translation>
 <translation id="4345732373643853732">ເຊີບເວີບໍ່ຮູ້ຊື່ຜູ້ໃຊ້</translation>
@@ -3446,7 +3445,6 @@
 <translation id="5283677936944177147">ອຸ້ຍ!  ລະບົບບໍ່ສາມາດກຳນົດຮຸ່ນອຸປະກອນ ຫຼື ໝາຍເລກຊີຣຽວໄດ້.</translation>
 <translation id="5284445933715251131">ສືບຕໍ່ການດາວໂຫລດ</translation>
 <translation id="5285635972691565180">ຈໍສະແດງຜົນ <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">ພື້ນທີ່ສຳລັບເຈ້ຍອອກເຕັມແລ້ວ</translation>
 <translation id="5286194356314741248">ກຳລັງສະແກນ</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">ບັນ​ຊີ​ຂອງ​ທ່ານ</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">ການສ້າງແຜນທີ່ນະໂຍບາຍໃບຢັ້ງຢືນ</translation>
 <translation id="5554489410841842733">ຈະເຫັນໄອຄອນນີ້ໄດ້ ເມື່ອສ່ວນຂະຫຍາຍສາມາດດໍາເນີນການຢູ່ໃນໜ້າປະຈຸບັນໄດ້.</translation>
 <translation id="5554720593229208774">ໜ່ວຍງານຢັ້ງຢືນອີເມວ</translation>
-<translation id="5554931805291741487">ພື້ນທີ່ສຳລັບເຈ້ຍອອກໃກ້ເຕັມແລ້ວ</translation>
 <translation id="5556459405103347317">ໂຫຼດຄືນໃໝ່</translation>
 <translation id="5558125320634132440">ລະບົບບລັອກເວັບໄຊນີ້ໄວ້ເພາະວ່າມັນອາດຈະມີເນື້ອຫາສຳລັບຜູ້ໃຫຍ່</translation>
 <translation id="5558129378926964177">ຊູມເຂົ້າ</translation>
@@ -4456,7 +4453,7 @@
 <translation id="6545864417968258051">ການສະແກນ Bluetooth</translation>
 <translation id="6545867563032584178">ໄມໂຄຣໂຟນຖືກປິດໄວ້ໃນການຕັ້ງຄ່າລະບົບ Mac</translation>
 <translation id="6547354035488017500">ຂະຫຍາຍພື້ນທີ່ຫວ່າງຢ່າງໜ້ອຍ 512 MB ຫຼື ອຸປະກອນຂອງທ່ານຈະບໍ່ຕອບສະໜອງ. ເພື່ອຂະຫຍາຍພື້ນທີ່ຫວ່າງ, ໃຫ້ລຶບໄຟລ໌ອອກຈາກບ່ອນເກັບຂໍ້ມູນ.</translation>
-<translation id="654871471440386944">ເປີດການເອີ້ນເບິ່ງດ້ວຍແປ້ນພິມບໍ?</translation>
+<translation id="654871471440386944">ເປີດການຮຽກເບິ່ງດ້ວຍແປ້ນພິມບໍ?</translation>
 <translation id="6550675742724504774">ທາງ​ເລືອກ</translation>
 <translation id="6551508934388063976">ບໍ່ມີຄໍາສັ່ງຢູ່. ກົດຄອນໂທຣລ-N ເພື່ອເປີດໜ້າຕ່າງໃໝ່.</translation>
 <translation id="6551612971599078809">ເວັບໄຊກຳລັງໃຊ້ USB</translation>
@@ -4938,7 +4935,6 @@
 <translation id="7152478047064750137">ສ່ວນຂະຫຍາຍນີ້ບໍ່ຈຳເປັນຕ້ອງມີການອະນຸຍາດພິເສດໃດໆ</translation>
 <translation id="7154130902455071009">ປ່ຽນໜ້າເລີ່ມຕົ້ນຂອງທ່ານເປັນ​: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">ຮູບຖ່າຍທີ່ມີຢູ່ຈາກກ້ອງຖ່າຍຮູບ ຫຼື ໄຟລ໌</translation>
-<translation id="7163766494674803047">ຂໍ້ຜິດພາດຂອງອຸປະກອນເຄື່ອງພິມ</translation>
 <translation id="7165320105431587207">ປັບຕັ້ງເຄືອ​ຂ່າຍບໍ່ສໍາເລັດ</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" ສາມາດອ່ານໄຟລ໌ຮູບ, ວິດີໂອ, ແລະສຽງຢູ່ໃນຢູ່ໃນທີ່ຕັ້ງທີ່ໝາຍແລ້ວໄດ້.</translation>
 <translation id="7167486101654761064">ເປີດໄຟລ໌ປະເພດນີ້ທຸກຄັ້ງ</translation>
@@ -6018,7 +6014,7 @@
 <translation id="8500234928660943538">PUK ບໍ່ຖືກຕ້ອງ. ລອງໄດ້ອີກ: <ph name="RETRIES" /> ເທື່ອ.</translation>
 <translation id="8502536196501630039">ເພື່ອໃຊ້ແອັບຕ່າງໆຈາກ Google Play, ກ່ອນອື່ນທ່ານຕ້ອງກູ້ຄືນແອັບຂອງທ່ານ. ອາດຈະສູນເສຍບາງຂໍ້ມູນໄປແລ້ວ.</translation>
 <translation id="8503813439785031346">ຊື່​ຜູ້​ໃຊ້</translation>
-<translation id="8504640708321980506">ຂໍ້ມູນ</translation>
+<translation id="8504640708321980506">ອິນເຕີເນັດ</translation>
 <translation id="8507227974644337342">ຄວາມລະອຽດໜ້າຈໍ</translation>
 <translation id="850875081535031620">ບໍ່ພົບຊອບແວອັນຕະລາຍໃດໆ</translation>
 <translation id="8509177919508253835">ຣີເຊັດກະແຈຄວາມປອດໄພ ແລະ ສ້າງ PIN</translation>
@@ -6516,7 +6512,7 @@
 <translation id="9101691533782776290">ເປິດແອັບຯ</translation>
 <translation id="9102610709270966160">ເປີດນຳໃຊ້ນສ່ວນຂະຫຍາຍ</translation>
 <translation id="9103868373786083162">ກົດ​ເພື່ອ​ກັບ​ຄືນ, ເມ​ນູ​ເນື້ອ​ໃນ​ເພື່ອ​ເບິ່ງ​ປະ​ຫວັດ</translation>
-<translation id="9108072915170399168">ການຕັ້ງຄ່າການນຳໃຊ້ອິນເຕີເນັດປັດຈຸບັນແມ່ນບໍ່ມີອິນເຕີເນັດ</translation>
+<translation id="9108072915170399168">ການຕັ້ງຄ່າການນຳໃຊ້ອິນເຕີເນັດປັດຈຸບັນແມ່ນບໍ່ໃຊ້ອິນເຕີເນັດເລີຍ</translation>
 <translation id="9108692355621501797"><ph name="LINK_BEGIN" />ແຈ້ງການຄວາມເປັນສ່ວນຕົວຂອງ G Suite ສຳລັບການສຶກສາ<ph name="LINK_END" /> ມີຈຸດປະສົງເພື່ອຊ່ວຍໃຫ້ຜູ້ໃຊ້ G Suite ສຳລັບການສຶກສາ ແລະ ພໍ່ແມ່ເຂົ້າໃຈວ່າຜະລິດຕະພັນເກັບກຳຂໍ້ມູນໃດແດ່, ຍ້ອນຫຍັງຈິ່ງເກັບກຳ ແລະ ມີການເຮັດຫຍັງກັບຂໍ້ມູນ.</translation>
 <translation id="9108808586816295166">DNS ທີ່ປອດໄພອາດຈະບໍ່ສາມາດໃຊ້ໄດ້ຕະຫຼອດເວລາ</translation>
 <translation id="9109122242323516435">ເພື່ອຂະຫຍາຍພື້ນທີ່ຫວ່າງ, ໃຫ້ລຶບໄຟລ໌ຕ່າງໆຈາກບ່ອນເກັບຂໍ້ມູນຂອງອຸປະກອນ.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 72af7bb..3e14e89 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Sukurtas</translation>
 <translation id="1067291318998134776">Linux (beta)</translation>
 <translation id="1067922213147265141">Kitos „Google“ paslaugos</translation>
+<translation id="1068961867683064946">Kurti vaikui skirtą „Google“ paskyrą</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Kita kompiuterio programa pridėjo plėtinį, kuris gali pakeisti, kaip veikia „Chrome“.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Papildomo puslapio „<ph name="SUBPAGE_TITLE" />“ mygtukas „Atgal“</translation>
 <translation id="1322046419516468189">Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Saugomos visų naudotojų, kuriems kyla tikslinių atakų pavojus, asmeninės „Google“ paskyros</translation>
+<translation id="1325985428688410772">Pridėti tarpą</translation>
 <translation id="1326317727527857210">Prisijunkite prie „Chrome“, kad pasiektumėte skirtukus iš kitų įrenginių.</translation>
 <translation id="1327074568633507428">„Google“ spausdinimo iš debesies spausdintuvas</translation>
 <translation id="1327272175893960498">„Kerberos“ bilietai</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Konfigūruoti tinklą</translation>
 <translation id="230927227160767054">Puslapis prašo leidimo įdiegti paslaugos doroklę.</translation>
 <translation id="2309620859903500144">Ši svetainė užblokuota, kad nebūtų naudojami judesio ar šviesos jutikliai.</translation>
+<translation id="2314873619957287124">Nustatyti skaitmenines taisykles norint padėti vaikui mokytis, žaisti ir naršyti</translation>
 <translation id="2315414688463285945">Konfigūruojant „Linux“ failus įvyko klaida. Bandykite dar kartą.</translation>
 <translation id="2315587498123194634">Siųsti nuorodą į „<ph name="DEVICE_NAME" />“</translation>
 <translation id="2316129865977710310">Ne, ačiū</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Paklausti, kai svetainė nori pasiekti nuosekliuosius prievadus (rekomenduojama)</translation>
 <translation id="2323018538045954000">Išsaugoti „Wi-Fi“ tinklai</translation>
 <translation id="2325444234681128157">Atsiminti slaptažodį</translation>
+<translation id="2326160999284776503">Prisijungti naudojant vaiko „Google“ paskyrą</translation>
 <translation id="2326188115274135041">Patvirtinkite PIN kodą, kad įjungtumėte automatinio atrakinimo funkciją</translation>
 <translation id="2326931316514688470">&amp;Įkelti programą iš naujo</translation>
 <translation id="2327492829706409234">Įgalinti programą</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Negalima saugiai atsisiųsti failo „<ph name="FILE_NAME" />“</translation>
 <translation id="2340263603246777781">Svetainė <ph name="ORIGIN" /> nori būti susieta su</translation>
-<translation id="2341476639346994688">Spausdintuvas sustabdytas</translation>
 <translation id="2342740338116612727">Žymės pridėtos</translation>
 <translation id="2343747224442182863">Šio skirtuko paryškinimas</translation>
 <translation id="2344686470986284227">Paleidžiamas virtualaus įrenginio valdiklis</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Įvyko klaida. Patikrinkite spausdintuvą ir bandykite dar kartą.</translation>
 <translation id="2387052489799050037">Eikite į pagrindinį ekraną</translation>
 <translation id="2387458720915042159">Tarpinio serverio ryšio tipas</translation>
+<translation id="2391082728065870591">Siųsti atsiliepimo ataskaitą</translation>
 <translation id="2391419135980381625">Standartinis šriftas</translation>
 <translation id="2392163307141705938">Pasiekėte laiko apribojimą, kurį vienas iš tėvų nustatė „<ph name="IDS_SHORT_PRODUCT_NAME" />“.</translation>
 <translation id="2392369802118427583">Suaktyvinti</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Sinchronizuojant slaptažodžius įvyko klaida</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> gali peržiūrėti ir redaguoti toliau nurodytus failus ir aplankus</translation>
 <translation id="2537927931785713436">Tikrinamas virtualaus įrenginio vaizdas</translation>
+<translation id="2538084450874617176">Kas naudoja šį „<ph name="DEVICE_TYPE" />“?</translation>
 <translation id="2538361623464451692">Sinchronizavimas išjungtas</translation>
 <translation id="2540449034743108469">Paspauskite „Pradėti“ ir klausykitės plėtinių veiklos</translation>
 <translation id="2541002089857695151">Optimizuoti perdavimą viso ekrano režimu?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Melionas</translation>
 <translation id="4364567974334641491">„<ph name="APP_NAME" />“ bendrina langą.</translation>
 <translation id="4364830672918311045">Pateikti pranešimus</translation>
+<translation id="4368115171699243057">Šio „<ph name="DEVICE_TYPE" />“ nustatymas vaikui</translation>
 <translation id="437004882363131692">Gaukite „<ph name="DEVICE_TYPE" />“ patarimų, pasiūlymų bei naujinių ir pateikite atsiliepimų. Atsisakyti prenumeratos galėsite bet kuriuo metu.</translation>
 <translation id="4370975561335139969">Įvestas slaptažodis neatitinka el. pašto adreso</translation>
 <translation id="4374831787438678295">„Linux“ diegimo programa</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Slėpti slaptažodį</translation>
 <translation id="4565917129334815774">Išsaugoti sistemos žurnalus</translation>
 <translation id="456717285308019641">Verčiama puslapio kalba</translation>
+<translation id="4567533462991917415">Nustatę visada galite pridėti daugiau žmonių. Kiekvienas asmuo gali suasmeninti paskyrą ir privačiai saugoti duomenis.</translation>
 <translation id="4567772783389002344">Pridėti žodį</translation>
 <translation id="4568025708905928793">Pateikta saugos rakto užklausa</translation>
 <translation id="4568213207643490790">Deja, „Google“ paskyrų negalima naudoti šiame įrenginyje.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Nepavyko užbaigti „Linux“ sudėtinio rodinio. Bandykite dar kartą.</translation>
 <translation id="4633003931260532286">Norint naudoti plėtinį reikalinga bent <ph name="IMPORT_VERSION" /> versijos „<ph name="IMPORT_NAME" />“, bet įdiegta tik <ph name="INSTALLED_VERSION" /> versija</translation>
 <translation id="4633757335284074492">Sukurkite atsarginę kopiją „Google“ diske. Lengvai atkurkite duomenis arba perjunkite įrenginį bet kuriuo metu. Į šią atsarginę kopiją įtraukiami programų. Atsarginės kopijos įkeliamos į sistemą „Google“ ir šifruojamos naudojant vaiko „Google“ paskyros slaptažodį.</translation>
+<translation id="4634575639321169635">Nustatyti šį įrenginį naudoti darbo ar asmeniniais tikslais</translation>
 <translation id="4634771451598206121">Prisijungti dar kartą...</translation>
 <translation id="4635072447747973225">Pašalinti „Crostini“</translation>
 <translation id="4635398712689569051">„<ph name="PAGE_NAME" />“ nepasiekiamas svečiams.</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">Naujausia „<ph name="EXTENSION_NAME" />“ versija buvo išjungta, nes jai reikia daugiau leidimų.</translation>
 <translation id="5185500136143151980">Nėra interneto ryšio</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" /> skirtų parinkčių meniu</translation>
 <translation id="5190926251776387065">Suaktyvinti prievadą</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> nori atsisiųsti kelis failus</translation>
 <translation id="5192062846343383368">Atidarykite programą „Family Link“ ir peržiūrėkite priežiūros nustatymus</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Oi! Sistemai nepavyko nustatyti įrenginio modelio ar serijos numerio.</translation>
 <translation id="5284445933715251131">Tęsti atsisiuntimą</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> ekranas</translation>
-<translation id="5286094561505658635">Išvesties sritis pilna</translation>
 <translation id="5286194356314741248">Nuskaitoma</translation>
 <translation id="5286252187236914003">L2TP / „IPsec“</translation>
 <translation id="5287425679749926365">Jūsų paskyros</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Neišjungti ekrano</translation>
 <translation id="5496587651328244253">Tvarkyti</translation>
 <translation id="5497251278400702716">Šis failas</translation>
+<translation id="5498967291577176373">Sparčiai rašykite naudodami įterptus savo vardo, adreso ar telefono numerio pasiūlymus</translation>
 <translation id="5499313591153584299">Šis failas gali pažeisti jūsų kompiuterį.</translation>
 <translation id="5499453227627332024">Yra „Linux“ sudėtiniam rodiniui skirtas naujovinimas. Taip pat galite naujovinti galite ir vėliau iš Nustatymų programos.</translation>
 <translation id="5500709606820808700">Saugos patikra atlikta šiandien</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Sertifikato politikos atvaizdavimas</translation>
 <translation id="5554489410841842733">Ši piktograma bus matoma, kai plėtinys galės veikti esamame puslapyje.</translation>
 <translation id="5554720593229208774">El. pašto sertifikavimo institucija</translation>
-<translation id="5554931805291741487">Išvesties sritis beveik pilna</translation>
 <translation id="5556459405103347317">Įkelti iš naujo</translation>
 <translation id="5558125320634132440">Ši svetainė užblokuota, nes joje gali būti suaugusiesiems skirto turinio</translation>
 <translation id="5558129378926964177">Artin&amp;ti</translation>
@@ -3777,6 +3785,7 @@
 <translation id="5689516760719285838">Vieta</translation>
 <translation id="56907980372820799">Susieti duomenis</translation>
 <translation id="5691511426247308406">Šeima</translation>
+<translation id="5691581861107245578">Gaukite jaustukų pasiūlymų pagal renkamą tekstą</translation>
 <translation id="5691772641933328258">Kontrolinis kodas neatpažintas</translation>
 <translation id="5692183275898619210">Baigta spausdinti</translation>
 <translation id="569425414730375234">Dabartinis inkognito režimo seansas: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4136,6 +4145,7 @@
 <translation id="6124698108608891449">Šiai svetainei reikia daugiau leidimų.</translation>
 <translation id="6125479973208104919">Deja, reikės vėl pridėti paskyrą šiame „<ph name="DEVICE_TYPE" />“.</translation>
 <translation id="6129691635767514872">Pasirinkti duomenys pašalinti iš „Chrome“ ir sinchronizuojamų įrenginių. „Google“ paskyroje galite būti kitų formų naršymo istorijos, pvz., paieškų ir veiklos iš kitų „Google“ paslaugų, kuri pasiekiama adresu <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Jūsų vaikas</translation>
 <translation id="6129938384427316298">„Netscape“ sertifikato komentaras</translation>
 <translation id="6129953537138746214">Tarpas</translation>
 <translation id="6130692320435119637">Pridėti „Wi-Fi“</translation>
@@ -4176,6 +4186,7 @@
 <translation id="6178664161104547336">Pasirinkite sertifikatą</translation>
 <translation id="6181431612547969857">Atsisiuntimas užblokuotas</translation>
 <translation id="6185132558746749656">Įrenginio vietovė</translation>
+<translation id="6195446518998936840">Norint nustatyti tėvų kontrolę, vaikas turi turėti „Google“ paskyrą, kurią padėsite valdyti. Galite nustatyti įrenginio naudojimo laiko apribojimus, patvirtinti arba blokuoti svetaines ir atlikti daugiau veiksmų naudodami programą „Family Link“.</translation>
 <translation id="6195693561221576702">Šis įrenginys negali būti nustatytas, kai įjungtas neprisijungus pasiekiamas demonstracinis režimas.</translation>
 <translation id="6196640612572343990">Blokuoti trečiosios šalies slapukus</translation>
 <translation id="6196854373336333322">Plėtinys „<ph name="EXTENSION_NAME" />“ perėmė tarpinio serverio valdymą. Tai reiškia, kad jis gali keisti, nutraukti ar stebėti visus prisijungus atliekamus veiksmus. Jei nesate tikri, kodėl įvyko šis pakeitimas, tikriausiai jūs jo nenorite.</translation>
@@ -4941,7 +4952,6 @@
 <translation id="7152478047064750137">Šiam plėtiniui nereikia specialių leidimų</translation>
 <translation id="7154130902455071009">Pakeiskite pradžios puslapį į: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Esama nuotrauka iš fotoaparato arba failo</translation>
-<translation id="7163766494674803047">Spausdintuvo įrenginio klaida</translation>
 <translation id="7165320105431587207">Nepavyko sukonfigūruoti tinklo</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />“ patikrintose vietose gali nuskaityti vaizdus, vaizdo įrašus ir garso failus.</translation>
 <translation id="7167486101654761064">&amp;Visada atidaryti tokio tipo failus</translation>
@@ -5931,6 +5941,7 @@
 <translation id="8372369524088641025">Netinkamas WEP raktas</translation>
 <translation id="8372477600026034341">Papildomos prieglobos</translation>
 <translation id="8373652277231415614">„Crostini“ bendrinami katalogai</translation>
+<translation id="8376384591331888629">Įskaitant trečiosios šalies slapukus jūsų svetainėje</translation>
 <translation id="8378714024927312812">Tvarko jūsų organizacija</translation>
 <translation id="8379878387931047019">Šis įrenginys nepalaiko saugos rakto, kurio reikalaujama šioje svetainėje, tipo</translation>
 <translation id="8379991678458444070">Grįžkite čia greičiau pasižymėję šį skirtuką</translation>
@@ -6014,6 +6025,7 @@
 <translation id="8481187309597259238">USB leidimo patvirtinimas</translation>
 <translation id="8483248364096924578">IP adresas</translation>
 <translation id="8487678622945914333">Artinti</translation>
+<translation id="8489156414266187072">Asmeniniai pasiūlymai rodomi tik jūsų paskyroje</translation>
 <translation id="8490896350101740396">Buvo atnaujintos šios viešojo terminalo programos: <ph name="UPDATED_APPS" />. Paleiskite įrenginį iš naujo, kad užbaigtumėte atnaujinimo procesą.</translation>
 <translation id="8493236660459102203">Mikrofonas:</translation>
 <translation id="8496717697661868878">Paleisti šį papildinį</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index db33603..77b2c7ea 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Izveidots</translation>
 <translation id="1067291318998134776">Linux (Beta versija)</translation>
 <translation id="1067922213147265141">Citi Google pakalpojumi</translation>
+<translation id="1068961867683064946">Izveidot bērnam Google kontu</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Citā datorā instalētā programmā ir pievienots tāds paplašinājums, kura dēļ var tikt izmainīta pārlūkprogrammas Chrome darbība.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> apakšlapas poga Atpakaļ</translation>
 <translation id="1322046419516468189">Saglabātās paroles varat skatīt un pārvaldīt šeit: <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Aizsargā jebkuru personīgo Google kontu pret mērķtiecīga uzbrukuma risku</translation>
+<translation id="1325985428688410772">Pievienot darbvietu</translation>
 <translation id="1326317727527857210">Pierakstieties pārlūkā Chrome, lai būtu pieejamas cilnes no citām jūsu ierīcēm.</translation>
 <translation id="1327074568633507428">Printeris Google mākoņdrukā</translation>
 <translation id="1327272175893960498">Kerberos biļetes</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Konfigurēt tīklu</translation>
 <translation id="230927227160767054">Šī lapa vēlas instalēt pakalpojumu apdarinātāju.</translation>
 <translation id="2309620859903500144">Šīs vietnes piekļuve kustību vai gaismas sensoriem ir bloķēta.</translation>
+<translation id="2314873619957287124">Iestatiet pamatnoteikumus, lai palīdzētu bērnam mācīties, spēlēties un izpētīt digitālo vidi</translation>
 <translation id="2315414688463285945">Konfigurējot Linux failus, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="2315587498123194634">Nosūtīt saiti uz: <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nē, paldies</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Vaicāt, ja vietne vēlas piekļūt seriālajiem portiem (ieteicams)</translation>
 <translation id="2323018538045954000">Saglabātie Wi-Fi tīkli</translation>
 <translation id="2325444234681128157">Atcerēties paroli</translation>
+<translation id="2326160999284776503">Pierakstieties bērna Google kontā</translation>
 <translation id="2326188115274135041">Lai ieslēgtu automātisko atbloķēšanu, ievadiet PIN</translation>
 <translation id="2326931316514688470">&amp;Atkārtoti ielādēt lietotni</translation>
 <translation id="2327492829706409234">Iespējot lietotni</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Failu “<ph name="FILE_NAME" />” nevar droši lejupielādēt.</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> vēlas savienot pārī</translation>
-<translation id="2341476639346994688">Printera darbība ir pārtraukta.</translation>
 <translation id="2342740338116612727">Grāmatzīmes pievienotas</translation>
 <translation id="2343747224442182863">Izcelt šo cilni</translation>
 <translation id="2344686470986284227">Virtuālās mašīnas vadāmierīces startēšana</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Radās kļūda. Lūdzu, pārbaudiet printeri un mēģiniet vēlreiz.</translation>
 <translation id="2387052489799050037">Pāriešana uz sākuma ekrānu</translation>
 <translation id="2387458720915042159">Starpniekservera savienojuma veids</translation>
+<translation id="2391082728065870591">Sūtīt atsauksmju pārskatu</translation>
 <translation id="2391419135980381625">Standarta fonts</translation>
 <translation id="2392163307141705938">Ir sasniegts laika ierobežojums, ko jūsu vecāki iestatīja lietotnes <ph name="IDS_SHORT_PRODUCT_NAME" /> izmantošanai.</translation>
 <translation id="2392369802118427583">Aktivizēt</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Sinhronizējot paroles, radās kūda</translation>
 <translation id="2537395079978992874">Vietne <ph name="ORIGIN" /> var atvērt un rediģēt tālāk norādītos failus un mapes.</translation>
 <translation id="2537927931785713436">Virtuālās mašīnas attēla pārbaude</translation>
+<translation id="2538084450874617176">Kas lietos šo ierīci (<ph name="DEVICE_TYPE" />)?</translation>
 <translation id="2538361623464451692">Sinhronizācija atspējota</translation>
 <translation id="2540449034743108469">Nospiediet “Sākt”, lai uztvertu paplašinājuma darbības</translation>
 <translation id="2541002089857695151">Vai optimizēt pilnekrāna apraidi?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Melone</translation>
 <translation id="4364567974334641491">Lietotne <ph name="APP_NAME" /> koplieto logu.</translation>
 <translation id="4364830672918311045">Parādīt paziņojumus</translation>
+<translation id="4368115171699243057">Lai <ph name="DEVICE_TYPE" /> būtu jūsu bērna rīcībā, veiciet iestatīšanu</translation>
 <translation id="437004882363131692">Saņemiet <ph name="DEVICE_TYPE" /> padomus, piedāvājumus un jaunumus, kā arī sniedziet atsauksmes. Varat anulēt abonementu jebkurā laikā.</translation>
 <translation id="4370975561335139969">Ievadītā e-pasta adrese un parole neatbilst.</translation>
 <translation id="4374831787438678295">Linux instalēšanas programma</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Slēpt paroli</translation>
 <translation id="4565917129334815774">Glabāt sistēmas žurnālus</translation>
 <translation id="456717285308019641">Lapas valoda, no kuras jātulko saturs</translation>
+<translation id="4567533462991917415">Pēc iestatīšanas jebkurā laikā varēsiet pievienot citas personas. Katra persona var personalizēt savu kontu, un katras personas dati ir konfidenciāli.</translation>
 <translation id="4567772783389002344">Pievienot vārdu</translation>
 <translation id="4568025708905928793">Tiek reģistrēta drošības atslēga</translation>
 <translation id="4568213207643490790">Diemžēl Google kontus nav atļauts izmantot šajā ierīcē.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Linux konteinera iestatīšana netika pabeigta. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="4633003931260532286">Paplašinājumam ir nepieciešama “<ph name="IMPORT_NAME" />” versija <ph name="IMPORT_VERSION" /> (vismaz), taču ir instalēta tikai versija <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="4633757335284074492">Datu dublēšana Google diskā. Varēsiet jebkurā laikā ērti atjaunot datus vai mainīt ierīci. Dublējumā ir ietverti arī lietotņu dati. Dublējumi tiek augšupielādēti Google serveros un tiek šifrēti, izmantojot jūsu bērna Google konta paroli.</translation>
+<translation id="4634575639321169635">Iestatīt šo ierīci darbam vai personīgai lietošanai</translation>
 <translation id="4634771451598206121">Pierakstīties vēlreiz...</translation>
 <translation id="4635072447747973225">Crostini atinstalēšana</translation>
 <translation id="4635398712689569051">Lapa “<ph name="PAGE_NAME" />” nav pieejama viesa režīma lietotājiem.</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454"><ph name="EXTENSION_NAME" /> jaunākā versija ir atspējota, jo tai ir nepieciešams vairāk atļauju.</translation>
 <translation id="5185500136143151980">Nav interneta savienojuma</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Opciju izvēlne profilam <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Aktivizēt portu</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vēlas lejupielādēt vairākus failus</translation>
 <translation id="5192062846343383368">Atveriet lietotni Family Link, lai skatītu uzraudzības iestatījumus.</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Diemžēl sistēmai neizdevās noteikt ierīces modeli un sērijas numuru.</translation>
 <translation id="5284445933715251131">Turpināt lejupielādi</translation>
 <translation id="5285635972691565180">Displejs <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Izvades apgabals ir pilns.</translation>
 <translation id="5286194356314741248">Notiek skenēšana</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Jūsu konti</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Paturēt displeju ieslēgtu</translation>
 <translation id="5496587651328244253">Sakārtot</translation>
 <translation id="5497251278400702716">(šis fails)</translation>
+<translation id="5498967291577176373">Rakstiet ātrāk, izmantojot iekļautos ieteikumus: savu vārdu, adresi un tālruņa numuru</translation>
 <translation id="5499313591153584299">Šis fails var kaitēt jūsu datoram.</translation>
 <translation id="5499453227627332024">Jūsu Linux konteineram ir pieejams jauninājums. Jaunināšanu varat veikt arī vēlāk lietotnē Iestatījumi.</translation>
 <translation id="5500709606820808700">Drošības pārbaude tika izpildīta šodien</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Sertifikāta politikas kartējumi</translation>
 <translation id="5554489410841842733">Šī ikona tiks parādīta, ja paplašinājums varēs veikt darbības apmeklētajā lapā.</translation>
 <translation id="5554720593229208774">E-pasta sertifikāta izdevējiestāde</translation>
-<translation id="5554931805291741487">Izvades apgabals ir gandrīz pilns.</translation>
 <translation id="5556459405103347317">Pārlādēt</translation>
 <translation id="5558125320634132440">Šī vietne ir bloķēta, jo tajā var būt galvenokārt pieaugušajiem paredzēts saturs.</translation>
 <translation id="5558129378926964177">Tuvināt</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Atrašanās vieta</translation>
 <translation id="56907980372820799">Saistīt datus</translation>
 <translation id="5691511426247308406">Ģimene</translation>
+<translation id="5691581861107245578">Saņemiet emocijzīmju ieteikumus atbilstoši jūsu rakstītajam tekstam</translation>
 <translation id="5691772641933328258">Pirksta nospiedums netika atpazīts</translation>
 <translation id="5692183275898619210">Drukāšana ir pabeigta</translation>
 <translation id="569425414730375234">Pašreizējā inkognito sesija: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Šai vietnei ir nepieciešamas citas atļaujas.</translation>
 <translation id="6125479973208104919">Diemžēl jums būs atkārtoti jāpievieno savs konts šajā <ph name="DEVICE_TYPE" /> ierīcē.</translation>
 <translation id="6129691635767514872">Atlasītie dati ir noņemti no pārlūka Chrome un sinhronizētajām ierīcēm. Jūsu Google kontam vietnē <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> var būt cita veida pārlūkošanas vēstures dati, piemēram, meklēšanas vaicājumi un darbības citos Google pakalpojumos.</translation>
+<translation id="6129839611163153407">Jūsu bērns</translation>
 <translation id="6129938384427316298">Netscape sertifikāta komentārs</translation>
 <translation id="6129953537138746214">Atstarpe</translation>
 <translation id="6130692320435119637">Pievienot Wi-Fi tīklu</translation>
@@ -4175,6 +4185,7 @@
 <translation id="6178664161104547336">Sertifikāta atlasīšana</translation>
 <translation id="6181431612547969857">Lejupielāde ir bloķēta.</translation>
 <translation id="6185132558746749656">Ierīces atrašanās vieta</translation>
+<translation id="6195446518998936840">Lai iestatītu vecāku kontroli, bērnam nepieciešams Google konts, ko jūs palīdzēsiet uzraudzīt. Jūs varat noteikt ierīču izmantošanas ilguma ierobežojumus, apstiprināt vai bloķēt tīmekļa vietnes un paveikt daudz ko citu, izmantojot lietotni Family Link.</translation>
 <translation id="6195693561221576702">Šo ierīci nevar iestatīt bezsaistes demonstrēšanas režīmā.</translation>
 <translation id="6196640612572343990">Bloķēt trešo pušu sīkfailus</translation>
 <translation id="6196854373336333322">Paplašinājums “<ph name="EXTENSION_NAME" />” pārvalda jūsu starpniekservera iestatījumus. Tas nozīmē, ka tas var mainīt, pārtraukt vai izsekot visas jūsu darbības tiešsaistē. Ja neesat pārliecināts, kāpēc notika šīs izmaiņas, visticamāk, jūs tās nevēlaties.</translation>
@@ -4940,7 +4951,6 @@
 <translation id="7152478047064750137">Šim paplašinājumam nav nepieciešamas īpašas atļaujas.</translation>
 <translation id="7154130902455071009">Mainiet savu sākumlapu uz šo: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Esošs fotoattēls no kameras vai faila</translation>
-<translation id="7163766494674803047">Radās printera kļūda.</translation>
 <translation id="7165320105431587207">Neizdevās konfigurēt tīklu</translation>
 <translation id="716640248772308851">“<ph name="EXTENSION" />” var lasīt attēlus, videoklipus un skaņu failus atzīmētajās vietās.</translation>
 <translation id="7167486101654761064">Vienmēr atvērt šī veida failus</translation>
@@ -5929,6 +5939,7 @@
 <translation id="8372369524088641025">Neatbilstoša WEP atslēga</translation>
 <translation id="8372477600026034341">Citi mitinātāji</translation>
 <translation id="8373652277231415614">Crostini koplietotie katalogi</translation>
+<translation id="8376384591331888629">Arī šajā vietnē esošos trešo pušu sīkfailus</translation>
 <translation id="8378714024927312812">Pārvalda jūsu organizācija</translation>
 <translation id="8379878387931047019">Šī ierīce neatbalsta vietnes pieprasītās drošības atslēgas veidu.</translation>
 <translation id="8379991678458444070">Saglabājiet šo cilni kā grāmatzīmi, lai vēlāk to varētu ātrāk atrast.</translation>
@@ -6012,6 +6023,7 @@
 <translation id="8481187309597259238">USB ierīces atļaujas apstiprināšana</translation>
 <translation id="8483248364096924578">IP adrese</translation>
 <translation id="8487678622945914333">Tuvināt</translation>
+<translation id="8489156414266187072">Personiski ieteikumi tiek rādīti tikai jūsu kontā</translation>
 <translation id="8490896350101740396">Tika atjauninātas šādas Kioska lietotnes: “<ph name="UPDATED_APPS" />”. Lūdzu, atkārtoti palaidiet ierīci, lai pabeigtu atjaunināšanas procesu.</translation>
 <translation id="8493236660459102203">Mikrofons:</translation>
 <translation id="8496717697661868878">Izpildīt šo spraudni</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 65ee2c6..c46b453 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Создадено</translation>
 <translation id="1067291318998134776">Linux (бета)</translation>
 <translation id="1067922213147265141">Други услуги на Google</translation>
+<translation id="1068961867683064946">Создајте сметка на Google за вашето дете</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Друга програма на компјутерот додаде екстензија што може да промени како работи Chrome.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Копче за назад на подредената страница <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Прегледајте ги и управувајте со зачуваните лозинки во вашата <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Ги чува личните сметки на Google на луѓето што се во ризик од насочени напади</translation>
+<translation id="1325985428688410772">Додајте простор</translation>
 <translation id="1326317727527857210">За да ги преземете картичките од другите уреди, најавете се на Chrome.</translation>
 <translation id="1327074568633507428">Печатач на Google Cloud Print</translation>
 <translation id="1327272175893960498">Билети на Kerberos</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Конфигурирај мрежа</translation>
 <translation id="230927227160767054">Страницава сака да инсталира управувач на услуга.</translation>
 <translation id="2309620859903500144">Пристапот на сајтов до сензорите за движење или светлина е блокиран.</translation>
+<translation id="2314873619957287124">Поставете основни дигитални правила за да му помогнете на вашето дете да учи, истражува и да си игра</translation>
 <translation id="2315414688463285945">Грешка при конфигурирањето на датотеките на Linux. Обидете се повторно.</translation>
 <translation id="2315587498123194634">Испрати линк до <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Не, фала</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Прашај кога некој сајт сака да пристапи до сериските порти (се препорачува)</translation>
 <translation id="2323018538045954000">Зачувани Wi-Fi мрежи</translation>
 <translation id="2325444234681128157">Запомни ја лозинката</translation>
+<translation id="2326160999284776503">Најавете се со сметката на Google на вашето дете</translation>
 <translation id="2326188115274135041">Потврдете го PIN-кодот за да вклучите автоматско отклучување</translation>
 <translation id="2326931316514688470">&amp;Вчитај ја апликацијата повторно</translation>
 <translation id="2327492829706409234">Вклучи апликација</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Фабричко ресетирање</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> не може да се преземе безбедно</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> сака да се спари</translation>
-<translation id="2341476639346994688">Печатачот е запрен</translation>
 <translation id="2342740338116612727">Додадени се обележувачи</translation>
 <translation id="2343747224442182863">Фокусирајте ја картичкава</translation>
 <translation id="2344686470986284227">Се стартува контролерот на виртуелната машина</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Грешка. Проверете го печатачот и обидете се повторно.</translation>
 <translation id="2387052489799050037">Оди на почетен екран</translation>
 <translation id="2387458720915042159">Тип на врска прокси</translation>
+<translation id="2391082728065870591">Испрати извештај со повратни информации</translation>
 <translation id="2391419135980381625">Стандарден фонт</translation>
 <translation id="2392163307141705938">Го достигна временското ограничување што твојот родител го поставил за <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Активирај</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Грешка при синхронизирање на лозинките</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> може да ги прегледува и изменува следниве датотеки и папки</translation>
 <translation id="2537927931785713436">Се проверува сликата на виртуелната машина</translation>
+<translation id="2538084450874617176">Кој го користи овој <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Синхронизацијата е оневозможена</translation>
 <translation id="2540449034743108469">Притиснете „Старт“ за да се слушаат активностите на екстензијата</translation>
 <translation id="2541002089857695151">Да се оптимизира емитувањето на цел екран?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Диња</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> споделува прозорец.</translation>
 <translation id="4364830672918311045">Прикажи ги известувањата</translation>
+<translation id="4368115171699243057">Поставете го овој <ph name="DEVICE_TYPE" /> за вашето дете</translation>
 <translation id="437004882363131692">Добивајте совети, понуди и новости за <ph name="DEVICE_TYPE" /> и споделувајте повратни информации. Отпишете се во секое време.</translation>
 <translation id="4370975561335139969">Е-поштата и лозинката што ги внесовте не се совпаѓаат</translation>
 <translation id="4374831787438678295">Инсталатор на Linux</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Сокриј ја лозинката</translation>
 <translation id="4565917129334815774">Складирај ја системската евиденција</translation>
 <translation id="456717285308019641">Јазик на страницата што треба да се преведе</translation>
+<translation id="4567533462991917415">По поставувањето, во секое време ќе може да додадете повеќе луѓе. Секое лице може да ја персонализира својата сметка и да ги одржува податоците приватни.</translation>
 <translation id="4567772783389002344">Додај збор</translation>
 <translation id="4568025708905928793">Потребен е безбедносен клуч</translation>
 <translation id="4568213207643490790">За жал, сметките на Google не се дозволени на уредов.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Поставувањето на контејнерот на Linux не заврши. Обидете се повторно.</translation>
 <translation id="4633003931260532286">Екстензијата бара „<ph name="IMPORT_NAME" />" со минимална верзија „<ph name="IMPORT_VERSION" />", но инсталирана е само верзијата „<ph name="INSTALLED_VERSION" />"</translation>
 <translation id="4633757335284074492">Направете бекап на Google Drive. Лесно враќајте ги податоците или менувајте ги уредите во секое време. Бекапов опфаќа податоци од апликациите. Бекапот се прикачува во Google и се шифрира со лозинката за сметката на Google на вашето дете.</translation>
+<translation id="4634575639321169635">Поставете го уредов за работа или за лична употреба</translation>
 <translation id="4634771451598206121">Најави се повторно...</translation>
 <translation id="4635072447747973225">Деинсталирање на Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> не е достапна за гостинските корисници.</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">Најновата верзија на „<ph name="EXTENSION_NAME" />“ е оневозможена бидејќи бара повеќе дозволи.</translation>
 <translation id="5185500136143151980">Нема интернет</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Мени со опции за <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Активирај ја портата</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> сака да преземе повеќе датотеки</translation>
 <translation id="5192062846343383368">Отворете ја апликацијата Family Link за да ги видите поставките за надзор</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Системот не успеа да го утврди моделот или серискиот број на уредот.</translation>
 <translation id="5284445933715251131">Продолжи со преземање</translation>
 <translation id="5285635972691565180">Екран <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Излезната фиока е полна</translation>
 <translation id="5286194356314741248">Скенирање</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Ваши сметки</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Држи го екранот вклучен</translation>
 <translation id="5496587651328244253">Организирај</translation>
 <translation id="5497251278400702716">Оваа датотека</translation>
+<translation id="5498967291577176373">Пишувајте побрзо со внатрешните предлози за вашето име, адресата или телефонскиот број</translation>
 <translation id="5499313591153584299">Оваа датотека може да биде штетна за вашиот компјутер.</translation>
 <translation id="5499453227627332024">Достапна е надградба за вашиот контејнер за Linux. Може да го надградите и подоцна од апликацијата „Поставки“.</translation>
 <translation id="5500709606820808700">Безбедносната проверка беше извршена денеска</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Сертификат на политика за мапирање</translation>
 <translation id="5554489410841842733">Оваа икона ќе биде видлива кога наставката може да дејствува на тековната страница.</translation>
 <translation id="5554720593229208774">Орган за сертификација на е-пошта</translation>
-<translation id="5554931805291741487">Излезната фиока е речиси полна</translation>
 <translation id="5556459405103347317">Повторно вчитај</translation>
 <translation id="5558125320634132440">Сајтов е блокиран затоа што може да има содржини за возрасни</translation>
 <translation id="5558129378926964177">Зумир&amp;ај</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Локација</translation>
 <translation id="56907980372820799">Поврзи податоци</translation>
 <translation id="5691511426247308406">Семејни</translation>
+<translation id="5691581861107245578">Добивајте предлози за емоџија според она што го пишувате</translation>
 <translation id="5691772641933328258">Отпечатокот не е препознаен</translation>
 <translation id="5692183275898619210">Печатењето е завршено</translation>
 <translation id="569425414730375234">Тековна инкогнито сесија: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Сајтов има потреба од повеќе дозволи.</translation>
 <translation id="6125479973208104919">За жал, ќе треба да ја додадете сметката на овој <ph name="DEVICE_TYPE" /> повторно.</translation>
 <translation id="6129691635767514872">Избраните податоци се отстранети од Chrome и синхронизираните уреди. Вашата сметка на Google можеби има други форми од историјата на прелистување, како на пр., пребарувања и активност од другите услуги на Google, на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Вашето дете</translation>
 <translation id="6129938384427316298">Коментар на сертификат на Netscape</translation>
 <translation id="6129953537138746214">Празно место</translation>
 <translation id="6130692320435119637">Додај Wi-Fi</translation>
@@ -4175,6 +4185,7 @@
 <translation id="6178664161104547336">Избери сертификат</translation>
 <translation id="6181431612547969857">Преземањето е блокирано</translation>
 <translation id="6185132558746749656">Локација на уредот</translation>
+<translation id="6195446518998936840">За да поставите родителски контроли, вашето дете мора да има сметка на Google со којашто ќе му помогнете да управува. Може да поставувате ограничувања на времето поминато на уредот, да одобрувате или блокирате веб-сајтови и да правите многу други работи со апликацијата Family Link.</translation>
 <translation id="6195693561221576702">Уредов не може да се постави во офлајн демо-режим.</translation>
 <translation id="6196640612572343990">Блокирај колачиња од трети лица</translation>
 <translation id="6196854373336333322">Наставката „<ph name="EXTENSION_NAME" />“ ја презеде контролата врз поставките за прокси, што значи дека може да менува, прекинува или прислушува сѐ што правите на интернет. Доколку не сте сигурни зошто се случила промената, веројатно не ја сакате.</translation>
@@ -4940,7 +4951,6 @@
 <translation id="7152478047064750137">Екстензијава не бара специјални дозволи</translation>
 <translation id="7154130902455071009">Променете ја почетната страница во: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Постојна фотографија од камера или датотека</translation>
-<translation id="7163766494674803047">Грешка на печатачот</translation>
 <translation id="7165320105431587207">Не успеа да се конфигурира мрежата</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />“ може да чита слики, видео и аудио датотеки на означените локации.</translation>
 <translation id="7167486101654761064">&amp;Секогаш отворај датотеки од овој тип</translation>
@@ -5932,6 +5942,7 @@
 <translation id="8372369524088641025">Погрешен клуч WEP</translation>
 <translation id="8372477600026034341">Дополнителни хостови</translation>
 <translation id="8373652277231415614">Споделени директориуми на Crostini</translation>
+<translation id="8376384591331888629">Вклучувајќи колачиња од трети страни</translation>
 <translation id="8378714024927312812">Управувано од вашата организација</translation>
 <translation id="8379878387931047019">Уредов не го поддржува типот на безбедносен клуч што го бара веб-страницава</translation>
 <translation id="8379991678458444070">Ако ја обележите картичкава, ќе може да се вратите тука набрзина</translation>
@@ -6015,6 +6026,7 @@
 <translation id="8481187309597259238">Потврда на дозволата за USB</translation>
 <translation id="8483248364096924578">IP-адреса</translation>
 <translation id="8487678622945914333">Зумирај</translation>
+<translation id="8489156414266187072">Личните предлози се прикажуваат само на вашата сметка</translation>
 <translation id="8490896350101740396">Следниве апликации на Киоск „<ph name="UPDATED_APPS" />“ се ажурирани. Рестартирајте го уредот за да го завршите процесот на ажурирање.</translation>
 <translation id="8493236660459102203">Микрофон:</translation>
 <translation id="8496717697661868878">Стартувај го приклучокот</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 90bcc13..1453cce 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">സൃഷ്‌ടിച്ചു</translation>
 <translation id="1067291318998134776">Linux (ബീറ്റ)</translation>
 <translation id="1067922213147265141">മറ്റ് Google സേവനങ്ങള്‍‌</translation>
+<translation id="1068961867683064946">നിങ്ങളുടെ കുട്ടിക്കായി ഒരു Google അക്കൗണ്ട് സൃഷ്‌ടിക്കുക</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ മറ്റൊരു പ്രോഗ്രാം, Chrome പ്രവർത്തിക്കുന്ന രീതിയെ മാറ്റിയേക്കാവുന്ന ഒരു വിപുലീകരണം ചേർത്തു.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> സബ്‌പേജ് മടങ്ങുക ബട്ടൺ</translation>
 <translation id="1322046419516468189">നിങ്ങളുടെ <ph name="SAVED_PASSWORDS_STORE" /> എന്നതിൽ സംരക്ഷിച്ച പാസ്‌വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക</translation>
 <translation id="1324106254079708331">ടാർഗറ്റ് ചെയ്തുള്ള ആക്രമണങ്ങളുടെ ഭീഷണി നേരിടുന്ന ഏതൊരാളുടെയും വ്യക്തിപരമായ Google അക്കൗണ്ടുകളെ സംരക്ഷിക്കുന്നു</translation>
+<translation id="1325985428688410772">സ്‌പെയ്‌സ് ചേർക്കുക</translation>
 <translation id="1326317727527857210">നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്നുള്ള ടാബുകൾ ലഭിക്കാൻ, Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="1327074568633507428">Google ക്ലൗഡ് പ്രിന്റിലെ പ്രിന്റർ</translation>
 <translation id="1327272175893960498">Kerberos ടിക്കറ്റുകൾ</translation>
@@ -1079,6 +1081,7 @@
 <translation id="2307462900900812319">നെറ്റ്‌വർക്ക് കോൺഫിഗർ ചെയ്യുക</translation>
 <translation id="230927227160767054">ഈ പേജ് ഒരു സേവന ഹാൻഡ്‌ലർ ഇൻസ്റ്റാൾ ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
 <translation id="2309620859903500144">നിങ്ങളുടെ ചലന സെൻസർ അല്ലെങ്കിൽ പ്രകാശ സെൻസർ ആക്‌സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു.</translation>
+<translation id="2314873619957287124">നിങ്ങളുടെ കുട്ടിയെ പഠിക്കാനും കളിക്കാനും അടുത്തറിയാനും സഹായിക്കുന്നതിന് ഡിജിറ്റൽ അടിസ്ഥാന നിയമങ്ങൾ സജ്ജീകരിക്കുക</translation>
 <translation id="2315414688463285945">Linux ഫയലുകൾ കോൺഫിഗർ ചെയ്യുന്നതിൽ പിശക്. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2315587498123194634"><ph name="DEVICE_NAME" /> എന്നതിലേക്ക് ലിങ്ക് അയയ്ക്കുക</translation>
 <translation id="2316129865977710310">വേണ്ട, നന്ദി</translation>
@@ -1090,6 +1093,7 @@
 <translation id="2322318151094136999">സീരിയൽ പോർട്ടുകൾ ആക്‌സസ് ചെയ്യാൻ സൈറ്റ് താൽപ്പര്യപ്പെടുമ്പോൾ എന്നോട് ചോദിക്കുക (നിർദ്ദേശിച്ചത്)</translation>
 <translation id="2323018538045954000">സംരക്ഷിച്ചിരിക്കുന്ന വൈഫൈ നെറ്റ്‌വർക്കുകൾ</translation>
 <translation id="2325444234681128157">പാസ്‌വേഡ് ഓർക്കുക</translation>
+<translation id="2326160999284776503">നിങ്ങളുടെ കുട്ടിയുടെ Google അക്കൗണ്ട് ഉപയോഗിച്ച് സെെൻ ഇൻ ചെയ്യുക</translation>
 <translation id="2326188115274135041">സ്വയമേവയുള്ള അൺലോക്ക് ഓണാക്കാൻ പിൻ സ്ഥിരീകരിക്കുക</translation>
 <translation id="2326931316514688470">ആപ്പ് &amp;വീണ്ടും ലോഡ് ചെയ്യുക</translation>
 <translation id="2327492829706409234">ആപ്പ് പ്രവർത്തനക്ഷമമാക്കുക</translation>
@@ -1105,7 +1109,6 @@
 <translation id="2336381494582898602">പവർവാഷ്</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> സുരക്ഷിതമായി ഡൗൺലോഡ് ചെയ്യാനാവില്ല</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ജോടിയാക്കാൻ താൽപ്പര്യപ്പെടുന്നു</translation>
-<translation id="2341476639346994688">പ്രിന്റർ പ്രവർത്തനം നിർത്തി</translation>
 <translation id="2342740338116612727">ബുക്ക്‌മാര്‍ക്കുകള്‍ ചേര്‍ത്തു</translation>
 <translation id="2343747224442182863">ഈ ടാബ് ഫോക്കസ് ചെയ്യുക</translation>
 <translation id="2344686470986284227">വെർച്വൽ മെഷീൻ കൺട്രോളർ ആരംഭിക്കുന്നു</translation>
@@ -1149,6 +1152,7 @@
 <translation id="2384436799579181135">ഒരു പിശക് സംഭവിച്ചു. നിങ്ങളുടെ പ്രിന്‍റർ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2387052489799050037">ഹോമിലേക്ക് പോവുക</translation>
 <translation id="2387458720915042159">പ്രോക്‌സി കണക്ഷൻ തരം</translation>
+<translation id="2391082728065870591">ഫീഡ്‌ബാക്ക് റിപ്പോർട്ട് അയയ്‌ക്കുക</translation>
 <translation id="2391419135980381625">സാധാരണ ഫോണ്ട്</translation>
 <translation id="2392163307141705938"><ph name="IDS_SHORT_PRODUCT_NAME" />-നായി നിങ്ങളുടെ രക്ഷിതാവ് സജ്ജീകരിച്ച സമയ പരിധിയിലെത്തി</translation>
 <translation id="2392369802118427583">സജീവമാക്കുക</translation>
@@ -1279,6 +1283,7 @@
 <translation id="2537178555904266562">പാസ്‌വേഡുകൾ സമന്വയിപ്പിക്കുന്നതിൽ പിശക്</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> എന്നതിന് ഇനിപ്പറയുന്ന ഫയലുകളും ഫോൾഡറുകളും കാണാനും എഡിറ്റ് ചെയ്യാനും കഴിയും</translation>
 <translation id="2537927931785713436">വെർച്വൽ മെഷീൻ ചിത്രം പരിശോധിക്കുന്നു</translation>
+<translation id="2538084450874617176"><ph name="DEVICE_TYPE" /> ആരാണ് ഉപയോഗിക്കുന്നത്?</translation>
 <translation id="2538361623464451692">സമന്വയം പ്രവർത്തനരഹിതമാക്കി</translation>
 <translation id="2540449034743108469">വിപുലീകരണ ആക്‌റ്റിവിറ്റികൾ കേൾക്കാൻ "ആരംഭിക്കുക" അമർത്തുക</translation>
 <translation id="2541002089857695151">പൂർണ്ണസ്‌ക്രീൻ കാസ്‌റ്റ് ചെയ്യൽ ഓപ്റ്റിമൈസ് ചെയ്യണോ?</translation>
@@ -2739,6 +2744,7 @@
 <translation id="4364327530094270451">മത്തങ്ങ</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" />, ഒരു വിൻഡോ പങ്കിടുന്നു.</translation>
 <translation id="4364830672918311045">അറിയിപ്പുകൾ പ്രദർശിപ്പിക്കുക</translation>
+<translation id="4368115171699243057">നിങ്ങളുടെ കുട്ടിക്കായി ഈ <ph name="DEVICE_TYPE" /> സജ്ജീകരിക്കുക</translation>
 <translation id="437004882363131692"><ph name="DEVICE_TYPE" /> നുറുങ്ങുകൾ, ഓഫറുകൾ, അപ്‌ഡേറ്റുകൾ എന്നിവ നേടുകയും ഫീഡ്‌ബാക്ക് പങ്കിടുകയും ചെയ്യുക. ഏത് സമയത്തും വരിക്കാരല്ലാതാവുക.</translation>
 <translation id="4370975561335139969">നിങ്ങൾ നൽകിയ ഇമെയിലും പാസ്‌വേഡും പൊരുത്തപ്പെടുന്നില്ല</translation>
 <translation id="4374831787438678295">Linux ഇൻസ്‌റ്റാളർ</translation>
@@ -2899,6 +2905,7 @@
 <translation id="4565377596337484307">പാസ്‌വേഡ് മറയ്ക്കുക</translation>
 <translation id="4565917129334815774">സിസ്‌റ്റം ലോഗുകൾ സംഭരിക്കുക</translation>
 <translation id="456717285308019641">വിവർത്തനം ചെയ്യേണ്ട പേജ് ഭാഷ</translation>
+<translation id="4567533462991917415">സജ്ജീകരിച്ചതിനുശേഷം, നിങ്ങൾക്ക് എപ്പോൾ വേണമെങ്കിലും കൂടുതൽ ആളുകളെ ചേർക്കാം. ഓരോ വ്യക്തിക്കും അവരുടെ അക്കൗണ്ട് വ്യക്തിപരമാക്കാനും ഡാറ്റ സ്വകാര്യമായി സൂക്ഷിക്കാനും കഴിയും.</translation>
 <translation id="4567772783389002344">പദം ചേർക്കുക</translation>
 <translation id="4568025708905928793">ഒരു സുരക്ഷാ കീ അഭ്യർത്ഥിക്കുന്നു</translation>
 <translation id="4568213207643490790">ക്ഷമിക്കണം, ഈ ഉപകരണത്തിൽ Google അക്കൗണ്ടുകൾ അനുവദനീയമല്ല.</translation>
@@ -2950,6 +2957,7 @@
 <translation id="4628762811416793313">Linux കണ്ടെയ്‌നർ സജ്ജീകരണം പൂർത്തിയായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="4633003931260532286">വിപുലീകരണത്തിന് "<ph name="IMPORT_VERSION" />" എന്ന പതിപ്പെങ്കിലുമുള്ള "<ph name="IMPORT_NAME" />" ആവശ്യമാണെങ്കിലും "<ph name="INSTALLED_VERSION" />" പതിപ്പ് മാത്രം ഇൻസ്‌റ്റാൾ ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="4633757335284074492">Google ഡ്രൈവിലേക്ക് ബാക്കപ്പെടുക്കുക. ഏത് സമയത്തും ഡാറ്റ എളുപ്പത്തിൽ പുനഃസ്ഥാപിക്കുകയോ ഉപകരണം മാറുകയോ ചെയ്യുക. ഈ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു. ബാക്കപ്പുകൾ Google-ലേക്ക് അപ്‌ലോഡ് ചെയ്‌ത്, നിങ്ങളുടെ കുട്ടിയുടെ Google അക്കൗണ്ട് പാസ്‌വേഡ് ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യും.</translation>
+<translation id="4634575639321169635">ഔദ്യോഗിക അല്ലെങ്കിൽ വ്യക്തിപരമായ ഉപയോഗത്തിനായി ഈ ഉപകരണം സജ്ജീകരിക്കുക</translation>
 <translation id="4634771451598206121">വീണ്ടും പ്രവേശിക്കുക...</translation>
 <translation id="4635072447747973225">Crostini അൺഇൻസ്റ്റാൾ ചെയ്യുക</translation>
 <translation id="4635398712689569051">അതിഥി ഉപയോക്താക്കൾക്ക്, <ph name="PAGE_NAME" /> ലഭ്യമല്ല.</translation>
@@ -3368,6 +3376,7 @@
 <translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />" എന്നതിന്റെ ഏറ്റവും പുതിയ പതിപ്പിന് കൂടുതൽ അനുമതികൾ ആവശ്യമുള്ളതുകൊണ്ട് അത് പ്രവർത്തനരഹിതമാക്കി.</translation>
 <translation id="5185500136143151980">ഇന്റർനെറ്റ് ഇല്ല</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" /> എന്നതിനുള്ള ഓപ്‌ഷനുകളുടെ മെനു</translation>
 <translation id="5190926251776387065">പോർട്ട് സജീവമാക്കുക</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" />, ഒന്നിലധികം ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു</translation>
 <translation id="5192062846343383368">നിങ്ങളുടെ മേൽനോട്ട ക്രമീകരണം കാണാൻ Family Link ആപ്പ് തുറക്കുക</translation>
@@ -3444,7 +3453,6 @@
 <translation id="5283677936944177147">ക്ഷമിക്കണം! സിസ്റ്റത്തിന് ഉപകരണ മോഡലോ സീരിയൽ നമ്പറോ കണ്ടെത്താനായില്ല.</translation>
 <translation id="5284445933715251131">ഡൗൺലോഡ് ചെയ്യുന്നത് തുടരുക</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> പ്രദർശിപ്പിക്കുക</translation>
-<translation id="5286094561505658635">ഔട്ട്പുട്ട് ഏരിയ നിറഞ്ഞിരിക്കുന്നു</translation>
 <translation id="5286194356314741248">സ്‌കാൻ ചെയ്യുന്നു</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">നിങ്ങളുടെ അക്കൗണ്ടുകൾ</translation>
@@ -3615,6 +3623,7 @@
 <translation id="5495597166260341369">ഡിസ്പ്ലേ ഓണാക്കി നിലനിർത്തുക</translation>
 <translation id="5496587651328244253">ഓര്‍ഗനൈസുചെയ്യുക</translation>
 <translation id="5497251278400702716">ഈ ഫയൽ</translation>
+<translation id="5498967291577176373">നിങ്ങളുടെ പേരോ വിലാസമോ ഫോൺ നമ്പറോ വേഗത്തിൽ എഴുതാൻ ഇൻലൈൻ നിർദ്ദേശങ്ങൾ സഹായിക്കുന്നു</translation>
 <translation id="5499313591153584299">ഈ ഫയൽ നിങ്ങളുടെ കമ്പ്യൂട്ടറിന് ഹാനികരമായേക്കാം.</translation>
 <translation id="5499453227627332024">നിങ്ങളുടെ Linux കണ്ടെയ്‌നറിനുള്ള അപ്ഗ്രേഡ് ലഭ്യമാണ്. പിന്നീട് ക്രമീകരണ ആപ്പിലൂടെയും നിങ്ങൾക്ക് അപ്ഗ്രേഡ് ചെയ്യാം.</translation>
 <translation id="5500709606820808700">സുരക്ഷാ പരിശോധന ഇന്ന് നടത്തി</translation>
@@ -3665,7 +3674,6 @@
 <translation id="5553089923092577885">സര്‍‌ട്ടിഫിക്കറ്റ് നയ മാപ്പിംഗുകള്‍‌</translation>
 <translation id="5554489410841842733">വിപുലീകരണത്തിന് നിലവിലുള്ള പേജില്‍‌ പ്രവര്‍‌ത്തിക്കാന്‍‌ കഴിയുമ്പോള്‍‌, ഈ ഐക്കണ്‍‌ കാണാനാകും.</translation>
 <translation id="5554720593229208774">ഇമെയില്‍ സര്‍ട്ടിഫിക്കേഷന്‍ അതോറിറ്റി</translation>
-<translation id="5554931805291741487">ഔട്ട്പുട്ട് ഏരിയ ഏകദേശം നിറഞ്ഞിരിക്കുന്നു</translation>
 <translation id="5556459405103347317">വീണ്ടും ലോഡ് ചെയ്യുക</translation>
 <translation id="5558125320634132440">ഈ സൈറ്റിൽ മുതിർന്നവർക്കുള്ള ഉള്ളടക്കം അടങ്ങിയിരിക്കാം എന്നതിനാൽ ഇത് ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation>
 <translation id="5558129378926964177">സൂം ഇൻ ചെയ്യുക</translation>
@@ -3773,6 +3781,7 @@
 <translation id="5689516760719285838">ലൊക്കേഷൻ</translation>
 <translation id="56907980372820799">ഡാറ്റ ലിങ്ക് ചെയ്യുക</translation>
 <translation id="5691511426247308406">കുടുംബം</translation>
+<translation id="5691581861107245578">നിങ്ങൾ ടൈപ്പ് ചെയ്യുന്നതിന്റെ അടിസ്ഥാനത്തിൽ ഇമോജി നിർദ്ദേശങ്ങൾ നേടുക</translation>
 <translation id="5691772641933328258">വിരലടയാളം തിരിച്ചറിഞ്ഞില്ല</translation>
 <translation id="5692183275898619210">പ്രിന്റ് ചെയ്യൽ പൂർത്തിയായി</translation>
 <translation id="569425414730375234">നിലവിലെ അദൃശ്യ മോഡ് സെഷൻ: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4133,6 +4142,7 @@
 <translation id="6124698108608891449">ഈ സൈറ്റിന് കൂടുതൽ അനുമതികൾ ആവശ്യമുണ്ട്.</translation>
 <translation id="6125479973208104919">നിർഭാഗ്യവശാൽ ഈ <ph name="DEVICE_TYPE" /> ഉപകരണത്തിൽ വീണ്ടും നിങ്ങളുടെ അക്കൗണ്ട് ചേർക്കേണ്ടതുണ്ട്.</translation>
 <translation id="6129691635767514872">തിരഞ്ഞെടുത്ത ഡാറ്റയെ Chrome-ൽ നിന്നും സമന്വയിപ്പിച്ച ഉപകരണങ്ങളിൽ നിന്നും നീക്കം ചെയ്‌തു. നിങ്ങളുടെ Google അക്കൗണ്ടിന്, <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> എന്നതിൽ, മറ്റ് Google സേവനങ്ങളിൽ നിന്നുള്ള തിരയലുകളും ആക്‌റ്റിവിറ്റിയും എന്നിങ്ങനെ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation>
+<translation id="6129839611163153407">നിങ്ങളുടെ കുട്ടി</translation>
 <translation id="6129938384427316298">നെറ്റ്‌സ്‌കേപ്പ് സര്‍‌ട്ടിഫിക്കറ്റ് അഭിപ്രായം</translation>
 <translation id="6129953537138746214">സ്പെയ്സ്</translation>
 <translation id="6130692320435119637">വൈഫൈ ചേർക്കുക</translation>
@@ -4173,6 +4183,7 @@
 <translation id="6178664161104547336">ഒരു സര്‍ട്ടിഫിക്കറ്റ് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="6181431612547969857">ഡൗൺലോഡ് തടഞ്ഞു</translation>
 <translation id="6185132558746749656">ഉപകരണ ലൊക്കേഷൻ</translation>
+<translation id="6195446518998936840">രക്ഷാകർതൃ നിയന്ത്രണങ്ങൾ സജ്ജീകരിക്കാൻ, മാനേജ് ചെയ്യാൻ നിങ്ങൾ സഹായിക്കുന്ന ഒരു Google അക്കൗണ്ട് നിങ്ങളുടെ കുട്ടിക്ക് ഉണ്ടായിരിക്കണം. Family Link ആപ്പ് ഉപയോഗിച്ച്, നിങ്ങൾക്ക് സ്ക്രീൻ സമയ പരിധി സജ്ജീകരിക്കുക, വെബ്‌സൈറ്റുകൾ അംഗീകരിക്കുകയോ തടയുകയോ ചെയ്യുക, എന്നിവയും മറ്റും ചെയ്യാൻ കഴിയും.</translation>
 <translation id="6195693561221576702">ഈ ഉപകരണം ഓഫ്‌ലൈൻ ഡെമോ മോഡിൽ സജ്ജീകരിക്കാനാവില്ല.</translation>
 <translation id="6196640612572343990">മൂന്നാം കക്ഷി കുക്കികള്‍ ബ്ലോക്കുചെയ്യുക</translation>
 <translation id="6196854373336333322">ഈ "<ph name="EXTENSION_NAME" />" വിപുലീകരണം നിങ്ങളുടെ പ്രോക്‌സി ക്രമീകരണത്തെ നിയന്ത്രിക്കുന്നുണ്ട്, എന്നുവെച്ചാൽ നിങ്ങൾ ഓൺലൈനിൽ ചെയ്യുന്ന എല്ലാ പ്രവർത്തിയിലും മാറ്റം വരുത്താനും തകർക്കാനും രഹസ്യങ്ങൾ ചോർത്താനും കഴിയും. എന്തുകൊണ്ട് ഈ മാറ്റം സംഭവിച്ചത് എന്നതിനെക്കുറിച്ച് നിങ്ങൾക്കുറപ്പില്ലെങ്കിൽ, അത് നിങ്ങൾക്ക് ആവശ്യമില്ലാത്ത കാര്യമായിരിക്കാം.</translation>
@@ -4938,7 +4949,6 @@
 <translation id="7152478047064750137">ഈ വിപുലീകരണത്തിന് പ്രത്യേക അനുമതികളൊന്നും ആവശ്യമില്ല</translation>
 <translation id="7154130902455071009">നിങ്ങളുടെ ആരംഭ പേജ് ഇതായി മാറ്റുക: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">ക്യാമറയിൽ നിന്നോ ഫയലിൽ നിന്നോ ഉള്ള നിലവിലെ ഫോട്ടോ</translation>
-<translation id="7163766494674803047">പ്രിന്റർ ഉപകരണത്തിന് ഒരു പ്രശ്‌നമുണ്ട്</translation>
 <translation id="7165320105431587207">നെറ്റ്‌വർക്ക് കോൺഫിഗർ ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" എന്നതിന് ചെക്ക് ചെയ്‌ത ലൊക്കേഷനുകളിൽ ചിത്രങ്ങളും വീഡിയോകളും ശബ്‌ദ ഫയലുകളും റീഡ് ചെയ്യാനാകും.</translation>
 <translation id="7167486101654761064">&amp;എപ്പോഴും ഈ തരത്തിലുള്ള ഫയലുകള്‍ തുറക്കുക</translation>
@@ -5930,6 +5940,7 @@
 <translation id="8372369524088641025">മോശം WEP കീ</translation>
 <translation id="8372477600026034341">അധിക ഹോസ്‌റ്റുകൾ</translation>
 <translation id="8373652277231415614">Crostini-യിൽ നിന്ന് പങ്കിട്ട ഡയറക്റ്ററികൾ</translation>
+<translation id="8376384591331888629">ഈ സൈറ്റിൽ മൂന്നാം കക്ഷി കുക്കികളെ ഉൾപ്പെടുത്തുന്നു</translation>
 <translation id="8378714024927312812">നിങ്ങളുടെ സ്ഥാപനം മാനേജ് ചെയ്യുന്നത്</translation>
 <translation id="8379878387931047019">ഈ വെബ്സൈറ്റ് അഭ്യർത്ഥിച്ച തരത്തിലുള്ള സുരക്ഷാ കീ ഈ ഉപകരണം പിന്തുണയ്ക്കുന്നില്ല</translation>
 <translation id="8379991678458444070">ഈ ടാബ് ബുക്ക്‌മാർക്ക് ചെയ്‌താൽ വേഗത്തിൽ ഇവിടേക്ക് മടങ്ങിയെത്താൻ കഴിയും</translation>
@@ -6013,6 +6024,7 @@
 <translation id="8481187309597259238">USB അനുമതി സ്ഥിരീകരിക്കുക</translation>
 <translation id="8483248364096924578">IP വിലാസം</translation>
 <translation id="8487678622945914333">സൂം ഇന്‍ ചെയ്യുക</translation>
+<translation id="8489156414266187072">വ്യക്തിപരമായ നിർദ്ദേശങ്ങൾ നിങ്ങളുടെ അക്കൗണ്ടിൽ മാത്രമേ ദൃശ്യമാകൂ</translation>
 <translation id="8490896350101740396">ഇനിപ്പറയുന്ന കിയോ‌സ്‌ക് ആപ്പുകൾ "<ph name="UPDATED_APPS" />" അപ്‌ഡേറ്റ് ചെയ്‌തു. അപ്‌ഡേറ്റ് ചെയ്യൽ പ്രോസസ് പൂർത്തിയാക്കുന്നതിന് ഉപകരണം റീബൂട്ട് ചെയ്യുക.</translation>
 <translation id="8493236660459102203">മൈക്രോഫോണ്‍:</translation>
 <translation id="8496717697661868878">ഈ പ്ലഗിന്‍ പ്രവര്‍ത്തിപ്പിക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 5d5d260a..3a6fc0b9 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -1104,7 +1104,6 @@
 <translation id="2336381494582898602">Үйлдвэрийн тохиргоонд нь буцааж оруулах</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" />-г аюулгүй татах боломжгүй</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> холбогдох хүсэлтэй байна</translation>
-<translation id="2341476639346994688">Хэвлэгч зогссон байна</translation>
 <translation id="2342740338116612727">Хавчуурга нэмсэн</translation>
 <translation id="2343747224442182863">Энэ табын фокусыг тохируулах</translation>
 <translation id="2344686470986284227">Виртуал машины хянагчийг эхлүүлж байна</translation>
@@ -3442,7 +3441,6 @@
 <translation id="5283677936944177147">Уучлаарай! Систем төхөөрөмжийн загвар, эсвэл серийн дугаарыг илрүүлж чадсангүй.</translation>
 <translation id="5284445933715251131">Үргэлжлүүлэн татах</translation>
 <translation id="5285635972691565180">Дэлгэц <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Гаралтын хэсэг дүүрсэн байна</translation>
 <translation id="5286194356314741248">Скан хийж байна</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Таны бүртгэл</translation>
@@ -3663,7 +3661,6 @@
 <translation id="5553089923092577885">Гэрчилгээний бодлогын зураглал</translation>
 <translation id="5554489410841842733">Өргөтгөл нь одоо байгаа хуудсан дээр ажиллаж чадаж байгаа үед энэ дүрс харагдах болно.</translation>
 <translation id="5554720593229208774">Имэйл Certification Authority</translation>
-<translation id="5554931805291741487">Гаралтын хэсэг бараг дүүрсэн байна</translation>
 <translation id="5556459405103347317">Дахин ачаал</translation>
 <translation id="5558125320634132440">Энэ сайт нь насанд хүрэгчдийн контент агуулж болзошгүй тул түүнийг хориглосон</translation>
 <translation id="5558129378926964177">Томруул</translation>
@@ -4934,7 +4931,6 @@
 <translation id="7152478047064750137">Энэ өргөтгөл ямар нэгэн тусгай зөвшөөрөл шаарддаггүй</translation>
 <translation id="7154130902455071009">Өөрийн эхлэх хуудсыг :<ph name="START_PAGE" /> болгож өөрчлөх</translation>
 <translation id="7155171745945906037">Камер эсвэл файлд байгаа зураг</translation>
-<translation id="7163766494674803047">Хэвлэгч төхөөрөмжийн алдаа</translation>
 <translation id="7165320105431587207">Сүлжээг тохируулж чадсангүй</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" нь шалгасан байрлал дахь зураг, видео бичлэг болон дууны файлуудыг уншиж чадна.</translation>
 <translation id="7167486101654761064">&amp; Үргэлж энэ төрлийн файлыг нээх</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index bec6050..1b1af428 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">तयार केले</translation>
 <translation id="1067291318998134776">Linux (बीटा)</translation>
 <translation id="1067922213147265141">इतर Google सेवा</translation>
+<translation id="1068961867683064946">तुमच्या लहान मुलासाठी Google खाते तयार करा</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">तुमच्या कॉंप्युटरवरील दुसर्‍या प्रोग्रामने एक एक्स्टेंशन जोडले जो Chrome ची काम करण्‍याची पद्धत कदाचित बदलू शकतो.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> सबपेजचे मागे जा बटण</translation>
 <translation id="1322046419516468189">सेव्ह केलेले पासवर्ड तुमच्या <ph name="SAVED_PASSWORDS_STORE" /> मध्ये पाहा आणि व्यवस्थापित करा</translation>
 <translation id="1324106254079708331">लक्ष्यित हल्ल्यांचा धोका असलेल्या कोणाच्याही वैयक्तिक Google खात्यांचे संरक्षण करते</translation>
+<translation id="1325985428688410772">स्पेस जोडा</translation>
 <translation id="1326317727527857210">आपल्या इतर डिव्हाइसेसवरील तुमचे टॅब प्राप्त करण्यासाठी, Chrome मध्ये साइन इन करा.</translation>
 <translation id="1327074568633507428">Google क्लाउड प्रिंट वरील प्रिंटर</translation>
 <translation id="1327272175893960498">Kerberos तिकिटे</translation>
@@ -1081,6 +1083,7 @@
 <translation id="2307462900900812319">नेटवर्क कॉन्फिगर करा</translation>
 <translation id="230927227160767054">हे पृष्ठ एक सेवा हँडलर इंस्टॉल करू इच्छिते.</translation>
 <translation id="2309620859903500144">या साइटला तुमचे गती किंवा प्रकाश सेन्सर ॲक्सेस करण्यापासून ब्लॉक केले गेले आहे.</translation>
+<translation id="2314873619957287124">तुमच्या लहान मुलाला शिकण्यास, खेळण्यास आणि एक्सप्लोर करण्यास मदत करण्यासाठी डिजिटल मूलभूत नियम सेट करा</translation>
 <translation id="2315414688463285945">Linux फायलींच्या कॉन्फिगरेशनमध्ये एरर. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="2315587498123194634"><ph name="DEVICE_NAME" /> ला लिंक पाठवा</translation>
 <translation id="2316129865977710310">नाही, नको</translation>
@@ -1092,6 +1095,7 @@
 <translation id="2322318151094136999">साइटला सीरियल पोर्ट अ‍ॅक्सेस करायची असतील तेव्हा विचारा (शिफारस केलेले)</translation>
 <translation id="2323018538045954000">सेव्ह केलेली वाय-फाय नेटवर्क</translation>
 <translation id="2325444234681128157">पासवर्ड लक्षात ठेवा</translation>
+<translation id="2326160999284776503">तुमच्या लहान मुलाचे Google खाते वापरून साइन इन करा</translation>
 <translation id="2326188115274135041">ऑटोमॅटिक अनलॉक सुरू करण्यासाठी पिन निश्चित करा</translation>
 <translation id="2326931316514688470">&amp;अ‍ॅप रीलोड करा</translation>
 <translation id="2327492829706409234">अ‍ॅप सुरू करा</translation>
@@ -1107,7 +1111,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> सुरक्षितपणे डाउनलोड केली जाऊ शकत नाही</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> जोडू इच्छिते</translation>
-<translation id="2341476639346994688">प्रिंटर थांबला आहे</translation>
 <translation id="2342740338116612727">बुकमार्क जोडले</translation>
 <translation id="2343747224442182863">या टॅबवर फोकस करा</translation>
 <translation id="2344686470986284227">व्हर्च्युअल मशीन नियंत्रक सुरू करत आहे</translation>
@@ -1151,6 +1154,7 @@
 <translation id="2384436799579181135">एक एरर आली आहे. कृपया तुमचा प्रिंटर तपासा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="2387052489799050037">होम वर जा</translation>
 <translation id="2387458720915042159">प्रॉक्सी कनेक्शन प्रकार</translation>
+<translation id="2391082728065870591">फीडबॅक अहवाल पाठवा</translation>
 <translation id="2391419135980381625">मानक फॉन्ट</translation>
 <translation id="2392163307141705938">तुमच्या पालकाने <ph name="IDS_SHORT_PRODUCT_NAME" /> साठी सेट केलेली वेळ मर्यादा तुम्ही गाठली आहे.</translation>
 <translation id="2392369802118427583">सक्रिय करा</translation>
@@ -1281,6 +1285,7 @@
 <translation id="2537178555904266562">पासवर्ड सिंक करताना एरर</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> खालील फाइल आणि फोल्डर पाहू आणि संपादित करू शकते</translation>
 <translation id="2537927931785713436">व्हर्च्युअल मशीन इमेज तपासत आहे</translation>
+<translation id="2538084450874617176">हे <ph name="DEVICE_TYPE" /> कोण वापरत आहे?</translation>
 <translation id="2538361623464451692">सिंक बंद केले आहे</translation>
 <translation id="2540449034743108469">एक्स्टेंशन अ‍ॅक्टिव्हिटी ऐकण्यासाठी "सुरू करा" दाबा</translation>
 <translation id="2541002089857695151">फुलस्क्रीन कास्टिंग ऑप्टिमाइझ करायचे?</translation>
@@ -2740,6 +2745,7 @@
 <translation id="4364327530094270451">खरबूज</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> विंडो शेअर करीत आहे.</translation>
 <translation id="4364830672918311045">सूचना डिस्प्ले करा</translation>
+<translation id="4368115171699243057">तुमच्या लहान मुलासाठी हे <ph name="DEVICE_TYPE" /> सेट करा</translation>
 <translation id="437004882363131692"><ph name="DEVICE_TYPE" /> बाबत टिपा, ऑफर व अपडेट मिळवा आणि फीडबॅक शेअर करा. सदस्यत्व कधीही रद्द करा.</translation>
 <translation id="4370975561335139969">तुम्ही एंटर केलेला ईमेल आणि पासवर्ड जुळत नाही</translation>
 <translation id="4374831787438678295">Linux इंस्टॉलर</translation>
@@ -2900,6 +2906,7 @@
 <translation id="4565377596337484307">पासवर्ड लपवा</translation>
 <translation id="4565917129334815774">सिस्टम लॉग स्टोअर करा</translation>
 <translation id="456717285308019641">भाषांतर करण्यासाठीची पेज भाषा</translation>
+<translation id="4567533462991917415">तुम्ही सेट केल्यांनतर केव्हाही अधिक लोकांना जोडू शकता. प्रत्येक व्यक्ती त्यांचे खाते पर्सनलाइझ करू शकते आणि डेटा खाजगी ठेवू शकते.</translation>
 <translation id="4567772783389002344">शब्द जोडा</translation>
 <translation id="4568025708905928793">सिक्युरिटी कीसाठी विनंती केली आहे</translation>
 <translation id="4568213207643490790">क्षमस्व, Google खात्यांना या डिव्हाइसवर अनुमती नाही.</translation>
@@ -2951,6 +2958,7 @@
 <translation id="4628762811416793313">Linux कंटेनर सेटअप पूर्ण झाला नाही. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="4633003931260532286">एक्स्टेंशनला किमान आवृत्ती "<ph name="IMPORT_VERSION" />" सह "<ph name="IMPORT_NAME" />" ची गरज आहे, परंतु केवळ आवृत्ती "<ph name="INSTALLED_VERSION" />" इंस्टॉल केली गेली आहे</translation>
 <translation id="4633757335284074492">Google Drive वर बॅकअप घ्या. डेटा कधीही सहजपणे रिस्टोअर करा किंवा डिव्हाइस स्विच करा. या बॅकअपमध्ये अ‍ॅप डेटा समाविष्ट आहे. बॅकअप Google वर अपलोड केले जातात आणि तुमच्या मुलाचा Google खाते पासवर्ड वापरून एंक्रिप्ट केले जातात.</translation>
+<translation id="4634575639321169635">ऑफिस किंवा वैयक्तिक वापरासाठी हे डिव्हाइस सेट करा</translation>
 <translation id="4634771451598206121">पुन्हा साइन इन करा...</translation>
 <translation id="4635072447747973225">Crostini अनइंस्टॉल करा</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> हे अतिथी वापरकर्त्यांसाठी उपलब्ध नाही.</translation>
@@ -3369,6 +3377,7 @@
 <translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />" ची नवीनतम आवृत्ती अक्षम केली गेली कारण यासाठी अधिक परवानग्या आवश्यक आहेत.</translation>
 <translation id="5185500136143151980">इंटरनेट नाही</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" /> साठी पर्याय मेनू</translation>
 <translation id="5190926251776387065">पोर्ट सुरू करा</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> ला एकाहून अधिक फाइल डाउनलोड करायच्या आहेत</translation>
 <translation id="5192062846343383368">तुमची पर्यवेक्षण सेटिंग्ज पाहण्यासाठी Family Link ॲप उघडा</translation>
@@ -3445,7 +3454,6 @@
 <translation id="5283677936944177147">अरेरे! डिव्हाइस मॉडेल किंवा सिरीअल नंबर निर्धारित करण्‍यात सिस्टम अयशस्वी झाली.</translation>
 <translation id="5284445933715251131">डाउनलोड करायला सुरुवात करा</translation>
 <translation id="5285635972691565180">डिस्‍प्‍ले <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">आउटपुट ट्रे भरला आहे</translation>
 <translation id="5286194356314741248">स्‍कॅन करीत आहे</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">तुमची खाती</translation>
@@ -3616,6 +3624,7 @@
 <translation id="5495597166260341369">डिस्प्ले सुरू ठेवा</translation>
 <translation id="5496587651328244253">संयोजित करा</translation>
 <translation id="5497251278400702716">ही फाइल</translation>
+<translation id="5498967291577176373">तुमचे नाव, पत्ता किंवा फोन नंबरसाठी इनलाइन सूचनांसह जलदपणे लिहा</translation>
 <translation id="5499313591153584299">ही फाइल तुमच्या कॉंप्युटरसाठी हानिकारक ठरू शकते.</translation>
 <translation id="5499453227627332024">तुमच्या Linux कंटेनर साठी अपग्रेड उपलब्ध आहे. सेटिंग्ज अ‍ॅपमधून तुम्ही नंतरदेखील अपग्रेड करू शकता.</translation>
 <translation id="5500709606820808700">सुरक्षा तपासणी आज रन केली गेली</translation>
@@ -3666,7 +3675,6 @@
 <translation id="5553089923092577885">सर्टिफिकेट धोरण मॅपिंग</translation>
 <translation id="5554489410841842733">जेव्हा एक्स्टेंशन वर्तमान पेजवर कार्य करेल तेव्हा हे प्रतीक दृश्यमान होईल.</translation>
 <translation id="5554720593229208774">ईमेल प्रमाणन अधिकृतता</translation>
-<translation id="5554931805291741487">आउटपुट ट्रे जवळजवळ पूर्ण भरला आहे</translation>
 <translation id="5556459405103347317">रीलोड करा</translation>
 <translation id="5558125320634132440">ही साइट ब्लॉक केली गेली आहे कारण तिच्यावर प्रौढांसाठी आशय असू शकतो</translation>
 <translation id="5558129378926964177">झूम &amp;वाढवा</translation>
@@ -3773,6 +3781,7 @@
 <translation id="5689516760719285838">स्थान</translation>
 <translation id="56907980372820799">डेटाची लिंक जोडा</translation>
 <translation id="5691511426247308406">कुटुंब</translation>
+<translation id="5691581861107245578">तुम्ही काय टाइप करत आहात यावर आधारित इमोजी सूचना मिळवा</translation>
 <translation id="5691772641933328258">फिंगरप्रिंट ओळखले नाही</translation>
 <translation id="5692183275898619210">प्रिंट पूर्ण झाले</translation>
 <translation id="569425414730375234">सध्याचे गुप्त सेशन: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4133,6 +4142,7 @@
 <translation id="6124698108608891449">या साइटला आणखी परवानग्यांची आवश्यकता आहे.</translation>
 <translation id="6125479973208104919">दुर्दैवाने, तुम्हाला या <ph name="DEVICE_TYPE" /> वर तुमचे खाते पुन्हा जोडावे लागेल.</translation>
 <translation id="6129691635767514872">निवडलेला डेटा Chrome आणि सिंक केलेल्या डिव्हाइसमधून काढला गेला आहे. तुमच्‍या Google खात्यामध्ये Google च्या इतर सेवांमधील शोध आणि ॲक्टिव्हिटी यासारख्या ब्राउझिंग इतिहासाची इतर स्वरूपे <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर असू शकतात.</translation>
+<translation id="6129839611163153407">तुमचे लहान मूल</translation>
 <translation id="6129938384427316298">Netscape सर्टिफिकेट टिप्पणी</translation>
 <translation id="6129953537138746214">जागा</translation>
 <translation id="6130692320435119637">वाय-फाय जोडा</translation>
@@ -4173,6 +4183,7 @@
 <translation id="6178664161104547336">एक सर्टिफिकेट निवडा</translation>
 <translation id="6181431612547969857">डाउनलोड ब्लॉक केले</translation>
 <translation id="6185132558746749656">डिव्‍हाइस स्‍थान</translation>
+<translation id="6195446518998936840">पालक नियंत्रणे सेट करण्यासाठी, तुमच्या लहान मुलाकडे Google खाते असणे आवश्यक आहे, जे तुम्ही व्यवस्थापित करण्यात मदत कराल. तुम्ही Family Link अ‍ॅपसह स्क्रीन वेळ मर्यादा सेट करू शकता, वेबसाइट मंजूर किंवा ब्लॉक करू शकता आणि आणखी बरेच काही करू शकता.</translation>
 <translation id="6195693561221576702">हे डिव्हाइस ऑफलाइन डेमो मोडमध्ये सेट केले जाऊ शकत नाही.</translation>
 <translation id="6196640612572343990">तृतीय-पक्ष कुकीज अवरोधित करा</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" एक्स्टेंशनने तुमच्या प्रॉक्सी सेटिंग्जचे नियंत्रण घेतले आहे, याचा अर्थ हे तुम्ही ऑनलाइन करता ती कोणतीही गोष्ट बदलू शकते, खंडित करू शकते किंवा चोरून ऐकू शकते. हा बदल का झाला, याबद्दल तुम्ही खात्री नसल्यास, तुम्हाला कदाचित तो नको आहे.</translation>
@@ -4938,7 +4949,6 @@
 <translation id="7152478047064750137">या एक्स्टेंशनला कोणत्याही विशिष्ट परवानग्यांची आवश्यकता नाही</translation>
 <translation id="7154130902455071009">तुमचे प्रारंभ पृष्ठ यावर बदला: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">कॅमेरा किंवा फाईल मधील विद्यमान फोटो</translation>
-<translation id="7163766494674803047">प्रिंटर डिव्हाइसमध्ये समस्या आली</translation>
 <translation id="7165320105431587207">नेटवर्क कॉन्फिगर करण्यात अयशस्वी</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" इमेज, व्हिडिओ आणि चेक केलेल्या स्थानांमधील ध्वनी फाइल वाचू शकते.</translation>
 <translation id="7167486101654761064">&amp;नेहमी या प्रकारच्या फाइल्स उघडा</translation>
@@ -5926,6 +5936,7 @@
 <translation id="8372369524088641025">खराब WEP की</translation>
 <translation id="8372477600026034341">अतिरिक्त होस्ट</translation>
 <translation id="8373652277231415614">Crostini ने शेअर केलेल्या डिरेक्टरी</translation>
+<translation id="8376384591331888629">या साइटवरील तृतीय-पक्ष कुकीच्या समावेशासह</translation>
 <translation id="8378714024927312812">तुमच्या संस्थेकडून व्यवस्थापित केलेले</translation>
 <translation id="8379878387931047019">या वेबसाइटने विनंती केलेल्या सिक्युरिटी की च्या प्रकाराला हे डिव्हाइस सपोर्ट करत नाही</translation>
 <translation id="8379991678458444070">या टॅबला बुकमार्क करून येथे लवकर परत या</translation>
@@ -6009,6 +6020,7 @@
 <translation id="8481187309597259238">USB परवानगीची निश्चिती करा</translation>
 <translation id="8483248364096924578">IP पत्ता</translation>
 <translation id="8487678622945914333">झूम इन करा</translation>
+<translation id="8489156414266187072">वैयक्तिक सूचना फक्त तुमच्या खात्यावर दाखवल्या जातात</translation>
 <translation id="8490896350101740396">खालील कियोस्क अ‍ॅप्स "<ph name="UPDATED_APPS" />" अपडेट करण्यात आले आहेत. कृपया अपडेट प्रक्रिया पूर्ण करण्यासाठी डिव्हाइस रीबूट करा.</translation>
 <translation id="8493236660459102203">मायक्रोफोन:</translation>
 <translation id="8496717697661868878">हे प्लगइन रन करा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index a16fcfc..e1fa113 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> tidak dapat dimuat turun dengan selamat</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> mahu digandingkan</translation>
-<translation id="2341476639346994688">Pencetak dihentikan</translation>
 <translation id="2342740338116612727">Penanda halaman ditambahkan</translation>
 <translation id="2343747224442182863">Fokus pada Tab Ini</translation>
 <translation id="2344686470986284227">Memulakan pengawal mesin maya</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Op! Sistem gagal menentukan model atau nombor siri peranti.</translation>
 <translation id="5284445933715251131">Teruskan Memuat Turun</translation>
 <translation id="5285635972691565180">Paparkan <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Kawasan output sudah penuh</translation>
 <translation id="5286194356314741248">Mengimbas</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Akaun anda</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Pemetaan Dasar Sijil</translation>
 <translation id="5554489410841842733">Ikon ini akan kelihatan apabila sambungan boleh bertindak pada halaman semasa.</translation>
 <translation id="5554720593229208774">Pihak Berkuasa Pensijilan E-mel</translation>
-<translation id="5554931805291741487">Kawasan output hampir penuh</translation>
 <translation id="5556459405103347317">Muat Semula</translation>
 <translation id="5558125320634132440">Tapak ini disekat kerana mungkin mengandungi kandungan matang</translation>
 <translation id="5558129378926964177">Zum &amp;Masuk</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Sambungan ini tidak memerlukan kebenaran khas</translation>
 <translation id="7154130902455071009">Tukar halaman permulaan anda kepada: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto sedia ada daripada kamera atau fail</translation>
-<translation id="7163766494674803047">Ralat peranti cetak</translation>
 <translation id="7165320105431587207">Gagal mengkonfigurasi rangkaian</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" boleh membaca fail imej, video dan bunyi di lokasi yang ditandai.</translation>
 <translation id="7167486101654761064">&amp;Sentiasa buka fail jenis ini</translation>
@@ -6511,7 +6507,7 @@
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> disekat oleh dasar perusahaan</translation>
 <translation id="9088446193279799727">Tidak dapat mengkonfigurasi Linux. Sambung ke Internet dan cuba lagi.</translation>
 <translation id="9088917181875854783">Sila sahkan bahawa kekunci laluan ini dipaparkan pada "<ph name="DEVICE_NAME" />":</translation>
-<translation id="9093429538970210897">Menyandarkan fail adalah disyorkan sekiranya peningkatan tidak dapat diselesaikan. Tindakan memulakan peningkatan akan menyebabkan Linux (Beta) dimatikan. Sila simpan fail yang terbuka sebelum meneruskan.</translation>
+<translation id="9093429538970210897">Anda disyorkan untuk menyandarkan fail sekiranya peningkatan tidak dapat diselesaikan. Tindakan memulakan peningkatan akan menyebabkan Linux (Beta) dimatikan. Sila simpan fail yang terbuka sebelum meneruskan.</translation>
 <translation id="9094033019050270033">Kemaskinikan kata laluan</translation>
 <translation id="9094038138851891550">Nama pengguna tidak sah</translation>
 <translation id="9094982973264386462">Alih keluar</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 816335d..5268b2c5 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">ပြုလုပ်ပြီးပါပြီ</translation>
 <translation id="1067291318998134776">Linux (စမ်းသပ်ဆော့ဖ်ဝဲ)</translation>
 <translation id="1067922213147265141">အခြား Google ဝန်ဆောင်မှုများ</translation>
+<translation id="1068961867683064946">သင့်ကလေးအတွက် Google အကောင့်ဖွင့်ပါ</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">သင့်ကွန်ပျူတာသို့ Chrome အလုပ်လုပ်ပုံပြောင်းလဲစေမည့် ပရိုဂရမ်အဆက်တစ်ခုကို အခြားပရိုဂရမ်တစ်ခုမှ ပေါင်းတည့်ခဲ့ပါသည်။
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> အတွင်းပိုင်းစာမျက်နှာ နောက်ပြန်ခလုတ်</translation>
 <translation id="1322046419516468189">သိမ်းဆည်းထားသည့် စကားဝှက်များကို သင်၏ <ph name="SAVED_PASSWORDS_STORE" /> တွင် ကြည့်ရှုစီမံပါ</translation>
 <translation id="1324106254079708331">ပစ်မှတ်ထား တိုက်ခိုက်မှုကို ခံနေရသူများ၏ ကိုယ်ပိုင်သုံး Google အကောင့်များကို ကာကွယ်ပေးသည်</translation>
+<translation id="1325985428688410772">Space ထည့်ပါ</translation>
 <translation id="1326317727527857210">အခြားစက်ပစ္စည်းများမှ တဘ်များကို အသုံးပြုရန် Chrome သို့လက်မှတ်ထိုးဝင်ပါ။</translation>
 <translation id="1327074568633507428">Google Cloud ပရင့် ပေါ်ရှိ ပရင်တာ</translation>
 <translation id="1327272175893960498">Kerberos လက်မှတ်များ</translation>
@@ -1083,6 +1085,7 @@
 <translation id="2307462900900812319">ကွန်ရက် ပြုပြင်ရန်</translation>
 <translation id="230927227160767054">ဤစာမျက်နှာသည် ဝန်ဆောင်မှု ကိုင်တွယ်ကိရိယာအား ထည့်သွင်းလိုသည်။</translation>
 <translation id="2309620859903500144">သင်၏လှုပ်ရှားမှု သို့မဟုတ် အလင်းရောင် အာရုံခံကိရိယာ အသုံးပြုခွင့်ကို ဤဝဘ်ဆိုက်အတွက် ပိတ်ထားပါသည်။</translation>
+<translation id="2314873619957287124">သင့်ကလေး လေ့လာခြင်း၊ ကစားရာခြင်းနှင့် စူးစမ်းရှာဖွေခြင်းတို့တွင် ကူညီရန် အခြေခံဒစ်ဂျစ်တယ် စည်းမျဉ်းများ သတ်မှတ်ပါ</translation>
 <translation id="2315414688463285945">Linux ဖိုင်များကို စီစဉ်သတ်မှတ်ရာတွင် အမှားအယွင်းရှိနေသည်။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="2315587498123194634">လင့်ခ်ကို <ph name="DEVICE_NAME" /> သို့ ပို့ရန်</translation>
 <translation id="2316129865977710310">မလိုပါ</translation>
@@ -1094,6 +1097,7 @@
 <translation id="2322318151094136999">ဝဘ်ဆိုက်က အစဉ်လိုက်ပို့တ်များကို အသုံးပြုလိုသည့်အခါ ခွင့်တောင်းရန် (အကြံပြုထားသည်)</translation>
 <translation id="2323018538045954000">သိမ်းထားသော Wi-Fi ကွန်ရက်များ</translation>
 <translation id="2325444234681128157">စကားဝှက်ကို မှတ်ထားရန်</translation>
+<translation id="2326160999284776503">သင့်ကလေး၏ 'Google အကောင့်' ဖြင့် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="2326188115274135041">အလိုအလျောက်ဖွင့်ရန်ကို ဖွင့်ရန် ပင်နံပါတ်ကို အတည်ပြုပါ</translation>
 <translation id="2326931316514688470">အက်ပ်ကို ပြန်စရန်</translation>
 <translation id="2327492829706409234">အက်ပ်ကို ဖွင့်ထားရန်</translation>
@@ -1109,7 +1113,6 @@
 <translation id="2336381494582898602">ပါဝါဆေးကြောခြင်း</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ကို လုံခြုံစွာ ဒေါင်းလုဒ်လုပ်၍မရပါ</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> သည် တွဲချိတ်လိုပါသည်</translation>
-<translation id="2341476639346994688">ပုံနှိပ်စက် ရပ်သွားသည်</translation>
 <translation id="2342740338116612727">ဝဘ်လိပ်စာများကို ထည့်ပြီးပါပြီ</translation>
 <translation id="2343747224442182863">ဤတဘ်ကို အထူးဖော်ပြပါ</translation>
 <translation id="2344686470986284227">ပကတိအသွင်စက် ထိန်းချုပ်စနစ် စတင်နေသည်</translation>
@@ -1153,6 +1156,7 @@
 <translation id="2384436799579181135">အမှားအယွင်း ရှိနေသည်။ သင့်ပုံနှိပ်စက်ကိုစစ်ဆေးပြီး ထပ်လုပ်ကြည့်ပါ။</translation>
 <translation id="2387052489799050037">'ပင်မ စာမျက်နှာ' သို့သွားခြင်း</translation>
 <translation id="2387458720915042159">ပရောက်စီ ချိတ်ဆက်မှု အမျိုးအစား</translation>
+<translation id="2391082728065870591">တုံ့ပြန်ချက် အစီရင်ခံစာ ပို့ရန်</translation>
 <translation id="2391419135980381625">စံ​ေ</translation>
 <translation id="2392163307141705938"><ph name="IDS_SHORT_PRODUCT_NAME" /> အတွက် သင့်မိဘသတ်မှတ်ထားသော အချိန်ကန့်သတ်ချက် ပြည့်သွားပြီ။</translation>
 <translation id="2392369802118427583">စသုံးရန်</translation>
@@ -1283,6 +1287,7 @@
 <translation id="2537178555904266562">စကားဝှက်များကို စင့်ခ်လုပ်ရာတွင် အမှားအယွင်းရှိနေသည်</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> က အောက်ပါဖိုင်နှင့် ဖိုင်တွဲများကို ကြည့်ရှု တည်းဖြတ်နိုင်သည်</translation>
 <translation id="2537927931785713436">ပကတိအသွင်စက်ပုံ စစ်ဆေးနေသည်</translation>
+<translation id="2538084450874617176">ဤ <ph name="DEVICE_TYPE" /> ကို ဘယ်သူသုံးနေသလဲ။</translation>
 <translation id="2538361623464451692">စင့်ခ်လုပ်ခြင်းကို ပိတ်ထားသည်</translation>
 <translation id="2540449034743108469">နောက်ဆက်တွဲ လုပ်ဆောင်ချက်များ နားဆင်ရန်အတွက် "စတင်ရန်" ကိုနှိပ်ပါ</translation>
 <translation id="2541002089857695151">မျက်နှာပြင်အပြည့် ကာစ်လုပ်ခြင်းကို ပိုကောင်းအောင်လုပ်လိုသလား။</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">ဖရဲသီး</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> သည်ဝင်းဒိုးတစ်ခုကို မျှဝေနေပါသည်။</translation>
 <translation id="4364830672918311045">ပြသမှု သတိပေးချက်များ</translation>
+<translation id="4368115171699243057">ဤ <ph name="DEVICE_TYPE" /> ကို သင့်ကလေးအတွက် စနစ်ထည့်သွင်းရန်</translation>
 <translation id="437004882363131692"><ph name="DEVICE_TYPE" /> အကြံပြုချက်၊ ကမ်းလှမ်းချက်နှင့် အပ်ဒိတ်များ ရယူပြီး အကြံပြုချက်ကို မျှဝေပါ။ မှာယူမှုကို အချိန်မရွေး ရပ်ဆိုင်းနိုင်သည်။</translation>
 <translation id="4370975561335139969">အီးမေးလိပ်စာနှင့် သင်ရိုက်ထည့်သော စကားဝှက် ကိုက်ညီမှု မရှိပါ</translation>
 <translation id="4374831787438678295">Linux ထည့်သွင်းကိရိယာ</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">စကားဝှက်ကို ဖျောက်ရန်</translation>
 <translation id="4565917129334815774">စနစ် မှတ်တမ်းများ သိမ်းရန်</translation>
 <translation id="456717285308019641">ပြန်ဆိုရမည့် စာမျက်နှာ ဘာသာစကား</translation>
+<translation id="4567533462991917415">စနစ်ထည့်သွင်းပြီးနောက်တွင် နောက်ထပ်လူများကို အမြဲထည့်သွင်းနိုင်သည်။ လူတစ်ဦးချင်းစီက သူတို့၏အကောင့်ကို ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်နိုင်ပြီး ဒေတာကို သီးသန့်သိမ်းနိုင်သည်။</translation>
 <translation id="4567772783389002344">စကားလုံးထည့်ရန်</translation>
 <translation id="4568025708905928793">လုံခြုံရေးကီးကို တောင်းဆိုထားသည်</translation>
 <translation id="4568213207643490790">ဝမ်းနည်းပါသည်။ ဤစက်ပစ္စည်းပေါ်တွင် Google အကောင့်များကို ခွင့်ပြုမထားပါ။</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Linux ကွန်တိန်နာ စနစ်ထည့်သွင်းခြင်း ပြီးမြောက်မှုမရှိပါ။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="4633003931260532286">နောက်ဆက်တွဲသည် အနိမ့်ဆုံးဗားရှင်း "<ph name="IMPORT_VERSION" />" ရှိသည့် "<ph name="IMPORT_NAME" />" ကို လိုအပ်သော်လည်း ဗားရှင်း "<ph name="INSTALLED_VERSION" />" ကိုသာ ထည့်သွင်းထားသည်</translation>
 <translation id="4633757335284074492">Google Drive သို့ မိတ္တူကူးရန်။ ဒေတာများကို အလွယ်တကူ ပြန်ယူပါ သို့မဟုတ် စက်ပစ္စည်းကို အချိန်မရွေး ပြောင်းပါ။ ဤမိတ္တူတွင် အက်ပ်ဒေတာများ ပါဝင်သည်။ မိတ္တူများကို Google သို့ အပ်လုဒ်လုပ်ပြီး သင့်ကလေး၏ Google အကောင့်စကားဝှက်သုံး၍ အသွင်ဝှက်ထားပါသည်။</translation>
+<translation id="4634575639321169635">အလုပ် သို့မဟုတ် ကိုယ်ရေးကိုယ်တာအတွက် ဤစက်ကို စနစ်ထည့်သွင်းရန်</translation>
 <translation id="4634771451598206121">ထပ်မံ ဝင်ရောက်ပါ...</translation>
 <translation id="4635072447747973225">Crostini ဖယ်ရှားရန်</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> သည် 'ဧည့်သည်' အသုံးပြုသူများအတွက် မရနိုင်ပါ။</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">နောက်ဆုံး ဗားရှင်းအတွက် ခွင့်ပြုချက်များ နောက်ထပ် လိုအပ်သေး၍  "<ph name="EXTENSION_NAME" />" ကို ပိတ်ခဲ့ရသည်။</translation>
 <translation id="5185500136143151980">အင်တာနက် မရှိပါ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" /> အတွက် မီနူး ရွေးချယ်စရာများ</translation>
 <translation id="5190926251776387065">ပို့တ်စဖွင့်ရန်</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> က ဖိုင်အများအပြားကို ​ဒေါင်းလုဒ်လုပ်လိုသည်</translation>
 <translation id="5192062846343383368">သင်၏ကြီးကြပ်မှုဆက်တင်များ ကြည့်ရန် Family Link အက်ပ် ဖွင့်ပါ</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">သည်းခံပါ။ စနစ်သည် ကိရိယာအမျိုးအစား သို့မဟုတ် စက်မှတ်ပုံတင်နံပါတ်ကို ဆုံးဖြတ်၍ မရပါ။</translation>
 <translation id="5284445933715251131">ဒေါင်းလုဒ် ဆက်လုပ်ရန်</translation>
 <translation id="5285635972691565180">မျက်နှာပြင် ပြသမှု <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">စာရွက်ထွက်သည့်နေရာ ပြည့်နေသည်</translation>
 <translation id="5286194356314741248">ရှာဖွေနေသည်</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">သင်၏ အကောင့်များ</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">မျက်နှာပြင်ပြသမှုကို ဖွင့်ထားရန်</translation>
 <translation id="5496587651328244253">စည်းရုံးရန်</translation>
 <translation id="5497251278400702716">ဤဖိုင်</translation>
+<translation id="5498967291577176373">သင့်အမည်၊ လိပ်စာ သို့မဟုတ် ဖုန်းနံပါတ်အတွက် တိုက်ရိုက်အကြံပြုချက်များနှင့်အတူ စာအမြန်ရိုက်ပါ</translation>
 <translation id="5499313591153584299">ဒီဖိုင်မှာ သင်၏ ကွန်ပျူတာအတွက် အန္တရာယ် ရှိနိုင်သည်။</translation>
 <translation id="5499453227627332024">သင်၏ Linux ကွန်တိန်နာအတွက် အဆင့်မြှင့်မှုတစ်ခု ရရှိပါပြီ။ နောက်ပိုင်းတွင် ၎င်းကို 'ဆက်တင်များ' အက်ပ်၌ အချိန်မရွေး အဆင့်မြှင့်နိုင်သည်။</translation>
 <translation id="5500709606820808700">ယနေ့ လုံခြုံရေး စစ်ဆေးထားသည်</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">လက်မှတ် မူဝါဒ မြေပုံချပေးခြင်း</translation>
 <translation id="5554489410841842733">တိုးချဲ့မှုက လက်ရှိ စာမျက်နှာမှာ လုပ်ဆောင်ချိန်တွင် ဒီအိုင်ကွန်ကို မြင်ရမည်။</translation>
 <translation id="5554720593229208774">လက်မှတ်ထုတ်ပေးရေး အာဏာပိုင်ထံ အီးမေးလ်ပို့ရန်</translation>
-<translation id="5554931805291741487">စာရွက်ထွက်သည့်နေရာ ပြည့်လုနီးပြီ</translation>
 <translation id="5556459405103347317">ပြန်တင်ရန်</translation>
 <translation id="5558125320634132440">ဤဝဘ်ဆိုက်တွင် လိင်ပိုင်းဆိုင်ရာ အကြောင်းအရာပါဝင်နိုင်သည့်အတွက် ပိတ်ထားသည်</translation>
 <translation id="5558129378926964177">ဇူးမ်ဆွဲရန်</translation>
@@ -3777,6 +3785,7 @@
 <translation id="5689516760719285838">တည်နေရာ</translation>
 <translation id="56907980372820799">လင့် ဒေတာ</translation>
 <translation id="5691511426247308406">မိသားစု</translation>
+<translation id="5691581861107245578">သင်စာရိုက်နေသည့်အပေါ်အခြေခံ၍ အီမိုဂျီအကြံပြုချက်များ ရယူပါ</translation>
 <translation id="5691772641933328258">လက်ဗွေကို မသိပါ</translation>
 <translation id="5692183275898619210">ပုံနှိပ်ထုတ်ယူပြီးပြီ</translation>
 <translation id="569425414730375234">လက်ရှိ ရုပ်ဖျက်စက်ရှင်- <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4134,6 +4143,7 @@
 <translation id="6124698108608891449">ဤဝဘ်ဆိုက်အတွက် နောက်ထပ်ခွင့်ပြုချက်များ လိုအပ်သည်။</translation>
 <translation id="6125479973208104919">ဝမ်းနည်းပါသည်။ သင်၏အကောင့်ကို ဤ <ph name="DEVICE_TYPE" /> သို့ ထပ်မံထည့်သွင်းရပါမည်။</translation>
 <translation id="6129691635767514872">ရွေးထားသည့် ဒေတာများကို Chrome နှင့်စင့်ခ်လုပ်ထားသည့် စက်ပစ္စည်းများပေါ်မှနေ၍ ဖယ်ရှားလိုက်ပါပြီ။ သင့် Google အကောင့်တွင် <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ၌ အခြား Google ဝန်ဆောင်မှုများ၏ ရှာဖွေမှုများနှင့် လုပ်ဆောင်ချက်ကဲ့သို့ အင်တာနက်အသုံးပြုမှု မှတ်တမ်းများ ရှိနိုင်ပါသည်။</translation>
+<translation id="6129839611163153407">သင့်ကလေး</translation>
 <translation id="6129938384427316298">Netscape လက်မှတ် သုံးသပ်ချက်</translation>
 <translation id="6129953537138746214">နေရာခြား</translation>
 <translation id="6130692320435119637">Wi-Fi ထည့်ရန်</translation>
@@ -4174,6 +4184,7 @@
 <translation id="6178664161104547336">လက်မှတ်တစ်ခု ရွေးရန်</translation>
 <translation id="6181431612547969857">ဒေါင်းလုဒ် ပိတ်ဆို့ထား</translation>
 <translation id="6185132558746749656">စက်ကိရိယာ တည်နေရာ</translation>
+<translation id="6195446518998936840">မိဘအထိန်းအချုပ်များကို စနစ်ထည့်သွင်းရန် သင့်ကလေးတွင် သင်ကူညီစီမံပေးရမည့် Google Account တစ်ခု ရှိရမည်။ Family Link အက်ပ်ဖြင့် အသုံးပြုချိန်ကန့်သတ်ချက်များကို သတ်မှတ်နိုင်သည်၊ ဝဘ်ဆိုက်များကို အတည်ပြု သို့မဟုတ် ပိတ်နိုင်ပြီး အခြားအရာများကို ပြုလုပ်နိုင်သည်။</translation>
 <translation id="6195693561221576702">ဤစက်ပစ္စည်းကို အော့ဖ်လိုင်းသရုပ်ပြမုဒ်အဖြစ် စနစ်ထည့်သွင်း၍မရပါ။</translation>
 <translation id="6196640612572343990">ပြင်ပကုမ္ပဏီကွတ်ကီးများကို ပိတ်ဆို့မည်</translation>
 <translation id="6196854373336333322">တိုးချဲ့လိုင်း "<ph name="EXTENSION_NAME" />" သည် သင့် ပရောက်စီ ဆက်တင်များအား ထိန်းချုပ်ထားသည်၊ ဆိုလိုသည်မှာ ၎င်းမှ အွန်လိုင်းတွင် သင်ပြုလုပ်သည်များအား ပြင်ဆင်နိုင်၊ ဖောက်ဖျက်နိုင်၊ သို့မဟုတ် ချောင်းနားထောင်နိုင်သည်။ ဤအပြောင်းအလဲဖြစ်ရခြင်းအကြောင်းရင်းအား သင် သေချာမသိပါက၊ သင် ၎င်းအား လိုအပ်မည် မထင်ပါ။</translation>
@@ -4938,7 +4949,6 @@
 <translation id="7152478047064750137">ဤနောက်ဆက်တွဲသည် အထူးခွင့်ပြုချက်များ မလိုအပ်ပါ</translation>
 <translation id="7154130902455071009">သင်၏ စတင်မှု စာမျက်နှာကို ...<ph name="START_PAGE" />သို့ ပြောင်းပါ</translation>
 <translation id="7155171745945906037">ကင်မရာ သို့မဟုတ် ဖိုင်မှ လက်ရှိပုံ</translation>
-<translation id="7163766494674803047">ပုံနှိပ်စက် အမှား</translation>
 <translation id="7165320105431587207">ကွန်ရက်ပြုပြင်ရန် မအောင်မြင်ပါ</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" သည် ပုံများ၊ ဗီဒီယို၊ နှင့်အသံဖိုင်များကို အမှန်ခြစ်ထားသည့် တည်နေရာများတွင် ဖတ်နိုင်သည်။</translation>
 <translation id="7167486101654761064">&amp;ဒီပုံစံ ဖိုင်များကို အမြဲတမ်း ဖွင့်ရန်</translation>
@@ -5927,6 +5937,7 @@
 <translation id="8372369524088641025">WEP သော့ မကောင်းပါ</translation>
 <translation id="8372477600026034341">အပို ဆာဗာပင်ရင်းများ</translation>
 <translation id="8373652277231415614">Crostini မျှဝေထားသော ဖိုင်လမ်းညွှန်များ</translation>
+<translation id="8376384591331888629">ဤဝဘ်ဆိုက်ရှိ ပြင်ပကုမ္ပဏီကွတ်ကီးများ အပါအဝင်</translation>
 <translation id="8378714024927312812">သင်၏ 'အဖွဲ့အစည်း' က စီမံခန့်ခွဲထားသည်</translation>
 <translation id="8379878387931047019">ဤစက်ပစ္စည်းတွင် ဤဝဘ်ဆိုက်က တောင်းဆိုထားသော လုံခြုံရေးကီး အမျိုးအစားကို သုံး၍မရပါ</translation>
 <translation id="8379991678458444070">ဤတဘ်၏ လိပ်စာကို မှတ်ထားခြင်းဖြင့် အမြန်ပြန်ဖွင့်နိုင်သည်</translation>
@@ -6010,6 +6021,7 @@
 <translation id="8481187309597259238">USB ခွင့်ပြုချက်ကို အတည်ပြုပါ</translation>
 <translation id="8483248364096924578">အိုင်ပီလိပ်စာ</translation>
 <translation id="8487678622945914333">ဇူးမ်ဆွဲရန်</translation>
+<translation id="8489156414266187072">ပုဂ္ဂိုလ်ရေးသီးသန့် အကြံပြုချက်များကို သင့်အကောင့်တွင်သာ ပြသသည်</translation>
 <translation id="8490896350101740396">အောက်ပါ kiosk အက်ပ်များကို "<ph name="UPDATED_APPS" />" မွမ်းမံခဲ့သည်။ ကျေးဇူးပြုပြီး မွမ်းမံရေး ဖြစ်စဉ်ကို ပြီးဆုံးစေရန် ကိရိယာကို ပြန်ဖွင့်ပါ။</translation>
 <translation id="8493236660459102203">မိုက်ခရိုဖုန်း:</translation>
 <translation id="8496717697661868878">ဤပလက်ဂင်အား သုံးရန်</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index f59a82b..a21ba20e 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -1104,7 +1104,6 @@
 <translation id="2336381494582898602">पावरवास</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> सुरक्षित रूपमा डाउनलोड गर्न सकिँदैन</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> जोडा बनाउन चाहन्छ</translation>
-<translation id="2341476639346994688">प्रिन्टर रोकिएको छ</translation>
 <translation id="2342740338116612727">पुस्तक चिन्हहरू थपिए</translation>
 <translation id="2343747224442182863">यो ट्याबमा केन्द्रित गर्नुहोस्</translation>
 <translation id="2344686470986284227">भर्चुअल मेसिन कन्ट्रोलर सुरु हुँदै छ</translation>
@@ -3444,7 +3443,6 @@
 <translation id="5283677936944177147">हत्तेरिका! प्रणालीले यन्त्रको मोडल वा क्रम सङ्ख्या निर्धारण गर्न सकेन।</translation>
 <translation id="5284445933715251131">डाउनलोड जारी राख्नुहोस्</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> देखाउनुहोस्</translation>
-<translation id="5286094561505658635">प्रिन्टरको ट्रे भरिएको छ</translation>
 <translation id="5286194356314741248">स्क्यान गर्दै</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">तपाइँका खाताहरू</translation>
@@ -3665,7 +3663,6 @@
 <translation id="5553089923092577885">प्रमाणपत्र नीति मानचित्रहरू</translation>
 <translation id="5554489410841842733">यो प्रतिमा जब देखा पर्छ जब विस्तारले हालको पृष्ठमा काम गर्न सक्दैन।</translation>
 <translation id="5554720593229208774">इमेल प्रमाणीकरण प्राधिकरण</translation>
-<translation id="5554931805291741487">प्रिन्टरको ट्रे भरिनै लागेको छ</translation>
 <translation id="5556459405103347317">पुन: लोड गर्नुहोस्</translation>
 <translation id="5558125320634132440">यस साइटमा वयस्क सामग्री समावेश हुन सक्ने भएकाले यसलाई रोक लगाइएको छ</translation>
 <translation id="5558129378926964177">जुम &amp;इन</translation>
@@ -4935,7 +4932,6 @@
 <translation id="7152478047064750137">यस विस्तारलाई कुनै विशेष अनुमति चाहिँदैन</translation>
 <translation id="7154130902455071009">आफ्नो सुरुवात पृष्ठलाई यसमा परिवर्तन गर्नुहोस्: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">क्यामेरा वा फाइलको विद्यमान तस्बिर</translation>
-<translation id="7163766494674803047">प्रिन्टरसम्बन्धी त्रुटि</translation>
 <translation id="7165320105431587207">नेटवर्क कन्फिगर गर्न असफल</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" ले चेक गरिएको स्थानहरूमा छविहरू, भिडियो, र आवाज पढ्न सक्छ।</translation>
 <translation id="7167486101654761064">यस किसिमको फाइलहरू &amp;सधैं खोल्नुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 57ca47a..cb9d1302 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Gemaakt</translation>
 <translation id="1067291318998134776">Linux (bèta)</translation>
 <translation id="1067922213147265141">Andere Google-services</translation>
+<translation id="1068961867683064946">Een Google-account voor je kind maken</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Een ander programma op je computer heeft een extensie toegevoegd die de manier kan wijzigen waarop Chrome werkt.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Terugknop van subpagina <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Bekijk en beheer opgeslagen wachtwoorden in je <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Beschermt de persoonlijke Google-accounts van iedereen die risico loopt op gerichte aanvallen</translation>
+<translation id="1325985428688410772">Ruimte toevoegen</translation>
 <translation id="1326317727527857210">Log in bij Chrome om de tabbladen van je andere apparaten te bekijken.</translation>
 <translation id="1327074568633507428">Printer op Google Cloudprinter</translation>
 <translation id="1327272175893960498">Kerberos-tickets</translation>
@@ -410,7 +412,7 @@
 <translation id="1500297251995790841">Onbekend apparaat [<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />]</translation>
 <translation id="1503394326855300303">Dit eigenaarsaccount is het eerste account waarop moet worden ingelogd wanneer meerdere inlogsessies worden uitgevoerd.</translation>
 <translation id="150411034776756821"><ph name="SITE" /> verwijderen</translation>
-<translation id="1504311855864906891">Ondertiteling voor je media krijgen</translation>
+<translation id="1504311855864906891">Ondertiteling voor je media</translation>
 <translation id="1504551620756424144">Gedeelde mappen zijn beschikbaar in Windows in <ph name="BASE_DIR" />.</translation>
 <translation id="1506061864768559482">Zoekmachine</translation>
 <translation id="1507170440449692343">Deze pagina heeft geen toegang tot je camera.</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Netwerk configureren</translation>
 <translation id="230927227160767054">Deze pagina wil een servicehandler installeren.</translation>
 <translation id="2309620859903500144">Deze site heeft geen toegang tot je bewegings- of lichtsensoren.</translation>
+<translation id="2314873619957287124">Stel digitale huisregels in, zodat je kind kan leren, spelen en ontdekken</translation>
 <translation id="2315414688463285945">Fout bij het configureren van Linux-bestanden. Probeer het opnieuw.</translation>
 <translation id="2315587498123194634">Link verzenden naar <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nee, bedankt</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Goedkeuring vragen wanneer een site toegang wil tot seriële poorten (aanbevolen)</translation>
 <translation id="2323018538045954000">Opgeslagen wifi-netwerken</translation>
 <translation id="2325444234681128157">Wachtwoord onthouden</translation>
+<translation id="2326160999284776503">Inloggen met het Google-account van je kind</translation>
 <translation id="2326188115274135041">Bevestig je pincode om automatisch ontgrendelen in te schakelen</translation>
 <translation id="2326931316514688470">App opnieuw &amp;laden</translation>
 <translation id="2327492829706409234">App inschakelen</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> kan niet beveiligd worden gedownload</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> wil koppelen</translation>
-<translation id="2341476639346994688">Printer is gestopt</translation>
 <translation id="2342740338116612727">Bookmarks toegevoegd</translation>
 <translation id="2343747224442182863">Focus op dit tabblad plaatsen</translation>
 <translation id="2344686470986284227">De controller voor de virtuele machine wordt gestart</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Er is een fout opgetreden. Controleer je printer en probeer het opnieuw.</translation>
 <translation id="2387052489799050037">Naar het startscherm</translation>
 <translation id="2387458720915042159">Proxyverbindingstype</translation>
+<translation id="2391082728065870591">Feedbackrapport sturen</translation>
 <translation id="2391419135980381625">Standaard lettertype</translation>
 <translation id="2392163307141705938">Je hebt de tijdslimiet bereikt die je ouder heeft ingesteld voor <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Activeren</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Fout bij synchroniseren van wachtwoorden</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> kan de volgende bestanden en mappen bekijken en bewerken</translation>
 <translation id="2537927931785713436">De image van de virtuele machine wordt gecontroleerd</translation>
+<translation id="2538084450874617176">Wie gebruikt deze <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Synchroniseren uitgeschakeld</translation>
 <translation id="2540449034743108469">Druk op Starten om extensie-activiteit te beluisteren</translation>
 <translation id="2541002089857695151">Casten op volledig scherm optimaliseren?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Meloen</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> deelt een venster.</translation>
 <translation id="4364830672918311045">Meldingen weergeven</translation>
+<translation id="4368115171699243057">Deze <ph name="DEVICE_TYPE" /> instellen voor je kind</translation>
 <translation id="437004882363131692">Krijg tips, aanbiedingen en updates over <ph name="DEVICE_TYPE" /> en deel je feedback. Je kunt je afmelden wanneer je maar wilt.</translation>
 <translation id="4370975561335139969">Het opgegeven e-mailadres en wachtwoord komen niet overeen</translation>
 <translation id="4374831787438678295">Linux-installatieprogramma</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Wachtwoord verbergen</translation>
 <translation id="4565917129334815774">Systeemlogboeken opslaan</translation>
 <translation id="456717285308019641">Paginataal om te vertalen</translation>
+<translation id="4567533462991917415">Je kunt na het instellen altijd meer mensen toevoegen. Elke persoon kan zijn of haar account personaliseren en gegevens privé houden.</translation>
 <translation id="4567772783389002344">Woord toevoegen</translation>
 <translation id="4568025708905928793">Er wordt om een beveiligingssleutel gevraagd</translation>
 <translation id="4568213207643490790">Google-accounts zijn niet toegestaan op dit apparaat.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">De installatie van de Linux-container is niet voltooid. Probeer het opnieuw.</translation>
 <translation id="4633003931260532286">Voor deze extensie is minimaal versie '<ph name="IMPORT_VERSION" />' van '<ph name="IMPORT_NAME" />' vereist, maar alleen versie '<ph name="INSTALLED_VERSION" />' is geïnstalleerd</translation>
 <translation id="4633757335284074492">Maak een back-up op Google Drive. Zet gegevens eenvoudig terug of schakel wanneer je wilt tussen apparaten. Deze back-up omvat app-gegevens. Back-ups worden geüpload naar Google en versleuteld met het wachtwoord van het Google-account van je kind.</translation>
+<translation id="4634575639321169635">Dit apparaat instellen voor zakelijk of persoonlijk gebruik</translation>
 <translation id="4634771451598206121">Opnieuw inloggen...</translation>
 <translation id="4635072447747973225">Crostini verwijderen</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> is niet beschikbaar voor gastgebruikers.</translation>
@@ -3237,7 +3245,7 @@
 <translation id="5015344424288992913">Proxy laden...</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">Onthouden</translation>
-<translation id="5017643436812738274">Je kunt navigeren op pagina's met een tekstcursor. Druk op Ctrl+Zoeken+7 om uit te schakelen.</translation>
+<translation id="5017643436812738274">Je kunt navigeren op pagina's met een tekstcursor. Druk op Ctrl+Zoeken+7 om dit uit te schakelen.</translation>
 <translation id="5018207570537526145">Website voor extensie openen</translation>
 <translation id="5018526990965779848">Stuur gebruiks- en diagnostische gegevens. Verbeter je Android-functionaliteit door automatisch diagnostische, apparaat- en app-gebruiksgegevens naar Google te sturen. Deze gegevens kunnen worden gebruikt om de systeem- en app-stabiliteit te verbeteren en andere optimalisaties mogelijk te maken. Daarnaast zijn bepaalde verzamelde gegevens nuttig voor Google-apps en -partners, zoals Android-ontwikkelaars. Als je de instelling voor aanvullende Web- en app-activiteit hebt ingeschakeld, kunnen deze gegevens worden opgeslagen in je Google-account.</translation>
 <translation id="5021750053540820849">Nog niet geüpdatet</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">De nieuwste versie van '<ph name="EXTENSION_NAME" />' is uitgeschakeld omdat er meer rechten voor nodig zijn.</translation>
 <translation id="5185500136143151980">Geen internet</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Optiemenu voor <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Poort activeren</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> wil meerdere bestanden downloaden</translation>
 <translation id="5192062846343383368">Open de Family Link-app om de instellingen voor toezicht te bekijken</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Het systeem kan het model of serienummer van het apparaat niet bepalen.</translation>
 <translation id="5284445933715251131">Doorgaan met downloaden</translation>
 <translation id="5285635972691565180">Scherm <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Uitvoergedeelte is vol</translation>
 <translation id="5286194356314741248">Scannen</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Je accounts</translation>
@@ -3592,7 +3600,7 @@
 <translation id="5464660706533281090">Deze instelling kan niet worden gewijzigd door gebruikers met een kinderaccount.</translation>
 <translation id="5466374726908360271">Pl&amp;akken en zoeken naar '<ph name="SEARCH_TERMS" />'</translation>
 <translation id="5468173180030470402">Zoeken naar fileshares</translation>
-<translation id="5469852975082458401">Je kunt navigeren op pagina's met een tekstcursor. Druk op F7 om uit te schakelen.</translation>
+<translation id="5469852975082458401">Je kunt navigeren op pagina's met een tekstcursor. Druk op F7 om dit uit te schakelen.</translation>
 <translation id="5470735824776589490">Opnieuw starten is vereist voordat je apparaat opnieuw kan worden ingesteld met Powerwash. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Hallo. Ik ben je stem voor tekst-naar-spraak.</translation>
 <translation id="5472627187093107397">Wachtwoorden voor deze site opslaan</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Scherm ingeschakeld laten</translation>
 <translation id="5496587651328244253">Organiseren</translation>
 <translation id="5497251278400702716">Dit bestand</translation>
+<translation id="5498967291577176373">Schrijf sneller met inline suggesties voor je naam, adres of telefoonnummer</translation>
 <translation id="5499313591153584299">Dit bestand is mogelijk schadelijk voor je computer.</translation>
 <translation id="5499453227627332024">Er is een upgrade beschikbaar voor je Linux-container. Je kunt ook later upgraden via de app Instellingen.</translation>
 <translation id="5500709606820808700">Veiligheidscheck is vandaag uitgevoerd</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Beleidstoewijzing voor certificaat</translation>
 <translation id="5554489410841842733">Dit icoon wordt weergegeven wanneer de extensie een actie kan uitvoeren op de huidige pagina.</translation>
 <translation id="5554720593229208774">Certificeringsinstantie voor e-mail</translation>
-<translation id="5554931805291741487">Uitvoergedeelte is bijna vol</translation>
 <translation id="5556459405103347317">Opnieuw laden</translation>
 <translation id="5558125320634132440">Deze site is geblokkeerd omdat deze mogelijk niet-gezinsvriendelijke content bevat</translation>
 <translation id="5558129378926964177">&amp;Inzoomen</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Locatie</translation>
 <translation id="56907980372820799">Gegevens koppelen</translation>
 <translation id="5691511426247308406">Gezin</translation>
+<translation id="5691581861107245578">Suggesties voor emoji's krijgen op basis van wat je typt</translation>
 <translation id="5691772641933328258">Vingerafdruk niet herkend</translation>
 <translation id="5692183275898619210">Afdrukken voltooid</translation>
 <translation id="569425414730375234">Huidige incognitosessie: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Deze site heeft meer rechten nodig.</translation>
 <translation id="6125479973208104919">Je moet je account opnieuw toevoegen aan deze <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6129691635767514872">De geselecteerde gegevens zijn verwijderd uit Chrome en van gesynchroniseerde apparaten. Voor je Google-account kunnen andere vormen van browsegeschiedenis (zoals zoekopdrachten en activiteit uit andere Google-services) beschikbaar zijn via <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Je kind</translation>
 <translation id="6129938384427316298">Opmerking van Netscape-certificaat</translation>
 <translation id="6129953537138746214">Spatie</translation>
 <translation id="6130692320435119637">Wifi toevoegen</translation>
@@ -4175,6 +4185,7 @@
 <translation id="6178664161104547336">Een certificaat selecteren</translation>
 <translation id="6181431612547969857">Download geblokkeerd</translation>
 <translation id="6185132558746749656">Apparaatlocatie</translation>
+<translation id="6195446518998936840">Als je ouderlijk toezicht wilt instellen, moet je kind een Google-account hebben dat jij helpt te beheren. Met de Family Link-app kun je de schermtijd beperken, websites goedkeuren of blokkeren en nog veel meer.</translation>
 <translation id="6195693561221576702">Dit apparaat kan niet worden ingesteld in de offline demomodus.</translation>
 <translation id="6196640612572343990">Indirecte cookies blokkeren</translation>
 <translation id="6196854373336333322">De extensie '<ph name="EXTENSION_NAME" />' heeft het beheer van je proxyinstellingen overgenomen. Dit betekent dat de extensie alles wat je online doet, kan wijzigen, beschadigen of bekijken. Als je niet zeker weet waarom deze wijziging heeft plaatsgevonden, is het waarschijnlijk een ongewenste wijziging.</translation>
@@ -4940,7 +4951,6 @@
 <translation id="7152478047064750137">De extensie vereist geen speciale rechten</translation>
 <translation id="7154130902455071009">Je homepage wijzigen in: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Bestaande foto van camera of uit bestand</translation>
-<translation id="7163766494674803047">Fout met printer</translation>
 <translation id="7165320105431587207">Kan netwerk niet configureren</translation>
 <translation id="716640248772308851">'<ph name="EXTENSION" />' kan afbeeldingen, video- en geluidsbestanden lezen op de gecontroleerde locaties.</translation>
 <translation id="7167486101654761064">&amp;Altijd bestanden van dit type openen</translation>
@@ -5810,7 +5820,7 @@
 <translation id="8227119283605456246">Bestand bijvoegen</translation>
 <translation id="8229943166551236192">Apparaatgegevens worden over 24 uur verwijderd</translation>
 <translation id="8230134520748321204">Wachtwoord opslaan voor <ph name="ORIGIN" />?</translation>
-<translation id="8233874515683663066">Afbeeldingen en kunstwerken van onze curator</translation>
+<translation id="8233874515683663066">Geselecteerde afbeeldingen en foto's</translation>
 <translation id="8234795456569844941">Help onze engineers dit probleem op te lossen. Vertel ons wat er gebeurde vlak voordat het bericht met de profielfout werd weergegeven:</translation>
 <translation id="8236917170563564587">In plaats daarvan dit tabblad delen</translation>
 <translation id="8237647586961940482">Donkerroze/rood</translation>
@@ -5929,6 +5939,7 @@
 <translation id="8372369524088641025">Slechte WEP-sleutel</translation>
 <translation id="8372477600026034341">Extra hosts</translation>
 <translation id="8373652277231415614">Gedeelde directory's voor Crostini</translation>
+<translation id="8376384591331888629">Inclusief cookies van derden op deze site</translation>
 <translation id="8378714024927312812">Beheerd door je organisatie</translation>
 <translation id="8379878387931047019">Dit apparaat biedt geen ondersteuning voor het type beveiligingssleutel dat is vereist voor deze website</translation>
 <translation id="8379991678458444070">Je kunt hier snel terugkeren als je een bookmark voor dit tabblad maakt</translation>
@@ -6012,6 +6023,7 @@
 <translation id="8481187309597259238">USB-rechten bevestigen</translation>
 <translation id="8483248364096924578">IP-adres</translation>
 <translation id="8487678622945914333">Groter</translation>
+<translation id="8489156414266187072">Persoonlijke suggesties worden alleen weergegeven in jouw account</translation>
 <translation id="8490896350101740396">De volgende kiosk-apps '<ph name="UPDATED_APPS" />' zijn geüpdatet. Start het apparaat opnieuw op om het updateproces te voltooien.</translation>
 <translation id="8493236660459102203">Microfoon:</translation>
 <translation id="8496717697661868878">Deze plugin uitvoeren</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 3520f548..fd6adfa 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> kan ikke lastes ned sikkert</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> vil koble til</translation>
-<translation id="2341476639346994688">Skriveren er stoppet</translation>
 <translation id="2342740338116612727">Bokmerkene er lagt til</translation>
 <translation id="2343747224442182863">Fokusér på denne fanen</translation>
 <translation id="2344686470986284227">Starter kontrolleren for den virtuelle maskinen</translation>
@@ -3443,7 +3442,6 @@
 <translation id="5283677936944177147">Beklager. Systemet kunne ikke fastslå enhetens modell eller serienummer.</translation>
 <translation id="5284445933715251131">Fortsett nedlastingen</translation>
 <translation id="5285635972691565180">Skjerm <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Utskriftsområdet er fullt</translation>
 <translation id="5286194356314741248">Skanning</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Dine kontoer</translation>
@@ -3664,7 +3662,6 @@
 <translation id="5553089923092577885">Retningslinjetilordninger for sertifikat</translation>
 <translation id="5554489410841842733">Dette ikonet vises når utvidelsen kan brukes på gjeldende side.</translation>
 <translation id="5554720593229208774">Sertifiseringsinstans for e-post</translation>
-<translation id="5554931805291741487">Utskriftsområdet er nesten fullt</translation>
 <translation id="5556459405103347317">Last inn på nytt</translation>
 <translation id="5558125320634132440">Dette nettstedet er blokkert fordi det kan ha innhold for voksne.</translation>
 <translation id="5558129378926964177">Zoom &amp;inn</translation>
@@ -4935,7 +4932,6 @@
 <translation id="7152478047064750137">Denne utvidelsen krever ingen spesielle tillatelser</translation>
 <translation id="7154130902455071009">endre startsiden din til: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Eksisterende bilde fra kamera eller fil</translation>
-<translation id="7163766494674803047">Skriverenhetsfeil</translation>
 <translation id="7165320105431587207">Kunne ikke konfigurere nettverket</translation>
 <translation id="716640248772308851">«<ph name="EXTENSION" />» kan lese bilder, videofiler og lydfiler i mappene som står oppført.</translation>
 <translation id="7167486101654761064">Åpne &amp;alltid filer av denne typen</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 90a4367a..3e2d7b23 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -1102,7 +1102,6 @@
 <translation id="2336381494582898602">ପାୱାର୍‍ୱାସ୍</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ସୁରକ୍ଷିତ ରୂପେ ଡାଉନଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ପେୟାର୍ କରିବାକୁ ଚାହୁଁଛି</translation>
-<translation id="2341476639346994688">ପ୍ରିଣ୍ଟର୍ ବନ୍ଦ ହୋଇଯାଇଛି</translation>
 <translation id="2342740338116612727">ବୁକ୍‌ମାର୍କ ଯୋଗ କରାଗଲା</translation>
 <translation id="2343747224442182863">ଏହି ଟାବ୍ ପ୍ରତି ଧ୍ୟାନ ଦିଅନ୍ତୁ</translation>
 <translation id="2344686470986284227">ଭର୍ଚୁଆଲ୍ ମେସିନ୍ କଣ୍ଟ୍ରୋଲର୍ ଆରମ୍ଭ କରାଯାଉଛି</translation>
@@ -3440,7 +3439,6 @@
 <translation id="5283677936944177147">ଓହୋଃ!  ସିଷ୍ଟମ୍ ଡିଭାଇସ୍ ମୋଡେଲ୍ କିମ୍ବା କ୍ରମାଙ୍କ ସଂଖ୍ୟା ନିର୍ଦ୍ଧାରିତ କରିବାରେ ବିଫଳ ହେଲା।</translation>
 <translation id="5284445933715251131">ଡାଉନ୍‌ଲୋଡ୍ କରିବା ଜାରି ରଖନ୍ତୁ</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" /> ଦେଖାନ୍ତୁ</translation>
-<translation id="5286094561505658635">ଆଉଟପୁଟ୍ ପାଇଁ ଥିବା ସ୍ଥାନ ପୂର୍ଣ୍ଣ ଅଛି</translation>
 <translation id="5286194356314741248">ସ୍କାନ୍ ହେଉଛି</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">ଆପଣଙ୍କ ଆକାଉଣ୍ଟଗୁଡ଼ିକ</translation>
@@ -3661,7 +3659,6 @@
 <translation id="5553089923092577885">ସାର୍ଟିଫିକେଟ୍ ନୀତି ମ୍ୟାପିଂ</translation>
 <translation id="5554489410841842733">ଏହି ଆଇକନ୍ ସେତେବେଳେ ଦେଖାଦେବ, ଯେତେବେଳେ ସାମ୍ପ୍ରତିକ ପୃଷ୍ଠାରେ ଏକ୍ସଟେନ୍‌ସନ୍‌ କାମ କରିପାରିବ।</translation>
 <translation id="5554720593229208774">ଇମେଲ୍‍ ସର୍ଟିଫିକେସନ୍‌ ଅଥରିଟୀ</translation>
-<translation id="5554931805291741487">ଆଉଟପୁଟ୍ ପାଇଁ ଥିବା ସ୍ଥାନ ପ୍ରାୟ ପୂର୍ଣ୍ଣ ହୋଇଯାଇଛି</translation>
 <translation id="5556459405103347317">ପୁନଃ ଲୋଡ୍ କରନ୍ତୁ</translation>
 <translation id="5558125320634132440">ଏହି ସାଇଟ୍‍‍କୁ ବ୍ଲକ୍ କରାଯାଇଛି କାରଣ ଏଥିରେ ବୟସ୍କଙ୍କ ପାଇଁ ଉଦ୍ଦିଷ୍ଟ ବିଷୟବସ୍ତୁ ଥାଇପାରେ</translation>
 <translation id="5558129378926964177">ଜୁମ୍ &amp;ବଢ଼ାନ୍ତୁ</translation>
@@ -4934,7 +4931,6 @@
 <translation id="7152478047064750137">ଏହି ଏକ୍ସଟେନ୍‍ସନ୍‍ ପାଇଁ କୌଣସି ବିଶେଷ ଅନୁମତିର ଆବଶ୍ୟକତା ନାହିଁ</translation>
 <translation id="7154130902455071009">ଆପଣଙ୍କ ପ୍ରାରମ୍ଭ ପୃଷ୍ଠାକୁ ଏଥିରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">କ୍ୟାମେରା କିମ୍ବା ଫାଇଲ୍‍‍ରେ ବିଦ୍ୟମାନ ଥିବା ଫଟୋ</translation>
-<translation id="7163766494674803047">ପ୍ରିଣ୍ଟର୍ ଡିଭାଇସରେ ତ୍ରୁଟି</translation>
 <translation id="7165320105431587207">ନେଟ୍‍ୱର୍କ କନ୍‌ଫିଗର୍‌ କରିବାରେ ବିଫଳ ହେଲା</translation>
 <translation id="716640248772308851">ଚେକ୍ କରାଯିଥିବା ଲୋକେସନ୍‌ଗୁଡ଼ିକରେ "<ph name="EXTENSION" />" ଛବି, ଭିଡିଓ ଓ ସାଉଣ୍ଡ୍ ଫାଇଲ୍‌ଗୁଡ଼ିକୁ ପଢ଼ିପାରିବ।</translation>
 <translation id="7167486101654761064">&amp;ସର୍ବଦା ଏହି ପ୍ରକାରର ଫାଇଲଗୁଡିକୁ ଖୋଲନ୍ତୁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 1b72845c..7fbb489 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">ਬਣਾਇਆ</translation>
 <translation id="1067291318998134776">Linux (ਬੀਟਾ)</translation>
 <translation id="1067922213147265141">ਹੋਰ Google ਸੇਵਾਵਾਂ</translation>
+<translation id="1068961867683064946">ਆਪਣੇ ਬੱਚੇ ਲਈ Google ਖਾਤਾ ਬਣਾਓ</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਦੇ ਕਿਸੇ ਹੋਰ ਪ੍ਰੋਗਰਾਮ ਨੇ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਜੋੜ ਦਿੱਤੀ ਜੋ Chrome ਦੇ ਕੰਮ ਕਰਨ ਦੇ ਤਰੀਕੇ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> ਉਪ-ਪੰਨਾ ਪਿੱਛੇ ਜਾਓ ਬਟਨ</translation>
 <translation id="1322046419516468189">ਆਪਣੇ <ph name="SAVED_PASSWORDS_STORE" /> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਦੇਖੋ ਅਤੇ ਉਹਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="1324106254079708331">ਕਿਸੇ ਦੇ ਵੀ ਨਿੱਜੀ Google ਖਾਤਿਆਂ ਨੂੰ ਉਦੇਸ਼ਿਤ ਹਮਲਿਆਂ ਦੇ ਖਤਰੇ ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ</translation>
+<translation id="1325985428688410772">ਜਗ੍ਹਾ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="1326317727527857210">ਆਪਣੇ ਹੋਰ ਡੀਵਾਈਸਾਂ ਤੋਂ ਆਪਣੀਆਂ ਟੈਬਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, Chrome ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation>
 <translation id="1327074568633507428">'Google ਕਲਾਊਡ ਪ੍ਰਿੰਟ' 'ਤੇ ਪ੍ਰਿੰਟਰ</translation>
 <translation id="1327272175893960498">Kerberos ਟਿਕਟਾਂ</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">ਨੈੱਟਵਰਕ ਸੰਰੂਪਿਤ ਕਰੋ</translation>
 <translation id="230927227160767054">ਇਹ ਪੰਨਾ ਇੱਕ ਸੇਵਾ ਹੈਂਡਲਰ ਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ।</translation>
 <translation id="2309620859903500144">ਇਸ ਸਾਈਟ ਨੂੰ ਤੁਹਾਡੇ ਮੋਸ਼ਨ ਜਾਂ ਲਾਈਟ ਸੈਂਸਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਲਾਕ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।</translation>
+<translation id="2314873619957287124">ਆਪਣੇ ਬੱਚੇ ਦੀ ਸਿੱਖਣ, ਖੇਡਣ ਅਤੇ ਪੜਚੋਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ ਬੁਨਿਆਦੀ ਡਿਜੀਟਲ ਨਿਯਮ ਸੈੱਟ ਕਰੋ</translation>
 <translation id="2315414688463285945">Linux ਫ਼ਾਈਲਾਂ ਦਾ ਸੰਰੂਪਣ ਕਰਨ ਵੇਲੇ ਗੜਬੜ ਹੋ ਗਈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="2315587498123194634"><ph name="DEVICE_NAME" /> 'ਤੇ ਲਿੰਕ ਭੇਜੋ</translation>
 <translation id="2316129865977710310">ਨਹੀਂ ਧੰਨਵਾਦ</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">ਕਿਸੇ ਸਾਈਟ ਵੱਲੋਂ ਸੀਰੀਅਲ ਪੋਰਟਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਵੇਲੇ ਪੁੱਛੋ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation>
 <translation id="2323018538045954000">ਰੱਖਿਅਤ ਕੀਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ</translation>
 <translation id="2325444234681128157">ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ</translation>
+<translation id="2326160999284776503">ਆਪਣੇ ਬੱਚੇ ਦੇ Google ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="2326188115274135041">ਸਵੈਚਲਿਤ ਅਣਲਾਕ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਪਿੰਨ ਦੀ ਤਸਦੀਕ ਕਰੋ</translation>
 <translation id="2326931316514688470">&amp;ਐਪ ਰੀਲੋਡ ਕਰੋ</translation>
 <translation id="2327492829706409234">ਐਪ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">ਪਾਵਰਵਾਸ਼</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ਜੋੜਾਬੱਧ ਕਰਨਾ ਚਾਹੁੰਦੀ ਹੈ</translation>
-<translation id="2341476639346994688">ਪ੍ਰਿੰਟਰ ਬੰਦ ਹੋ ਗਿਆ ਹੈ</translation>
 <translation id="2342740338116612727">ਬੁੱਕਮਾਰਕ ਸ਼ਾਮਲ ਕੀਤੇ ਗਏ</translation>
 <translation id="2343747224442182863">ਇਸ ਟੈਬ 'ਤੇ ਫੋਕਸ ਕਰੋ</translation>
 <translation id="2344686470986284227">ਆਭਾਸੀ ਮਸ਼ੀਨ ਕੰਟਰੋਲਰ ਨੂੰ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">ਕੋਈ ਗੜਬੜ ਹੋਈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰਿੰਟਰ ਦੀ ਜਾਂਚ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="2387052489799050037">ਹੋਮ 'ਤੇ ਜਾਓ</translation>
 <translation id="2387458720915042159">ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਕਿਸਮ</translation>
+<translation id="2391082728065870591">ਵਿਚਾਰ ਸੰਬੰਧੀ ਰਿਪੋਰਟ ਭੇਜੋ</translation>
 <translation id="2391419135980381625">ਸਟੈਂਡਰਡ ਫੌਂਟ</translation>
 <translation id="2392163307141705938">ਤੁਸੀਂ <ph name="IDS_SHORT_PRODUCT_NAME" /> ਲਈ ਤੁਹਾਡੇ ਮਾਪਿਆਂ ਵੱਲੋਂ ਸੈੱਟ ਕੀਤੀ ਗਈ ਸਮਾਂ ਸੀਮਾ ਪੂਰੀ ਕਰ ਲਈ ਹੈ।</translation>
 <translation id="2392369802118427583">ਸਕਿਰਿਆ ਬਣਾਓ</translation>
@@ -1281,6 +1285,7 @@
 <translation id="2537178555904266562">ਪਾਸਵਰਡਾਂ ਦੇ ਸਮਕਾਲੀਕਰਨ ਕਰਨ ਦੌਰਾਨ ਗੜਬੜ ਹੋਈ</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> ਸਾਈਟ ਅੱਗੇ ਦਿੱਤੀਆਂ ਫ਼ਾਈਲਾਂ ਅਤੇ ਫੋਲਡਰਾਂ ਨੂੰ ਦੇਖ ਅਤੇ ਉਹਨਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰ ਸਕਦੀ ਹੈ</translation>
 <translation id="2537927931785713436">ਆਭਾਸੀ ਮਸ਼ੀਨ ਦੇ ਚਿੱਤਰ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ</translation>
+<translation id="2538084450874617176">ਇਸ <ph name="DEVICE_TYPE" /> ਨੂੰ ਕੌਣ ਵਰਤ ਰਿਹਾ ਹੈ?</translation>
 <translation id="2538361623464451692">ਸਮਕਾਲੀਕਰਨ ਬੰਦ ਹੈ</translation>
 <translation id="2540449034743108469">ਐਕਸਟੈਂਸ਼ਨ ਸਰਗਰਮੀਆਂ ਨੂੰ ਸੁਣਨ ਲਈ "ਸ਼ੁਰੂ ਕਰੋ" ਦਬਾਓ</translation>
 <translation id="2541002089857695151">ਕੀ ਪੂਰੀ-ਸਕ੍ਰੀਨ ਕਾਸਟ ਕਰਨਾ ਸੁਯੋਗ ਬਣਾਉਣਾ ਹੈ?</translation>
@@ -2741,6 +2746,7 @@
 <translation id="4364327530094270451">ਖਰਬੂਜ਼ਾ</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।</translation>
 <translation id="4364830672918311045">ਡਿਸਪਲੇ ਸੂਚਨਾਵਾਂ</translation>
+<translation id="4368115171699243057">ਆਪਣੇ ਬੱਚੇ ਲਈ ਇਸ <ph name="DEVICE_TYPE" /> ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ</translation>
 <translation id="437004882363131692"><ph name="DEVICE_TYPE" /> ਨੁਕਤੇ, ਪੇਸ਼ਕਸ਼ਾਂ ਅਤੇ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਕਰੋ ਅਤੇ ਵਿਚਾਰ ਸਾਂਝਾ ਕਰੋ। ਕਿਸੇ ਵੀ ਵੇਲੇ ਗਾਹਕੀ ਹਟਾਓ।</translation>
 <translation id="4370975561335139969">ਤੁਹਾਡੇ ਵੱਲੋਂ ਦਰਜ ਕੀਤਾ ਈਮੇਲ ਅਤੇ ਪਾਸਵਰਡ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ</translation>
 <translation id="4374831787438678295">Linux ਸਥਾਪਨਾਕਾਰ</translation>
@@ -2901,6 +2907,7 @@
 <translation id="4565377596337484307">ਪਾਸਵਰਡ ਲੁਕਾਓ</translation>
 <translation id="4565917129334815774">ਸਿਸਟਮ ਲੌਗਾਂ ਨੂੰ ਸਟੋਰ ਕਰੋ</translation>
 <translation id="456717285308019641">ਅਨੁਵਾਦ ਕਰਨ ਲਈ ਪੰਨੇ ਦੀ ਭਾਸ਼ਾ</translation>
+<translation id="4567533462991917415">ਸੈੱਟਅੱਪ ਕਰਨ ਤੋਂ ਬਾਅਦ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਵੇਲੇ ਹੋਰ ਲੋਕਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ। ਹਰੇਕ ਵਿਅਕਤੀ ਆਪਣੇ ਖਾਤੇ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾ ਸਕਦਾ ਹੈ ਅਤੇ ਡਾਟੇ ਨੂੰ ਨਿੱਜੀ ਰੱਖ ਸਕਦਾ ਹੈ।</translation>
 <translation id="4567772783389002344">ਸ਼ਬਦ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="4568025708905928793">ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ</translation>
 <translation id="4568213207643490790">ਮਾਫ਼ ਕਰਨਾ, Google ਖਾਤਿਆਂ ਦੀ ਇਸ  ਡੀਵਾਈਸ 'ਤੇ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।</translation>
@@ -2952,6 +2959,7 @@
 <translation id="4628762811416793313">Linux ਕੰਟੇਨਰ ਦਾ ਸੈੱਟਅੱਪ ਪੂਰਾ ਨਹੀਂ ਹੋਇਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="4633003931260532286">ਐਕਸਟੈਂਸ਼ਨ ਲਈ "<ph name="IMPORT_NAME" />" ਨੂੰ ਨਿਊਨਤਮ "<ph name="IMPORT_VERSION" />" ਵਰਜਨ ਦਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਪਰ ਸਿਰਫ਼ "<ph name="INSTALLED_VERSION" />" ਵਰਜਨ ਹੀ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ</translation>
 <translation id="4633757335284074492">'Google ਡਰਾਈਵ' ਵਿੱਚ ਬੈਕਅੱਪ ਲਓ। ਕਿਸੇ ਵੇਲੇ ਵੀ ਅਸਾਨੀ ਨਾਲ ਡਾਟਾ ਮੁੜ-ਬਹਾਲ ਕਰੋ ਜਾਂ ਡੀਵਾਈਸਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰੋ। ਇਸ ਬੈਕਅੱਪ ਵਿੱਚ ਐਪ ਡਾਟਾ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਬੈਕਅੱਪ Google 'ਤੇ ਅੱਪਲੋਡ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਤੁਹਾਡੇ ਬੱਚੇ ਦੇ Google ਖਾਤੇ ਦੇ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਨਕ੍ਰਿਪਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।</translation>
+<translation id="4634575639321169635">ਕੰਮ ਜਾਂ ਨਿੱਜੀ ਵਰਤੋਂ ਲਈ ਇਸ ਡੀਵਾਈਸ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ</translation>
 <translation id="4634771451598206121">ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰੋ…</translation>
 <translation id="4635072447747973225">Crostini ਅਣਸਥਾਪਤ ਕਰੋ</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> ਮਹਿਮਾਨ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।</translation>
@@ -3370,6 +3378,7 @@
 <translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />" ਦੇ ਬਿਲਕੁਲ ਨਵੇਂ ਵਰਜਨ ਨੂੰ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ ਕਿਉਂਕਿ ਇਸਦੇ ਲਈ ਵੱਧ ਇਜਾਜ਼ਤਾਂ ਦੀ ਲੋੜ ਹੈ।</translation>
 <translation id="5185500136143151980">ਇੰਟਰਨੈੱਟ ਨਹੀਂ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" /> ਲਈ ਚੋਣਾਂ ਮੀਨੂ</translation>
 <translation id="5190926251776387065">ਪੋਰਟ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> ਇੱਕ ਤੋਂ ਵੱਧ ਫ਼ਾਈਲਾਂ ਡਾਊਨਲੋਡ ਕਰਨਾ ਚਾਹੁੰਦੀ ਹੈ</translation>
 <translation id="5192062846343383368">ਆਪਣੀਆਂ ਨਿਗਰਾਨੀ ਸੈਟਿੰਗਾਂ ਦੇਖਣ ਲਈ Family Link ਐਪ ਖੋਲ੍ਹੋ</translation>
@@ -3446,7 +3455,6 @@
 <translation id="5283677936944177147">ਓਹੋ! ਸਿਸਟਮ ਡੀਵਾਈਸ ਮਾਡਲ ਜਾਂ ਸੀਰੀਅਲ ਨੰਬਰ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ।</translation>
 <translation id="5284445933715251131">ਡਾਊਨਲੋਡ ਕਰਨਾ ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="5285635972691565180">ਡਿਸਪਲੇ <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">ਆਊਟਪੁੱਟ ਖੇਤਰ ਭਰ ਗਿਆ ਹੈ</translation>
 <translation id="5286194356314741248">ਸਕੈਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">ਤੁਹਾਡੇ ਖਾਤੇ</translation>
@@ -3617,6 +3625,7 @@
 <translation id="5495597166260341369">ਡਿਸਪਲੇ ਚਾਲੂ ਰੱਖੋ</translation>
 <translation id="5496587651328244253">ਪ੍ਰਬੰਧ ਕਰੋ</translation>
 <translation id="5497251278400702716">ਇਹ ਫ਼ਾਈਲ</translation>
+<translation id="5498967291577176373">ਤੁਹਾਡੇ ਨਾਮ, ਪਤੇ ਜਾਂ ਫ਼ੋਨ ਨੰਬਰ ਲਈ ਇਨਲਾਈਨ ਸੁਝਾਵਾਂ ਨਾਲ ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਲਿਖੋ</translation>
 <translation id="5499313591153584299">ਇਹ ਫ਼ਾਈਲ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਹਾਨੀਕਾਰਕ ਹੋ ਸਕਦੀ ਹੈ।</translation>
 <translation id="5499453227627332024">ਤੁਹਾਡੇ Linux ਕੰਟੇਨਰ ਲਈ ਅੱਪਗ੍ਰੇਡ ਉਪਲਬਧ ਹੈ। ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਐਪ ਵਿੱਚ ਜਾ ਕੇ ਇਸਨੂੰ ਬਾਅਦ ਵਿੱਚ ਵੀ ਅੱਪਗ੍ਰੇਡ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="5500709606820808700">ਸੁਰੱਖਿਆ ਜਾਂਚ ਅੱਜ ਚਲਾਈ ਗਈ</translation>
@@ -3667,7 +3676,6 @@
 <translation id="5553089923092577885">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨੀਤੀ ਨਕਸ਼ੇ</translation>
 <translation id="5554489410841842733">ਇਹ ਪ੍ਰਤੀਕ ਉਦੋਂ ਦਿਖਾਈ ਦੇਵੇਗਾ ਜਦੋਂ ਐਕਸਟੈਂਸ਼ਨ ਮੌਜੂਦਾ ਪੰਨੇ 'ਤੇ ਕਾਰਵਾਈ ਕਰ ਸਕਦੀ ਹੈ।</translation>
 <translation id="5554720593229208774">ਈਮੇਲ ਸਰਟੀਫਿਕੇਸ਼ਨ ਅਧਿਕਾਰ</translation>
-<translation id="5554931805291741487">ਆਊਟਪੁੱਟ ਖੇਤਰ ਲਗਭਗ ਭਰ ਗਿਆ ਹੈ</translation>
 <translation id="5556459405103347317">ਰੀਲੋਡ ਕਰੋ</translation>
 <translation id="5558125320634132440">ਇਹ ਸਾਈਟ ਬਲਾਕ ਕੀਤੀ ਗਈ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿੱਚ ਬਾਲਗ ਸਮੱਗਰੀ ਹੋ ਸਕਦੀ ਹੈ</translation>
 <translation id="5558129378926964177">ਜ਼ੂਮ &amp;ਵਧਾਓ</translation>
@@ -3774,6 +3782,7 @@
 <translation id="5689516760719285838">ਟਿਕਾਣਾ</translation>
 <translation id="56907980372820799">ਡਾਟਾ ਲਿੰਕ ਕਰੋ</translation>
 <translation id="5691511426247308406">ਪਰਿਵਾਰ</translation>
+<translation id="5691581861107245578">ਜੋ ਵੀ ਤੁਸੀਂ ਟਾਈਪ ਕਰ ਰਹੇ ਹੋ ਉਸ ਆਧਾਰ 'ਤੇ ਇਮੋਜੀ ਸੁਝਾਅ ਪ੍ਰਾਪਤ ਕਰੋ</translation>
 <translation id="5691772641933328258">ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪਛਾਣ ਨਹੀਂ ਹੋਈ</translation>
 <translation id="5692183275898619210">ਪ੍ਰਿੰਟ ਕਰਨਾ ਪੂਰਾ ਹੋਇਆ</translation>
 <translation id="569425414730375234">ਵਰਤਮਾਨ ਇਨਕੋਗਨਿਟੋ ਸੈਸ਼ਨ: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4133,6 +4142,7 @@
 <translation id="6124698108608891449">ਇਸ ਸਾਈਟ ਨੂੰ ਹੋਰ ਇਜਾਜ਼ਤਾਂ ਦੀ ਲੋੜ ਹੈ।</translation>
 <translation id="6125479973208104919">ਬਦਕਿਸਮਤੀ ਨਾਲ, ਤੁਹਾਨੂੰ ਆਪਣੇ ਖਾਤੇ ਨੂੰ ਦੁਬਾਰਾ ਇਸ <ph name="DEVICE_TYPE" /> ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ।</translation>
 <translation id="6129691635767514872">ਚੁਣਿਆ ਗਿਆ ਡਾਟਾ Chrome ਅਤੇ ਸਮਕਾਲੀਕਿਰਤ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਤੋਂ ਹਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ। ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 'ਤੇ ਹੋਰ ਸੇਵਾਵਾਂ ਤੋਂ ਖੋਜਾਂ ਅਤੇ ਸਰਗਰਮੀ ਵਰਗਾ ਹੋਰ ਪ੍ਰਕਾਰ ਦਾ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਵੀ ਸ਼ਾਮਲ ਹੋ ਸਕਦਾ ਹੈ।</translation>
+<translation id="6129839611163153407">ਤੁਹਾਡਾ ਬੱਚਾ</translation>
 <translation id="6129938384427316298">Netscape ਪ੍ਰਮਾਣ-ਪੱਤਰ ਟਿੱਪਣੀ</translation>
 <translation id="6129953537138746214">ਸਪੇਸ</translation>
 <translation id="6130692320435119637">ਵਾਈ-ਫਾਈ ਸ਼ਾਮਲ ਕਰੋ</translation>
@@ -4173,6 +4183,7 @@
 <translation id="6178664161104547336">ਇੱਕ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਚੁਣੋ</translation>
 <translation id="6181431612547969857">ਡਾਊਨਲੋਡ ਬਲਾਕ ਕੀਤੀ</translation>
 <translation id="6185132558746749656">ਡੀਵਾਈਸ ਨਿਰਧਾਰਿਤ ਸਥਾਨ</translation>
+<translation id="6195446518998936840">ਮਾਪਿਆਂ ਦੇ ਕੰਟਰੋਲਾਂ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ, ਤੁਹਾਡੇ ਬੱਚੇ ਕੋਲ Google ਖਾਤਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ ਜਿਸਦਾ ਤੁਸੀਂ ਪ੍ਰਬੰਧਨ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰੋਗੇ। Family Link ਐਪ ਨਾਲ ਤੁਸੀਂ ਸਕ੍ਰੀਨ ਸਮਾਂ ਸੀਮਾਵਾਂ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ, ਵੈੱਬਸਾਈਟਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਜਾਂ ਬਲਾਕ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="6195693561221576702">ਇਹ ਡੀਵਾਈਸ ਆਫ਼ਲਾਈਨ ਡੈਮੋ ਮੋਡ ਵਿੱਚ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।</translation>
 <translation id="6196640612572343990">ਤੀਜੀ-ਧਿਰ ਵਾਲੀਆਂ ਕੁੱਕੀਜ਼ ਨੂੰ ਬਲੌਕ ਕਰੋ</translation>
 <translation id="6196854373336333322">ਐਕਸਟੈਂਸ਼ਨ "<ph name="EXTENSION_NAME" />" ਨੇ ਤੁਹਾਡੀਆਂ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ 'ਤੇ ਕੰਟਰੋਲ ਹਾਸਲ ਕਰ ਲਿਆ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇਹ ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਨਲਾਈਨ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਕਿਸੇ ਵੀ ਕਿਰਿਆ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ, ਖੰਡਿਤ ਕਰ ਸਕਦੀ ਹੈ ਜਾਂ ਗੁਪਤ ਢੰਗ ਨਾਲ ਵਾਰਤਾਲਾਪ ਨੂੰ ਸੁਣ ਸਕਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਪੱਕੇ ਨਹੀਂ ਹੋ ਕਿ ਇਹ ਬਦਲਾਵ ਕਿਉਂ ਵਾਪਰਿਆ ਹੈ, ਤਾਂ ਸੰਭਾਵਨਾ ਹੈ ਕਿ ਤੁਸੀਂ ਵੀ ਇਹ ਨਹੀਂ ਚਾਹੁੰਦੇ।</translation>
@@ -4938,7 +4949,6 @@
 <translation id="7152478047064750137">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਲਈ ਕੋਈ ਖਾਸ ਇਜਾਜ਼ਤਾਂ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ</translation>
 <translation id="7154130902455071009">ਆਪਣਾ ਸਟਾਰਟ ਸਫ਼ਾ ਇਸ ਵਿੱਚ ਬਦਲੋ: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">ਕੈਮਰੇ ਜਾਂ ਫ਼ਾਈਲ ਤੋਂ ਮੌਜੂਦਾ ਫ਼ੋਟੋ</translation>
-<translation id="7163766494674803047">ਪ੍ਰਿੰਟਰ ਡੀਵਾਈਸ ਸੰਬੰਧੀ ਗੜਬੜ</translation>
 <translation id="7165320105431587207">ਨੈੱਟਵਰਕ ਨੂੰ ਸੰਰੂਪਿਤ ਕਰਨ ਨਹੀਂ ਕਰ ਸਕਿਆ</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" ਸਹੀ ਦਾ ਨਿਸ਼ਾਨ ਲਗਾਏ ਹੋਏ ਨਿਰਧਾਰਿਤ ਸਥਾਨਾਂ ਵਿੱਚ ਚਿੱਤਰ, ਵੀਡਿਓ ਅਤੇ ਅਵਾਜ਼ ਫਾਈਲਾਂ ਪੜ੍ਹ ਸਕਦਾ ਹੈ।</translation>
 <translation id="7167486101654761064">&amp;ਹਮੇਸ਼ਾਂ ਇਸ ਪ੍ਰਕਾਰ ਦੀਆਂ ਫਾਈਲਾਂ ਖੋਲ੍ਹੋ</translation>
@@ -5925,6 +5935,7 @@
 <translation id="8372369524088641025">ਘਟੀਆ WEP ਕੁੰਜੀ</translation>
 <translation id="8372477600026034341">ਵਾਧੂ ਹੋਸਟ</translation>
 <translation id="8373652277231415614">Crostini ਸਾਂਝੀਆਂ ਕੀਤੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ</translation>
+<translation id="8376384591331888629">ਇਸ ਸਾਈਟ 'ਤੇ ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕੁਕੀਜ਼ ਸਮੇਤ</translation>
 <translation id="8378714024927312812">ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="8379878387931047019">ਇਹ ਡੀਵਾਈਸ ਇਸ ਵੈੱਬਸਾਈਟ ਵੱਲੋਂ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਦੀ ਕਿਸਮ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ</translation>
 <translation id="8379991678458444070">ਇਸ ਟੈਬ ਨੂੰ ਬੁੱਕਮਾਰਕ ਕਰੋ ਤਾਂ ਕਿ ਤੁਸੀਂ ਇੱਥੇ ਤੇਜ਼ੀ ਨਾਲ ਵਾਪਸ ਆ ਸਕੋ</translation>
@@ -6008,6 +6019,7 @@
 <translation id="8481187309597259238">USB ਇਜਾਜ਼ਤ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="8483248364096924578">IP ਪਤਾ</translation>
 <translation id="8487678622945914333">ਜ਼ੂਮ ਵਧਾਓ</translation>
+<translation id="8489156414266187072">ਨਿੱਜੀ ਸੁਝਾਅ ਸਿਰਫ਼ ਤੁਹਾਡੇ ਖਾਤੇ 'ਤੇ ਦਿਖਾਏ ਜਾਂਦੇ ਹਨ</translation>
 <translation id="8490896350101740396">ਹੇਠਾਂ ਦਿੱਤੇ ਕਿਓਸਕ ਐਪਾਂ "<ph name="UPDATED_APPS" />" ਅਪਡੇਟ ਕੀਤੇ ਗਏ ਹਨ। ਕਿਰਪਾ ਕਰਕੇ ਅਪਡੇਟ ਪ੍ਰਕਿਰਿਆ ਪੂਰੀ ਕਰਨ ਲਈ ਡਿਵਾਈਸ ਨੂੰ ਰੀਬੂਟ ਕਰੋ।</translation>
 <translation id="8493236660459102203">ਮਾਈਕ੍ਰੋਫੋਨ:</translation>
 <translation id="8496717697661868878">ਇਹ ਪਲੱਗਇਨ ਚਲਾਓ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 65782b2e..34015eea 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Pliku <ph name="FILE_NAME" /> nie można pobrać w bezpieczny sposób</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> chce się sparować</translation>
-<translation id="2341476639346994688">Drukarka została zatrzymana</translation>
 <translation id="2342740338116612727">Dodano zakładki</translation>
 <translation id="2343747224442182863">Ustaw tę kartę jako aktywną</translation>
 <translation id="2344686470986284227">Uruchamiam kontroler maszyny wirtualnej</translation>
@@ -3454,7 +3453,6 @@
 <translation id="5283677936944177147">Ups! System nie mógł określić modelu lub numeru seryjnego urządzenia.</translation>
 <translation id="5284445933715251131">Pobieraj dalej</translation>
 <translation id="5285635972691565180">Wyświetlacz <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Obszar odbioru jest pełny</translation>
 <translation id="5286194356314741248">Skanowanie</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Twoje konta</translation>
@@ -3676,7 +3674,6 @@
 <translation id="5553089923092577885">Odwzorowania zasad certyfikatu</translation>
 <translation id="5554489410841842733">Ta ikona jest widoczna wtedy, gdy rozszerzenie umożliwia wykonanie działania na bieżącej stronie.</translation>
 <translation id="5554720593229208774">Urząd certyfikacji poczty e-mail</translation>
-<translation id="5554931805291741487">Obszar odbioru jest prawie pełny</translation>
 <translation id="5556459405103347317">Odśwież</translation>
 <translation id="5558125320634132440">Ta strona została zablokowana, ponieważ może zawierać treści dla dorosłych</translation>
 <translation id="5558129378926964177">Po&amp;większ</translation>
@@ -4950,7 +4947,6 @@
 <translation id="7152478047064750137">To rozszerzenie nie wymaga specjalnych uprawnień</translation>
 <translation id="7154130902455071009">Zmiana strony startowej na: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Istniejące zdjęcie z kamery lub pliku</translation>
-<translation id="7163766494674803047">Błąd urządzenia drukarki</translation>
 <translation id="7165320105431587207">Nie można skonfigurować sieci</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />” może odczytywać pliki graficzne, wideo i dźwiękowe ze sprawdzonych lokalizacji.</translation>
 <translation id="7167486101654761064">&amp;Zawsze otwieraj pliki tego typu</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 6f9a06c0..92edd86 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Criado em</translation>
 <translation id="1067291318998134776">Linux (Beta)</translation>
 <translation id="1067922213147265141">Outros serviços do Google</translation>
+<translation id="1068961867683064946">Criar uma Conta do Google para a criança</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Outro programa no seu computador adicionou uma extensão que pode mudar a forma como o Google Chrome funciona.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Botão "Voltar" da subpágina <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Ver e gerenciar senhas salvas na sua <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Protege as Contas do Google pessoais de todos que correm risco de ataques direcionados</translation>
+<translation id="1325985428688410772">Adicionar espaço</translation>
 <translation id="1326317727527857210">Para ver as guias dos seus outros dispositivos, faça login no Chrome.</translation>
 <translation id="1327074568633507428">Impressora no Google Cloud Print</translation>
 <translation id="1327272175893960498">Tíquetes do Kerberos</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Configurar rede</translation>
 <translation id="230927227160767054">Esta página quer instalar um manipulador de serviço.</translation>
 <translation id="2309620859903500144">Este site foi impedido de acessar os sensores de luz ou movimento.</translation>
+<translation id="2314873619957287124">Defina regras digitais para ajudar a criança a aprender, brincar e explorar</translation>
 <translation id="2315414688463285945">Erro ao configurar arquivos do Linux. Tente novamente.</translation>
 <translation id="2315587498123194634">Enviar link para este dispositivo: <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Não.</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Perguntar quando um site quiser acessar portas seriais (recomendado)</translation>
 <translation id="2323018538045954000">Redes Wi-Fi salvas</translation>
 <translation id="2325444234681128157">Lembrar senha</translation>
+<translation id="2326160999284776503">Fazer login com a Conta do Google da criança</translation>
 <translation id="2326188115274135041">Confirme o PIN para ativar o desbloqueio automático</translation>
 <translation id="2326931316514688470">&amp;Recarregar aplicativo</translation>
 <translation id="2327492829706409234">Ativar aplicativo</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Não é possível fazer o download de <ph name="FILE_NAME" /> por motivos de segurança</translation>
 <translation id="2340263603246777781">O <ph name="ORIGIN" /> deseja realizar o pareamento</translation>
-<translation id="2341476639346994688">A impressora foi interrompida</translation>
 <translation id="2342740338116612727">Favoritos adicionados</translation>
 <translation id="2343747224442182863">Focar esta guia</translation>
 <translation id="2344686470986284227">Abrindo controle da máquina virtual</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Ocorreu um erro. Verifique sua impressora e tente novamente.</translation>
 <translation id="2387052489799050037">Ir para a tela inicial</translation>
 <translation id="2387458720915042159">Tipo de conexão proxy</translation>
+<translation id="2391082728065870591">Enviar relatório de feedback</translation>
 <translation id="2391419135980381625">Fonte padrão</translation>
 <translation id="2392163307141705938">Você atingiu o limite de tempo que seu pai/mãe definiu para <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Ativar</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Erro ao sincronizar senhas</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> tem permissão para ver e editar os arquivos e as pastas a seguir</translation>
 <translation id="2537927931785713436">Verificando a imagem da máquina virtual</translation>
+<translation id="2538084450874617176">Quem está usando este <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Sincronização desativada</translation>
 <translation id="2540449034743108469">Pressione "Iniciar" para ouvir as atividades da extensão</translation>
 <translation id="2541002089857695151">Otimizar transmissão em tela cheia?</translation>
@@ -2744,6 +2749,7 @@
 <translation id="4364327530094270451">Melão</translation>
 <translation id="4364567974334641491">O app <ph name="APP_NAME" /> está compartilhando uma janela.</translation>
 <translation id="4364830672918311045">Exibir notificações</translation>
+<translation id="4368115171699243057">Configurar este <ph name="DEVICE_TYPE" /> para uma criança</translation>
 <translation id="437004882363131692">Receba ofertas, atualizações e dicas sobre o <ph name="DEVICE_TYPE" /> e compartilhe seu feedback. É possível cancelar a inscrição a qualquer momento.</translation>
 <translation id="4370975561335139969">O e-mail e a senha que você digitou não coincidem.</translation>
 <translation id="4374831787438678295">Instalador do Linux</translation>
@@ -2904,6 +2910,7 @@
 <translation id="4565377596337484307">Ocultar senha</translation>
 <translation id="4565917129334815774">Armazenar registros de sistema</translation>
 <translation id="456717285308019641">Idioma de origem da página</translation>
+<translation id="4567533462991917415">É possível adicionar mais pessoas a qualquer momento após a configuração. Cada uma delas pode personalizar a própria conta e manter os dados privados.</translation>
 <translation id="4567772783389002344">Adicionar palavra</translation>
 <translation id="4568025708905928793">Uma chave de segurança está sendo solicitada</translation>
 <translation id="4568213207643490790">Contas do Google não são permitidas neste dispositivo.</translation>
@@ -2955,6 +2962,7 @@
 <translation id="4628762811416793313">A configuração do contêiner Linux não foi concluída. Tente novamente.</translation>
 <translation id="4633003931260532286">A extensão requer "<ph name="IMPORT_NAME" />" com a versão mínima "<ph name="IMPORT_VERSION" />", mas apenas a versão "<ph name="INSTALLED_VERSION" />" está instalada</translation>
 <translation id="4633757335284074492">Fazer backup no Google Drive Restaure dados ou troque de dispositivo a qualquer momento com facilidade. O backup inclui dados do app. Os backups são enviados ao Google e criptografados usando a senha da Conta do Google da criança.</translation>
+<translation id="4634575639321169635">Configurar este dispositivo para uso profissional ou pessoal</translation>
 <translation id="4634771451598206121">Fazer login novamente...</translation>
 <translation id="4635072447747973225">Desinstalar Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> não está disponível para usuários visitantes.</translation>
@@ -3373,6 +3381,7 @@
 <translation id="5185386675596372454">A versão mais recente de "<ph name="EXTENSION_NAME" />" foi desativada porque requer mais permissões.</translation>
 <translation id="5185500136143151980">Sem Internet</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Menu "opções" para <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Ativar porta</translation>
 <translation id="51918995459521422">Solicitação do download de vários arquivos feita por <ph name="ORIGIN" /></translation>
 <translation id="5192062846343383368">Abra o app Family Link para ver as configurações de supervisão</translation>
@@ -3449,7 +3458,6 @@
 <translation id="5283677936944177147">O sistema falhou ao determinar o modelo ou número de série do dispositivo.</translation>
 <translation id="5284445933715251131">Continuar o download</translation>
 <translation id="5285635972691565180">Tela <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">A área de saída está cheia</translation>
 <translation id="5286194356314741248">Verificando</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Suas contas</translation>
@@ -3620,6 +3628,7 @@
 <translation id="5495597166260341369">Manter a tela ligada</translation>
 <translation id="5496587651328244253">Organizar</translation>
 <translation id="5497251278400702716">Este arquivo</translation>
+<translation id="5498967291577176373">Escrever mais rápido com sugestões in-line para seu nome, endereço ou número de telefone</translation>
 <translation id="5499313591153584299">Este arquivo pode ser prejudicial para seu computador.</translation>
 <translation id="5499453227627332024">Um upgrade está disponível para o contêiner Linux. É possível fazê-lo mais tarde no app Configurações.</translation>
 <translation id="5500709606820808700">A "confirmação de segurança" foi executada hoje</translation>
@@ -3670,7 +3679,6 @@
 <translation id="5553089923092577885">Mapeamentos da diretiva de certificação</translation>
 <translation id="5554489410841842733">Este ícone ficará visível quando a extensão puder agir na página atual.</translation>
 <translation id="5554720593229208774">Autoridade de certificação de e-mail</translation>
-<translation id="5554931805291741487">A área de saída está quase cheia</translation>
 <translation id="5556459405103347317">Recarregar</translation>
 <translation id="5558125320634132440">Este site foi bloqueado porque pode apresentar conteúdo para maiores</translation>
 <translation id="5558129378926964177">Aumentar z&amp;oom</translation>
@@ -3778,6 +3786,7 @@
 <translation id="5689516760719285838">Local</translation>
 <translation id="56907980372820799">Vincular dados</translation>
 <translation id="5691511426247308406">Família</translation>
+<translation id="5691581861107245578">Receber sugestões de emojis com base no que você está digitando</translation>
 <translation id="5691772641933328258">Impressão digital não reconhecida</translation>
 <translation id="5692183275898619210">Impressão concluída</translation>
 <translation id="569425414730375234">Sessão anônima atual: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4137,6 +4146,7 @@
 <translation id="6124698108608891449">Este site precisa de outras permissões.</translation>
 <translation id="6125479973208104919">Adicione sua conta a esse <ph name="DEVICE_TYPE" /> novamente.</translation>
 <translation id="6129691635767514872">Os dados selecionados foram removidos do Chrome e dos dispositivos sincronizados. É possível que sua Conta do Google tenha outras formas de histórico de navegação, como pesquisas e atividades de outros serviços do Google em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Criança</translation>
 <translation id="6129938384427316298">Comentário do certificado do Netscape</translation>
 <translation id="6129953537138746214">Espaço</translation>
 <translation id="6130692320435119637">Adicionar Wi-Fi</translation>
@@ -4178,6 +4188,7 @@
 <translation id="6178664161104547336">Selecione um certificado</translation>
 <translation id="6181431612547969857">Download bloqueado</translation>
 <translation id="6185132558746749656">Localização do dispositivo</translation>
+<translation id="6195446518998936840">Para que você possa configurar o controle dos pais, a criança precisa ter uma Conta do Google, que você ajudará a gerenciar. Defina limites de tempo de uso, aprove ou bloqueie sites e muito mais com o app Family Link.</translation>
 <translation id="6195693561221576702">Não é possível configurar este dispositivo no modo de demonstração off-line.</translation>
 <translation id="6196640612572343990">Bloquear cookies de terceiros</translation>
 <translation id="6196854373336333322">A extensão "<ph name="EXTENSION_NAME" />" assumiu o controle das suas configurações de proxy, o que significa que ela pode alterar, invadir ou escutar qualquer coisa que você fizer on-line. Se você não tiver certeza do motivo dessa alteração, provavelmente não a deseja.</translation>
@@ -4943,7 +4954,6 @@
 <translation id="7152478047064750137">Esta extensão não requer permissões especiais</translation>
 <translation id="7154130902455071009">Alterar sua página inicial para: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto existente na câmera ou em arquivo</translation>
-<translation id="7163766494674803047">Erro no dispositivo de impressão</translation>
 <translation id="7165320105431587207">Falha ao configurar rede</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" pode ler imagens, vídeos e arquivos de som nos locais marcados.</translation>
 <translation id="7167486101654761064">&amp;Sempre abrir arquivos deste tipo</translation>
@@ -5933,6 +5943,7 @@
 <translation id="8372369524088641025">Chave WEP incorreta</translation>
 <translation id="8372477600026034341">Hosts extras</translation>
 <translation id="8373652277231415614">Diretórios compartilhados do Crostini</translation>
+<translation id="8376384591331888629">Incluindo os cookies de terceiros desse site</translation>
 <translation id="8378714024927312812">Gerenciado pela sua organização</translation>
 <translation id="8379878387931047019">Este dispositivo não é compatível com o tipo de chave de segurança solicitado por este site</translation>
 <translation id="8379991678458444070">Para voltar a esta guia rapidamente, adicione-a aos favoritos</translation>
@@ -6016,6 +6027,7 @@
 <translation id="8481187309597259238">Confirmar a permissão de USB</translation>
 <translation id="8483248364096924578">Endereço IP</translation>
 <translation id="8487678622945914333">Aproximar</translation>
+<translation id="8489156414266187072">As sugestões personalizadas são exibidas apenas na sua conta</translation>
 <translation id="8490896350101740396">Os aplicativos de quiosque "<ph name="UPDATED_APPS" />" a seguir foram atualizados. Reinicie o dispositivo para concluir o processo de atualização.</translation>
 <translation id="8493236660459102203">Microfone:</translation>
 <translation id="8496717697661868878">Executar este plug-in</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 630f8f4..7df9900 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Data da criação</translation>
 <translation id="1067291318998134776">Linux (beta)</translation>
 <translation id="1067922213147265141">Outros serviços Google</translation>
+<translation id="1068961867683064946">Criar uma Conta Google para a criança</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Outro programa no computador adicionou uma extensão que pode alterar o funcionamento do Chrome.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Botão anterior da subpágina <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Veja e faça a gestão das palavras-passe guardadas em <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="1324106254079708331">Salvaguarda as Contas Google pessoais de qualquer pessoa em risco de ataques direcionados.</translation>
+<translation id="1325985428688410772">Adicionar espaço</translation>
 <translation id="1326317727527857210">Para obter os separadores dos seus outros dispositivos, inicie sessão no Chrome.</translation>
 <translation id="1327074568633507428">Impressora no Google Cloud Print</translation>
 <translation id="1327272175893960498">Permissões Kerberos</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Configurar rede</translation>
 <translation id="230927227160767054">Esta página pretende instalar um controlador de serviço.</translation>
 <translation id="2309620859903500144">Este site foi impedido de aceder aos seus sensores de movimento ou de luz.</translation>
+<translation id="2314873619957287124">Defina regras digitais básicas para ajudar a criança a aprender, jogar e explorar.</translation>
 <translation id="2315414688463285945">Ocorreu um erro ao configurar os ficheiros Linux. Tente novamente.</translation>
 <translation id="2315587498123194634">Enviar link para <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Não, obrigado</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Quando um site pretender aceder a portas de série, perguntar se tem autorização (recomendado)</translation>
 <translation id="2323018538045954000">Redes Wi-Fi guardadas</translation>
 <translation id="2325444234681128157">Memorizar palavra-passe</translation>
+<translation id="2326160999284776503">Iniciar sessão com a Conta Google da criança</translation>
 <translation id="2326188115274135041">Confirme o PIN para ativar o desbloqueio automático.</translation>
 <translation id="2326931316514688470">&amp;Recarregar aplicação</translation>
 <translation id="2327492829706409234">Ativar aplicação</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Não é possível transferir o ficheiro <ph name="FILE_NAME" /> em segurança.</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> pretende sincronizar</translation>
-<translation id="2341476639346994688">A impressora está parada.</translation>
 <translation id="2342740338116612727">Marcadores adicionados</translation>
 <translation id="2343747224442182863">Focar este separador</translation>
 <translation id="2344686470986284227">A iniciar o controlador da máquina virtual…</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Ocorreu um erro. Verifique a impressora e tente novamente.</translation>
 <translation id="2387052489799050037">Aceda à Página inicial</translation>
 <translation id="2387458720915042159">Tipo de ligação proxy</translation>
+<translation id="2391082728065870591">Enviar relatório de feedback</translation>
 <translation id="2391419135980381625">Tipo de letra padrão</translation>
 <translation id="2392163307141705938">Atingiste o limite de tempo que o teu Pai ou Mãe definiu para o <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Ativar</translation>
@@ -1281,6 +1285,7 @@
 <translation id="2537178555904266562">Erro ao sincronizar as palavras-passe.</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> pode ver e editar os seguintes ficheiros e pastas</translation>
 <translation id="2537927931785713436">A verificar a imagem da máquina virtual…</translation>
+<translation id="2538084450874617176">Quem está a utilizar este <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Sincronização desativada</translation>
 <translation id="2540449034743108469">Prima "Iniciar" para ouvir atividades de extensões</translation>
 <translation id="2541002089857695151">Pretende otimizar a transmissão de ecrã inteiro?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Melão</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> está a partilhar uma janela.</translation>
 <translation id="4364830672918311045">Apresentar notificações</translation>
+<translation id="4368115171699243057">Configure este <ph name="DEVICE_TYPE" /> para a criança</translation>
 <translation id="437004882363131692">Obtenha sugestões, ofertas e atualizações do <ph name="DEVICE_TYPE" /> e partilhe feedback. Anule a subscrição em qualquer altura.</translation>
 <translation id="4370975561335139969">O email e a palavra-passe introduzidos não coincidem.</translation>
 <translation id="4374831787438678295">Instalador para o Linux</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Ocultar palavra-passe</translation>
 <translation id="4565917129334815774">Armazenar registos do sistema</translation>
 <translation id="456717285308019641">Idioma da página a traduzir</translation>
+<translation id="4567533462991917415">Pode sempre adicionar mais pessoas após a configuração. Cada pessoa pode personalizar a respetiva conta e manter os dados privados.</translation>
 <translation id="4567772783389002344">Adicionar palavra</translation>
 <translation id="4568025708905928793">Está a ser solicitada uma chave de segurança</translation>
 <translation id="4568213207643490790">Lamentamos, mas as Contas Google não são permitidas neste dispositivo.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">A configuração do contentor do Linux não foi concluída. Tente novamente.</translation>
 <translation id="4633003931260532286">A extensão requer "<ph name="IMPORT_NAME" />" com, pelo menos, a versão "<ph name="IMPORT_VERSION" />", mas apenas está instalada a versão "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="4633757335284074492">Faça uma cópia de segurança para o Google Drive. Restaure facilmente os dados ou troque de dispositivo em qualquer altura. Esta cópia de segurança inclui dados de apps. As cópias de segurança são carregadas para a Google e encriptadas com a palavra-passe da Conta Google da criança.</translation>
+<translation id="4634575639321169635">Configure este dispositivo para utilização profissional ou pessoal.</translation>
 <translation id="4634771451598206121">Iniciar sessão novamente...</translation>
 <translation id="4635072447747973225">Desinstalar Crostini</translation>
 <translation id="4635398712689569051">A página <ph name="PAGE_NAME" /> não está disponível para os utilizadores convidados.</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">A versão mais recente de "<ph name="EXTENSION_NAME" />" foi desativada porque necessita de mais permissões.</translation>
 <translation id="5185500136143151980">Sem Internet</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Menu de opções para <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Ativar porta</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> pretende transferir vários ficheiros.</translation>
 <translation id="5192062846343383368">Abra a aplicação Family Link para ver as suas definições de supervisão.</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">Ups! O sistema não conseguiu determinar o modelo ou o número de série do dispositivo.</translation>
 <translation id="5284445933715251131">Continuar a transferir</translation>
 <translation id="5285635972691565180">Ecrã <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">A área de saída está cheia.</translation>
 <translation id="5286194356314741248">A procurar</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">As suas contas</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Manter o ecrã ligado</translation>
 <translation id="5496587651328244253">Organizar</translation>
 <translation id="5497251278400702716">Este ficheiro</translation>
+<translation id="5498967291577176373">Escreva mais rapidamente com sugestões inline para o seu nome, endereço ou número de telefone.</translation>
 <translation id="5499313591153584299">Este ficheiro pode ser prejudicial para o seu computador.</translation>
 <translation id="5499453227627332024">Está disponível uma atualização para o seu contentor do Linux. Também pode atualizar mais tarde na app Definições.</translation>
 <translation id="5500709606820808700">A verificação de segurança foi efetuada hoje.</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Mapeamentos de políticas de certificados</translation>
 <translation id="5554489410841842733">Este ícone estará visível se for possível utilizar a extensão na página actual.</translation>
 <translation id="5554720593229208774">Autoridade de certificação de e-mails</translation>
-<translation id="5554931805291741487">A área de saída está quase cheia.</translation>
 <translation id="5556459405103347317">Recarregar</translation>
 <translation id="5558125320634132440">Este site está bloqueado porque pode ter conteúdo não apropriado para menores</translation>
 <translation id="5558129378926964177">Amp&amp;liar</translation>
@@ -3777,6 +3785,7 @@
 <translation id="5689516760719285838">Local</translation>
 <translation id="56907980372820799">Associar dados</translation>
 <translation id="5691511426247308406">Família</translation>
+<translation id="5691581861107245578">Obtenha sugestões de emojis com base no que está a escrever.</translation>
 <translation id="5691772641933328258">Impressão digital não reconhecida</translation>
 <translation id="5692183275898619210">Impressão concluída</translation>
 <translation id="569425414730375234">Sessão de Navegação anónima atual: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" />.</translation>
@@ -4136,6 +4145,7 @@
 <translation id="6124698108608891449">Este site precisa de mais autorizações.</translation>
 <translation id="6125479973208104919">Infelizmente, tem de adicionar novamente a sua conta a este <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6129691635767514872">Os dados selecionados foram removidos do Chrome e dos dispositivos sincronizados. A sua Conta Google pode ter outras formas do histórico de navegação, tais como as pesquisas e a atividade de outros serviços Google em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">A criança</translation>
 <translation id="6129938384427316298">Comentário do certificado Netscape</translation>
 <translation id="6129953537138746214">Espaço</translation>
 <translation id="6130692320435119637">Adicionar Wi-Fi</translation>
@@ -4176,6 +4186,7 @@
 <translation id="6178664161104547336">Selecionar um certificado</translation>
 <translation id="6181431612547969857">Transferência bloqueada</translation>
 <translation id="6185132558746749656">Localização do dispositivo</translation>
+<translation id="6195446518998936840">Para configurar o controlo parental, a criança tem de ter uma Conta Google que irá ajudar a gerir. Pode definir limites de tempo de utilização, aprovar ou bloquear Websites e muito mais com a app Family Link.</translation>
 <translation id="6195693561221576702">Não é possível configurar este dispositivo no modo de demonstração offline.</translation>
 <translation id="6196640612572343990">Bloquear cookies de terceiros</translation>
 <translation id="6196854373336333322">A extensão "<ph name="EXTENSION_NAME" />" apoderou-se das suas definições de proxy, o que significa que pode alterar, interromper ou intercetar qualquer coisa que esteja a fazer online. Se não tem a certeza do motivo pelo qual aconteceu esta alteração, é provável que não a queira.</translation>
@@ -4941,7 +4952,6 @@
 <translation id="7152478047064750137">Esta extensão não requer autorizações especiais.</translation>
 <translation id="7154130902455071009">Alterar a página de início para: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Foto existente da câmara ou do ficheiro</translation>
-<translation id="7163766494674803047">Erro de dispositivo da impressora.</translation>
 <translation id="7165320105431587207">Não foi possível configurar a rede</translation>
 <translation id="716640248772308851">A extensão "<ph name="EXTENSION" />" consegue ler imagens, ficheiros de vídeo e de som nas localizações confirmadas.</translation>
 <translation id="7167486101654761064">&amp;Abrir sempre ficheiros deste tipo</translation>
@@ -5930,6 +5940,7 @@
 <translation id="8372369524088641025">Chave WEP incorrecta</translation>
 <translation id="8372477600026034341">Anfitriões adicionais</translation>
 <translation id="8373652277231415614">Diretórios partilhados do Crostini</translation>
+<translation id="8376384591331888629">Incluindo cookies de terceiros neste site</translation>
 <translation id="8378714024927312812">Gerido pela sua entidade</translation>
 <translation id="8379878387931047019">Este dispositivo não suporta o tipo de chave de segurança necessário para este Website.</translation>
 <translation id="8379991678458444070">Volte aqui rapidamente ao adicionar este separador aos marcadores</translation>
@@ -6013,6 +6024,7 @@
 <translation id="8481187309597259238">Confirmar autorização USB</translation>
 <translation id="8483248364096924578">Endereço IP</translation>
 <translation id="8487678622945914333">Ampliar</translation>
+<translation id="8489156414266187072">As sugestões pessoais apenas são mostradas na sua conta.</translation>
 <translation id="8490896350101740396">As seguintes aplicações de quiosque "<ph name="UPDATED_APPS" />" foram atualizadas. Reinicie o dispositivo para concluir o processo de atualização.</translation>
 <translation id="8493236660459102203">Microfone:</translation>
 <translation id="8496717697661868878">Executar este plug-in</translation>
@@ -6510,7 +6522,7 @@
 <translation id="9088234649737575428">O <ph name="PLUGIN_NAME" /> está bloqueado pela política da empresa</translation>
 <translation id="9088446193279799727">Não foi possível configurar o Linux. Estabeleça ligação à Internet e tente novamente.</translation>
 <translation id="9088917181875854783">Confirme se esta chave de acesso aparece no "<ph name="DEVICE_NAME" />":</translation>
-<translation id="9093429538970210897">Recomenda-se fazer uma cópia de segurança dos ficheiros caso não seja possível concluir a atualização. Iniciar a atualização vai fazer com que o Linux (Beta) encerre. Guarde os ficheiros abertos antes de prosseguir.</translation>
+<translation id="9093429538970210897">Recomenda-se fazer uma cópia de segurança dos ficheiros caso não seja possível concluir a atualização. Iniciar a atualização vai fazer com que o Linux (Beta) seja encerrado. Guarde os ficheiros abertos antes de prosseguir.</translation>
 <translation id="9094033019050270033">Atualizar a palavra-passe</translation>
 <translation id="9094038138851891550">Nome de utilizador inválido</translation>
 <translation id="9094982973264386462">Remover</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 3d2b5618..7d343b62 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> nu se poate descărca în siguranță</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> dorește să se asocieze</translation>
-<translation id="2341476639346994688">Imprimanta s-a oprit</translation>
 <translation id="2342740338116612727">Au fost adăugate marcaje</translation>
 <translation id="2343747224442182863">Focalizează această filă</translation>
 <translation id="2344686470986284227">Se pornește controlerul mașinii virtuale</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Hopa! Sistemul nu a detectat modelul sau numărul de serie al dispozitivului.</translation>
 <translation id="5284445933715251131">Continuă descărcarea</translation>
 <translation id="5285635972691565180">Ecranul <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Zona de ieșire este plină</translation>
 <translation id="5286194356314741248">Scanare</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Conturile dvs.</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Mapări de certificate de politică</translation>
 <translation id="5554489410841842733">Această pictogramă va deveni vizibilă când extensia va putea acționa pe pagina curentă.</translation>
 <translation id="5554720593229208774">Autoritate de certificare e-mail</translation>
-<translation id="5554931805291741487">Zona de ieșire este aproape plină</translation>
 <translation id="5556459405103347317">Reîncarcă</translation>
 <translation id="5558125320634132440">Acest site este blocat, deoarece poate include conținut destinat adulților</translation>
 <translation id="5558129378926964177">Măr&amp;ește</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Această extensie nu necesită permisiuni speciale</translation>
 <translation id="7154130902455071009">Schimbați pagina de start la: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Fotografie existentă din camera foto sau din fișier</translation>
-<translation id="7163766494674803047">Eroare la imprimantă</translation>
 <translation id="7165320105431587207">Rețeaua nu a putut fi configurată</translation>
 <translation id="716640248772308851">Extensia „<ph name="EXTENSION" />” poate citi imagini, videoclipuri și fișiere audio în locațiile indicate.</translation>
 <translation id="7167486101654761064">&amp;Deschide întotdeauna fișierele de acest tip</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 43eaca7..e492fc8 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -67,7 +67,7 @@
 <translation id="1070705170564860382">Страница откроется в альтернативном браузере через <ph name="COUNTDOWN_SECONDS" /> сек.</translation>
 <translation id="1071917609930274619">Шифрование данных</translation>
 <translation id="1072700771426194907">Обнаружено USB-устройство</translation>
-<translation id="1076176485976385390">Переходите по страницам с помощью курсора</translation>
+<translation id="1076176485976385390">Навигация по страницам с помощью курсора</translation>
 <translation id="1076698951459398590">Включить тему</translation>
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Всегда блокировать доступ к камере</translation>
@@ -386,7 +386,7 @@
 <translation id="1465827627707997754">Кусок пиццы</translation>
 <translation id="1468571364034902819">Нельзя использовать этот профиль</translation>
 <translation id="1470084204649225129">{NUM_TABS,plural, =1{Добавить вкладку в новую группу}one{Добавить вкладки в новую группу}few{Добавить вкладки в новую группу}many{Добавить вкладки в новую группу}other{Добавить вкладки в новую группу}}</translation>
-<translation id="1470946456740188591">Чтобы включить или отключить режим активного курсора, нажмите Ctrl + Поиск + 7.</translation>
+<translation id="1470946456740188591">Чтобы включить или отключить режим активного курсора, нажмите Ctrl + Поиск + 7</translation>
 <translation id="1472675084647422956">Показать больше...</translation>
 <translation id="1474785664565228650">Изменено разрешение на доступ к микрофону. Чтобы продолжить, перезапустите Parallels Desktop.</translation>
 <translation id="1475502736924165259">У вас имеются сертификаты, которые не попадают ни в одну из других категорий</translation>
@@ -410,7 +410,7 @@
 <translation id="1500297251995790841">Неизвестное устройство [<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />]</translation>
 <translation id="1503394326855300303">При одновременной работе в нескольких аккаунтах необходимо сначала зайти в аккаунт владельца.</translation>
 <translation id="150411034776756821">Удалить <ph name="SITE" /></translation>
-<translation id="1504311855864906891">Субтитры для вашего медиаконтента</translation>
+<translation id="1504311855864906891">Автоматические субтитры</translation>
 <translation id="1504551620756424144">В Windows общие папки находятся здесь: <ph name="BASE_DIR" />.</translation>
 <translation id="1506061864768559482">Поисковая система</translation>
 <translation id="1507170440449692343">Доступ к вашей камере для этой страницы заблокирован.</translation>
@@ -1107,7 +1107,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Невозможно безопасно скачать файл "<ph name="FILE_NAME" />".</translation>
 <translation id="2340263603246777781">Сайт <ph name="ORIGIN" /> запрашивает подключение</translation>
-<translation id="2341476639346994688">Работа принтера остановлена.</translation>
 <translation id="2342740338116612727">Закладки добавлены</translation>
 <translation id="2343747224442182863">Переключиться на эту вкладку</translation>
 <translation id="2344686470986284227">Запуск контроллера виртуальной машины</translation>
@@ -1115,7 +1114,7 @@
 <translation id="2347644257713614136">Использование Hangouts и Cast for Education регулируется Политикой конфиденциальности Google.</translation>
 <translation id="2348176352564285430">Приложение: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="234889437187286781">При загрузке данных произошла ошибка.</translation>
-<translation id="2349065708974079577">Настройте заставку, которая будет показываться во время зарядки телефона.</translation>
+<translation id="2349065708974079577">Настройте заставку, которая будет показываться во время зарядки устройства.</translation>
 <translation id="2349896577940037438">Если запись дополнительной истории приложений и веб-поиска включена, эта информация может сохраняться в вашем аккаунте. Чтобы посмотреть или удалить данные, а также изменить настройки аккаунта, перейдите на страницу account.google.com.</translation>
 <translation id="2350133097354918058">Перезапущено.</translation>
 <translation id="2350182423316644347">Запуск приложения...</translation>
@@ -1505,7 +1504,7 @@
 <translation id="2805770823691782631">Дополнительные сведения</translation>
 <translation id="2807517655263062534">Скачанные файлы появятся здесь</translation>
 <translation id="2809586584051668049">и ещё <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation>
-<translation id="2810024255621914659">Будет создано слайд-шоу из выбранных памятных фотографий. Чтобы внести изменения в существующие альбомы, перейдите в <ph name="LINK_BEGIN" />Google Фото<ph name="LINK_END" />.</translation>
+<translation id="2810024255621914659">Из выбранных фотографий будет показано слайд-шоу. Чтобы изменить существующие альбомы, перейдите в <ph name="LINK_BEGIN" />Google Фото<ph name="LINK_END" />.</translation>
 <translation id="2810390687497823527">Если вы обнаружили незнакомое расширение или заметили сбои в работе браузера, вы можете отключить расширение или изменить его настройки.</translation>
 <translation id="2812049959647166806">Thunderbolt не поддерживается</translation>
 <translation id="2812989263793994277">Не показывать</translation>
@@ -2720,7 +2719,7 @@
 <translation id="4336434711095810371">Удалить все данные</translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> запрашивает доступ к приложению "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4340575312453649552">Это объявление удалено, так как оно использовало слишком много системных ресурсов.</translation>
-<translation id="4341577178275615435">Чтобы включить или отключить режим активного курсора, нажмите F7.</translation>
+<translation id="4341577178275615435">Чтобы включить или отключить режим активного курсора, нажмите F7</translation>
 <translation id="434404122609091467">Использовать текущего поставщика услуг</translation>
 <translation id="4345587454538109430">Настройка...</translation>
 <translation id="4345732373643853732">Серверу неизвестно это имя пользователя.</translation>
@@ -2819,7 +2818,7 @@
 <translation id="4469477701382819144">Объявления заблокированы на сайтах, которые показывают навязчивую или вводящую в заблуждение рекламу.</translation>
 <translation id="4469762931504673593"><ph name="ORIGIN" /> может изменять файлы в папке "<ph name="FOLDERNAME" />".</translation>
 <translation id="4470957202018033307">Настройки внешних накопителей</translation>
-<translation id="4471354919263203780">Скачивание файлов распознавания речи… <ph name="PERCENT" /> %</translation>
+<translation id="4471354919263203780">Скачивание файлов распознавания речи: <ph name="PERCENT" /> %…</translation>
 <translation id="447252321002412580">Помогать повышать производительность Chrome и улучшать функции</translation>
 <translation id="4472575034687746823">Начало работы</translation>
 <translation id="4474155171896946103">Добавить все вкладки в закладки…</translation>
@@ -3235,7 +3234,7 @@
 <translation id="5015344424288992913">Определение прокси-сервера...</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">Запомнить</translation>
-<translation id="5017643436812738274">Вы сможете переходить по страницам с помощью курсора. Чтобы включить эту функцию, нажмите Ctrl + Поиск + 7.</translation>
+<translation id="5017643436812738274">Вы сможете использовать курсор для навигации по страницам. Чтобы отключить эту функцию, нажмите Ctrl + Поиск + 7.</translation>
 <translation id="5018207570537526145">Перейти на сайт разработчика</translation>
 <translation id="5018526990965779848">Отправка данных об использовании и диагностике. Помогите сделать Android ещё лучше – разрешите автоматически отправлять в Google диагностическую информацию, данные об использовании приложений и самого устройства. Эти сведения помогут нам повысить стабильность приложений и внести другие улучшения. Некоторые агрегированные данные пригодятся партнерам Google, например разработчикам Android. Если запись дополнительной истории приложений и веб-поиска включена, эта информация может сохраняться в вашем аккаунте.</translation>
 <translation id="5021750053540820849">Ещё не обновлено</translation>
@@ -3446,7 +3445,6 @@
 <translation id="5283677936944177147">Не удалось определить модель или серийный номер устройства.</translation>
 <translation id="5284445933715251131">Продолжить скачивание</translation>
 <translation id="5285635972691565180">Экран <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Выходной лоток заполнен.</translation>
 <translation id="5286194356314741248">Сканирование...</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Аккаунты</translation>
@@ -3590,7 +3588,7 @@
 <translation id="5464660706533281090">Значение этого параметра может изменить только взрослый пользователь.</translation>
 <translation id="5466374726908360271">Вст&amp;авить и найти "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5468173180030470402">Поиск общих папок…</translation>
-<translation id="5469852975082458401">Вы сможете переходить по страницам с помощью курсора. Нажмите F7, чтобы отключить эту функцию.</translation>
+<translation id="5469852975082458401">Вы сможете использовать курсор для навигации по страницам. Нажмите F7, чтобы отключить эту функцию.</translation>
 <translation id="5470735824776589490">Перед сбросом настроек с помощью функции Powerwash необходимо перезагрузить устройство. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Здравствуйте! Я буду озвучивать для вас текст.</translation>
 <translation id="5472627187093107397">Сохранять пароли для этого сайта</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">Сопоставления политики сертификатов</translation>
 <translation id="5554489410841842733">Значок будет видимым, если расширение может работать на текущей странице.</translation>
 <translation id="5554720593229208774">Центр сертификации электронной почты</translation>
-<translation id="5554931805291741487">Выходной лоток почти заполнен.</translation>
 <translation id="5556459405103347317">Перезагрузить</translation>
 <translation id="5558125320634132440">Сайт заблокирован, так как может содержать материалы для взрослых</translation>
 <translation id="5558129378926964177">&amp;Увеличить</translation>
@@ -3683,7 +3680,7 @@
 <translation id="5575473780076478375">Расширение в режиме инкогнито: <ph name="EXTENSION_NAME" /></translation>
 <translation id="5575528586625653441">Возникла проблема с запросом на регистрацию демонстрационного режима.</translation>
 <translation id="557722062034137776">Сброс устройства не повлияет на ваши аккаунты Google и синхронизируемые с ними данные. Но все сохраненные на устройстве файлы будут удалены.</translation>
-<translation id="5578016818170236660">Выберите памятные фотографии</translation>
+<translation id="5578016818170236660">Выбрать фотографии</translation>
 <translation id="5578059481725149024">Автоматический вход</translation>
 <translation id="558170650521898289">Проверка драйвера оборудования Microsoft Windows</translation>
 <translation id="5581972110672966454">Не удалось подключить устройство к домену. Повторите попытку или обратитесь к владельцу или администратору устройства. Код ошибки: <ph name="ERROR_CODE" />.</translation>
@@ -4449,7 +4446,7 @@
 <translation id="6532527800157340614">При выполнении входа произошла ошибка: не удалось получить токен доступа. Проверьте подключение к сети и повторите попытку.</translation>
 <translation id="6532663472409656417">Зарегистрировано в корпоративном домене</translation>
 <translation id="6535331821390304775">Всегда разрешать сайту <ph name="ORIGIN" /> открывать ссылки этого типа в связанном приложении</translation>
-<translation id="6538635548667167211">Выбран режим передачи данных "Данные"</translation>
+<translation id="6538635548667167211">Выбран режим передачи данных "Wi-Fi и мобильный Интернет"</translation>
 <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Примечание.<ph name="END_BOLD" /> Данную функцию следует включать только при необходимости, поскольку сбор данных может замедлить работу системы.</translation>
 <translation id="6541638731489116978">Этому сайту закрыт доступ к датчикам движения.</translation>
 <translation id="6545665334409411530">Скорость повтора</translation>
@@ -4938,7 +4935,6 @@
 <translation id="7152478047064750137">Расширению не требуются особые разрешения</translation>
 <translation id="7154130902455071009">Смена стартовой страницы на <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Фото с камеры или из галереи</translation>
-<translation id="7163766494674803047">Ошибка принтера.</translation>
 <translation id="7165320105431587207">Не удалось настроить сеть</translation>
 <translation id="716640248772308851">Расширению "<ph name="EXTENSION" />" будет предоставлен доступ для чтения к изображениям, видео- и аудиофайлам в отмеченных папках.</translation>
 <translation id="7167486101654761064">&amp;Всегда открывать файлы этого типа</translation>
@@ -5786,7 +5782,7 @@
 <translation id="8198323535106903877">Эти приложения (<ph name="NUMBER_OF_APPS" />) будут установлены на ваше устройство</translation>
 <translation id="8199300056570174101">Настройки сети и устройства</translation>
 <translation id="8200772114523450471">Возобновить</translation>
-<translation id="8201717382574620700">Выберите альбомы в <ph name="TOPIC_SOURCE" /></translation>
+<translation id="8201717382574620700">Выбрать альбомы здесь: <ph name="TOPIC_SOURCE" /></translation>
 <translation id="8202160505685531999">Чтобы обновить профиль устройства <ph name="DEVICE_TYPE" />, введите пароль ещё раз</translation>
 <translation id="8203732864715032075">Показывать на этом компьютере уведомления о сообщениях, полученных на телефоне. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
 <translation id="820568752112382238">Часто открываемые сайты</translation>
@@ -6019,7 +6015,7 @@
 <translation id="8500234928660943538">Неверный PUK-код. Осталось попыток: <ph name="RETRIES" />.</translation>
 <translation id="8502536196501630039">Чтобы использовать приложения из Google Play, сначала восстановите свои приложения. Некоторые данные могли быть потеряны.</translation>
 <translation id="8503813439785031346">Имя пользователя</translation>
-<translation id="8504640708321980506">Данные</translation>
+<translation id="8504640708321980506">Wi-Fi и мобильный Интернет</translation>
 <translation id="8507227974644337342">Разрешение экрана</translation>
 <translation id="850875081535031620">Вредоносных программ не найдено.</translation>
 <translation id="8509177919508253835">Сбросьте настройки электронных ключей и задайте PIN-коды.</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 589d0f0..17ac526 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -1109,7 +1109,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> සුරක්ෂිතව බාගත නොහැක</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> හට යුගල වීමට අවශ්‍යයි</translation>
-<translation id="2341476639346994688">මුද්‍රණ යන්ත්‍රය නැවතී ඇත</translation>
 <translation id="2342740338116612727">පිටුසන් එක් කළා</translation>
 <translation id="2343747224442182863">මෙම පටිත්තට අවධානය යොමු කරන්න</translation>
 <translation id="2344686470986284227">අතත්‍ය යන්ත්‍ර පාලකය ආරම්භ කිරීම</translation>
@@ -3456,7 +3455,6 @@
 <translation id="5283677936944177147">අපොයි! පද්ධතිය උපාංගයේ මාදිලිය හෝ අනුක්‍රමික අංකය තීරණය කිරීමට අසමත් විය.</translation>
 <translation id="5284445933715251131">බාගැනීම දිගටම කරන්න</translation>
 <translation id="5285635972691565180">සංදර්ශකය <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">ප්‍රතිදාන ක්ෂේත්‍රය පිරී ඇත</translation>
 <translation id="5286194356314741248">ස්කෑන් කිරීම</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">ඔබේ ගිණුම්</translation>
@@ -3678,7 +3676,6 @@
 <translation id="5553089923092577885">සහතික ප්‍රතිපත්ති සිතියම්කරණය</translation>
 <translation id="5554489410841842733">දිගුව හට වත්මන් පිටුව මත ක්‍රියාත්මක වීමට හැකි විට මෙම අයිකනය දිස්වේ.</translation>
 <translation id="5554720593229208774">ඊමේල් සහතික කිරීමේ අධිකාරිය</translation>
-<translation id="5554931805291741487">ප්‍රතිදාන ප්‍රදේශය පිරී ඇත</translation>
 <translation id="5556459405103347317">නැවත</translation>
 <translation id="5558125320634132440">මෙම වෙබ් අඩවියේ වැඩිහිටි අන්තර්ගතය තිබිය හැකි බැවින් මෙය අවහිර කර ඇත</translation>
 <translation id="5558129378926964177">විශාල කරන්න</translation>
@@ -4951,7 +4948,6 @@
 <translation id="7152478047064750137">මෙම දිගුවට විශේෂ අවසරයක් අවශ්‍ය නොවේ.</translation>
 <translation id="7154130902455071009">ඔබේ ආරම්භක පිටුව මේ ආකාරයට වෙනස් කරන්න: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">කැමරාව හෝ ගොනුව වෙතින් පවතින ඡායාරූප</translation>
-<translation id="7163766494674803047">මුද්‍රණ යන්ත්‍ර උපාංග දෝෂය</translation>
 <translation id="7165320105431587207">ජාලය සැකසීම අසාර්ථකයි</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" ට ලකුණු කළ ස්ථාන තුළ ඇති රූප, වීඩියෝ සහ ශබ්ද ගොනු කියවීමට හැකිය</translation>
 <translation id="7167486101654761064">මෙම වර්ගය සඳහා සැමවිටම ගොනු විවෘත කරන්න (&amp;A)</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 6e05eb51..cbc9ed03 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Súbor <ph name="FILE_NAME" /> nie je možné bezpečne stiahnuť</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> žiada o spárovanie</translation>
-<translation id="2341476639346994688">Tlačiareň je zastavená</translation>
 <translation id="2342740338116612727">Boli pridané záložky</translation>
 <translation id="2343747224442182863">Označiť túto kartu</translation>
 <translation id="2344686470986284227">Spúšťa sa ovládač virtuálneho počítača</translation>
@@ -3447,7 +3446,6 @@
 <translation id="5283677936944177147">Ojoj! Systém nedokázal rozpoznať model zariadenia alebo sériové číslo.</translation>
 <translation id="5284445933715251131">Pokračovať v sťahovaní</translation>
 <translation id="5285635972691565180">Obrazovka <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Oblasť výstupu je plná</translation>
 <translation id="5286194356314741248">Prebieha vyhľadávanie</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Vaše účty</translation>
@@ -3668,7 +3666,6 @@
 <translation id="5553089923092577885">Priraďovanie politiky certifikátu</translation>
 <translation id="5554489410841842733">Táto ikona sa zobrazí, keď bude môcť dané rozšírenie na aktuálnej stránke realizovať akcie.</translation>
 <translation id="5554720593229208774">E-mailová certifikačná autorita</translation>
-<translation id="5554931805291741487">Oblasť výstupu je takmer plná</translation>
 <translation id="5556459405103347317">Znova načítať</translation>
 <translation id="5558125320634132440">Tento web je blokovaný, pretože sa na ňom môže nachádzať obsah nevhodný pre deti</translation>
 <translation id="5558129378926964177">Priblíž&amp;iť</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">Toto rozšírenie nevyžaduje žiadne špeciálne povolenia</translation>
 <translation id="7154130902455071009">Zmeniť úvodnú stránku na: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Existujúca fotka z fotoaparátu alebo súboru</translation>
-<translation id="7163766494674803047">Chyba tlačiarne</translation>
 <translation id="7165320105431587207">Sieť sa nepodarilo nakonfigurovať</translation>
 <translation id="716640248772308851">Rozšírenie <ph name="EXTENSION" /> môže čítať obrázky, video a zvukové súbory vo vybratých umiestneniach.</translation>
 <translation id="7167486101654761064">&amp;Vždy otvárať súbory tohto typu</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index b0cab723..f532ac44 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1112,7 +1112,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Datoteke <ph name="FILE_NAME" /> ni mogoče varno prenesti</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> želi izvesti seznanitev</translation>
-<translation id="2341476639346994688">Tiskalnik je ustavljen</translation>
 <translation id="2342740338116612727">Dodani zaznamki</translation>
 <translation id="2343747224442182863">Izberi ta zavihek</translation>
 <translation id="2344686470986284227">Zagon kontrolnika navideznega računalnika</translation>
@@ -3458,7 +3457,6 @@
 <translation id="5283677936944177147">Ojoj. Sistemu ni uspelo določiti modela ali serijske številke naprave.</translation>
 <translation id="5284445933715251131">Nadaljuj prenašanje</translation>
 <translation id="5285635972691565180">Zaslon <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Izhodno območje je polno</translation>
 <translation id="5286194356314741248">Pregledovanje</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Vaši računi</translation>
@@ -3680,7 +3678,6 @@
 <translation id="5553089923092577885">Preslikave pravilnika potrdila</translation>
 <translation id="5554489410841842733">Ta ikona bo vidna, ko lahko razširitev deluje na trenutni strani.</translation>
 <translation id="5554720593229208774">Overitelj potrdil za e-pošto</translation>
-<translation id="5554931805291741487">Izhodno območje je skoraj polno</translation>
 <translation id="5556459405103347317">Znova naloži</translation>
 <translation id="5558125320634132440">To spletno mesto je blokirano, ker morda vsebuje neprimerno vsebino za otroke</translation>
 <translation id="5558129378926964177">Po&amp;večaj</translation>
@@ -4956,7 +4953,6 @@
 <translation id="7152478047064750137">Za to razširitev niso potrebna posebna dovoljenja</translation>
 <translation id="7154130902455071009">Sprememba začetne strani na: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Obstoječa fotografija iz fotoaparata ali datoteke</translation>
-<translation id="7163766494674803047">Napaka naprave v tiskalniku</translation>
 <translation id="7165320105431587207">Omrežja ni bilo mogoče konfigurirati</translation>
 <translation id="716640248772308851">Razširitev »<ph name="EXTENSION" />« lahko prebere slike ter videodatoteke in zvočne datoteke na označenih lokacijah.</translation>
 <translation id="7167486101654761064">&amp;Vedno odpri to vrsto datotek</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index b2689c2d..ecf63374 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">Rivendosje në gjendjen e fabrikës</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> nuk mund të shkarkohet në mënyrë të sigurt</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> dëshiron të çiftohet</translation>
-<translation id="2341476639346994688">Printeri ka ndaluar</translation>
 <translation id="2342740338116612727">Faqeshënuesit u shtuan</translation>
 <translation id="2343747224442182863">Fokuso këtë skedë</translation>
 <translation id="2344686470986284227">Po niset kontrolluesi i pajisjes virtuale</translation>
@@ -3445,7 +3444,6 @@
 <translation id="5283677936944177147">Mos! Sistemi nuk arriti të përcaktonte modelin e pajisjes ose numrin e serisë.</translation>
 <translation id="5284445933715251131">Vazhdo shkarkimin</translation>
 <translation id="5285635972691565180">Ekrani <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Zona e daljes është plot</translation>
 <translation id="5286194356314741248">Po skanon</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Llogaritë e tua</translation>
@@ -3666,7 +3664,6 @@
 <translation id="5553089923092577885">Planifikime të politikës së certifikatës</translation>
 <translation id="5554489410841842733">Kjo ikonë do të jetë e dukshme kur shtesa të arrijë të veprojë në faqen aktuale.</translation>
 <translation id="5554720593229208774">Autoriteti i vërtetimit të mail-eve</translation>
-<translation id="5554931805291741487">Zona e daljes është pothuajse plot</translation>
 <translation id="5556459405103347317">Ringarko</translation>
 <translation id="5558125320634132440">Kjo faqe është bllokuar sepse mund të ketë përmbajtje për të rritur</translation>
 <translation id="5558129378926964177">Afroje&amp;</translation>
@@ -4937,7 +4934,6 @@
 <translation id="7152478047064750137">Kjo shtesë nuk kërkon leje të veçanta</translation>
 <translation id="7154130902455071009">Ndrysho faqen tënde të nisjes te: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Fotografi ekzistuese nga kamera ose skedari</translation>
-<translation id="7163766494674803047">Gabim i pajisjes së printerit</translation>
 <translation id="7165320105431587207">Konfigurimi i rrjetit dështoi</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" mund të lexojë imazhe, video dhe skedarë audio në vendndodhjet e verifikuara.</translation>
 <translation id="7167486101654761064">&amp;Hapi gjithmonë skedarët e këtij lloji</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index c505b5c..b823275 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -1109,7 +1109,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> ne može bezbedno da se preuzme</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> želi da se upari</translation>
-<translation id="2341476639346994688">Štampač je zaustavljen</translation>
 <translation id="2342740338116612727">Obeleživači su dodati</translation>
 <translation id="2343747224442182863">Stavi ovu karticu u fokus</translation>
 <translation id="2344686470986284227">Pokreće se kontroler virtuelne mašine</translation>
@@ -3455,7 +3454,6 @@
 <translation id="5283677936944177147">Ups! Sistem nije uspeo da odredi model uređaja ili serijski broj.</translation>
 <translation id="5284445933715251131">Nastavi preuzimanje</translation>
 <translation id="5285635972691565180">Ekran <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Oblast za odštampane dokumente je puna</translation>
 <translation id="5286194356314741248">Skeniranje</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Nalozi</translation>
@@ -3677,7 +3675,6 @@
 <translation id="5553089923092577885">Mapiranja smernica sertifikata</translation>
 <translation id="5554489410841842733">Ova ikona će biti vidljiva kada dodatak može da deluje na trenutnoj stranici.</translation>
 <translation id="5554720593229208774">Autoritet za izdavanje sertifikata e-pošte</translation>
-<translation id="5554931805291741487">Oblast za odštampane dokumente na štampaču je skoro puna</translation>
 <translation id="5556459405103347317">Učitaj ponovo</translation>
 <translation id="5558125320634132440">Ovaj sajt je blokiran jer verovatno ima sadržaj za stariju publiku</translation>
 <translation id="5558129378926964177">Zoom &amp;In (Uvećaj)</translation>
@@ -4952,7 +4949,6 @@
 <translation id="7152478047064750137">Ovaj dodatak ne zahteva nikakve specijalne dozvole</translation>
 <translation id="7154130902455071009">Promenite početnu stranicu u: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Postojeća fotografija iz kamere ili datoteke</translation>
-<translation id="7163766494674803047">Greška štampača</translation>
 <translation id="7165320105431587207">Konfiguracija mreže nije uspela</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />“ može da čita slike, video i audio datoteke na navedenim lokacijama.</translation>
 <translation id="7167486101654761064">&amp;Uvek otvori datoteke ovog tipa</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index a053d03..450557d4 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -1109,7 +1109,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> не може безбедно да се преузме</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> жели да се упари</translation>
-<translation id="2341476639346994688">Штампач је заустављен</translation>
 <translation id="2342740338116612727">Обележивачи су додати</translation>
 <translation id="2343747224442182863">Стави ову картицу у фокус</translation>
 <translation id="2344686470986284227">Покреће се контролер виртуелне машине</translation>
@@ -3455,7 +3454,6 @@
 <translation id="5283677936944177147">Упс! Систем није успео да одреди модел уређаја или серијски број.</translation>
 <translation id="5284445933715251131">Настави преузимање</translation>
 <translation id="5285635972691565180">Екран <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Област за одштампане документе је пуна</translation>
 <translation id="5286194356314741248">Скенирање</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Налози</translation>
@@ -3677,7 +3675,6 @@
 <translation id="5553089923092577885">Мапирања смерница сертификата</translation>
 <translation id="5554489410841842733">Ова икона ће бити видљива када додатак може да делује на тренутној страници.</translation>
 <translation id="5554720593229208774">Ауторитет за издавање сертификата е-поште</translation>
-<translation id="5554931805291741487">Област за одштампане документе на штампачу је скоро пуна</translation>
 <translation id="5556459405103347317">Учитај поново</translation>
 <translation id="5558125320634132440">Овај сајт је блокиран јер вероватно има садржај за старију публику</translation>
 <translation id="5558129378926964177">Zoom &amp;In (Увећај)</translation>
@@ -4952,7 +4949,6 @@
 <translation id="7152478047064750137">Овај додатак не захтева никакве специјалне дозволе</translation>
 <translation id="7154130902455071009">Промените почетну страницу у: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Постојећа фотографија из камере или датотеке</translation>
-<translation id="7163766494674803047">Грешка штампача</translation>
 <translation id="7165320105431587207">Конфигурација мреже није успела</translation>
 <translation id="716640248772308851">„<ph name="EXTENSION" />“ може да чита слике, видео и аудио датотеке на наведеним локацијама.</translation>
 <translation id="7167486101654761064">&amp;Увек отвори датотеке овог типа</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 57fa083..ee7b89d 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Det går inte att ladda ned <ph name="FILE_NAME" /> på ett säkert sätt</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> vill kopplas</translation>
-<translation id="2341476639346994688">Skrivaren har stannat</translation>
 <translation id="2342740338116612727">Bokmärkena har lagts till</translation>
 <translation id="2343747224442182863">Fokusera på den här fliken</translation>
 <translation id="2344686470986284227">Den virtuella maskinens styrenhet startas</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Hoppsan! Det gick inte att fastställa enhetsmodell eller serienummer.</translation>
 <translation id="5284445933715251131">Fortsätt nedladdning</translation>
 <translation id="5285635972691565180">Skärm <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Utmatningsfacket är fullt</translation>
 <translation id="5286194356314741248">Skannar</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Dina konton</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Mappningar för certifikatpolicy </translation>
 <translation id="5554489410841842733">Ikonen visas när tillägget kan agera på den aktuella sidan.</translation>
 <translation id="5554720593229208774">Utfärdare av e-postcertifikat</translation>
-<translation id="5554931805291741487">Utmatningsfacket är nästan fullt</translation>
 <translation id="5556459405103347317">Hämta igen</translation>
 <translation id="5558125320634132440">Webbplatsen har blockerats eftersom innehållet kan vara avsett för vuxna</translation>
 <translation id="5558129378926964177">Zooma &amp;in</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Det här tillägget kräver inga särskilda behörigheter</translation>
 <translation id="7154130902455071009">Ändra startsida till: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Befintligt foto från kamera eller fil</translation>
-<translation id="7163766494674803047">Ett enhetsfel har uppstått på skrivaren.</translation>
 <translation id="7165320105431587207">Det gick inte att konfigurera nätverket</translation>
 <translation id="716640248772308851"><ph name="EXTENSION" /> kan läsa bilder, video och ljudfiler på de markerade platserna.</translation>
 <translation id="7167486101654761064">Öppna &amp;alltid filer av denna typ</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index fb40b729..2a87612 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Kiliundwa</translation>
 <translation id="1067291318998134776">Linux (Beta)</translation>
 <translation id="1067922213147265141">Huduma zingine za Google</translation>
+<translation id="1068961867683064946">Mfungulie mtoto wako Akaunti ya Google</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Programu nyingine kwenye kompyuta yako iliongeza kiendelezi ambacho kinaweza kubadilisha jinsi Chrome hufanya kazi.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Kitufe cha kurudi nyuma kwenye ukurasa mdogo wa <ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Angalia na udhibiti manenosiri yaliyohifadhiwa kwenye <ph name="SAVED_PASSWORDS_STORE" /> yako</translation>
 <translation id="1324106254079708331">Hulinda Akaunti binafsi za Google za mtu yeyote zilizo katika hatari ya mashambulizi mahususi.</translation>
+<translation id="1325985428688410772">Ongeza Space</translation>
 <translation id="1326317727527857210">Ili upate vichupo kutoka kwenye vifaa vyako vingine, ingia katika Chrome.</translation>
 <translation id="1327074568633507428">Printa kwenye Google Cloud Print</translation>
 <translation id="1327272175893960498">Tiketi za Kerberos</translation>
@@ -386,7 +388,7 @@
 <translation id="1465827627707997754">Kipande cha piza</translation>
 <translation id="1468571364034902819">Haiwezi kutumia wasifu huu</translation>
 <translation id="1470084204649225129">{NUM_TABS,plural, =1{Weka Kichupo kwenye Kikundi Kipya}other{Weka Vichupo kwenye Kikundi Kipya}}</translation>
-<translation id="1470946456740188591">Ili uwashe au uzime mipangilio ya kuvinjari kwa kutumia kibodi, tumia njia ya mkato ya Ctrl+Search+7</translation>
+<translation id="1470946456740188591">Ili uwashe au uzime mipangilio ya kuvinjari kwa kibodi, tumia njia ya mkato ya Ctrl+Search+7</translation>
 <translation id="1472675084647422956">Onyesha zaidi</translation>
 <translation id="1474785664565228650">Mabadiliko kwenye mipangilio ya maikrofoni yanahitaji ufungue tena Parallels Desktop. Fungua tena Parallels Desktop ili uendelee.</translation>
 <translation id="1475502736924165259">Una vyeti kwenye faili ambavyo havilangani na aina nyingine yoyote</translation>
@@ -570,7 +572,7 @@
 <translation id="1680849702532889074">Hitilafu imetokea wakati wa kusakinisha programu yako ya Linux.</translation>
 <translation id="16815041330799488">Usiruhusu tovuti zione maandishi na picha zilizonakiliwa kwenye ubao wa kunakili</translation>
 <translation id="1682548588986054654">Dirisha Fiche Jipya</translation>
-<translation id="1682867089915960590">Ungependa Kuwasha Mipangilio ya Kuvinjari kwa Kutumia Kibodi?</translation>
+<translation id="1682867089915960590">Ungependa Kuwasha Mipangilio ya Kuvinjari kwa Kibodi?</translation>
 <translation id="1686550358074589746">Washa njia ya kuandika kwa kutelezesha kidole</translation>
 <translation id="168715261339224929">Ili upate alamisho kwenye vifaa vyako vyote, washa usawazishaji.</translation>
 <translation id="1688867105868176567">Ungependa kufuta data ya tovuti?</translation>
@@ -1079,6 +1081,7 @@
 <translation id="2307462900900812319">Sanidi mtandao</translation>
 <translation id="230927227160767054">Ukarasa huu anataka kusakinisha kishikizi cha huduma.</translation>
 <translation id="2309620859903500144">Tovuti hii imezuiliwa ili isifikie vitambuzi vya mwangaza au mwendo.</translation>
+<translation id="2314873619957287124">Weka sheria dijitali za msingi ili umsaidie mtoto wako ajifunze, kucheza na kugundua mambo</translation>
 <translation id="2315414688463285945">Hitilafu imetokea wakati wa kuweka mipangilio ya faili za Linux. Tafadhali jaribu tena.</translation>
 <translation id="2315587498123194634">Tuma Kiungo kwenye <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Hapana</translation>
@@ -1090,6 +1093,7 @@
 <translation id="2322318151094136999">Iulize wakati tovuti inataka kufikia milango ya kuingiza (inapendekezwa)</translation>
 <translation id="2323018538045954000">Mitandao ya Wi-Fi iliyohifadhiwa</translation>
 <translation id="2325444234681128157">Kumbuka nenosiri</translation>
+<translation id="2326160999284776503">Ingia ukitumia akaunti ya Google ya mtoto wako</translation>
 <translation id="2326188115274135041">Thibitisha PIN ili uwashe mipangilio ya kufungua kiotomatiki</translation>
 <translation id="2326931316514688470">Pakia upya programu</translation>
 <translation id="2327492829706409234">Washa programu</translation>
@@ -1105,7 +1109,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> haiwezi kupakuliwa kwa usalama</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> inataka kuoanisha</translation>
-<translation id="2341476639346994688">Printa imesimamishwa</translation>
 <translation id="2342740338116612727">Imeongeza alamisho</translation>
 <translation id="2343747224442182863">Lenga Kichupo Hiki</translation>
 <translation id="2344686470986284227">Fungua kidhibiti cha mashine pepe</translation>
@@ -1149,6 +1152,7 @@
 <translation id="2384436799579181135">Hitilafu imetokea. Tafadhali angalia printa yako kisha ujaribu tena.</translation>
 <translation id="2387052489799050037">Nenda kwenye Skrini ya Kwanza</translation>
 <translation id="2387458720915042159">Aina ya muunganisho wa seva mbadala</translation>
+<translation id="2391082728065870591">Tuma Ripoti ya Maoni</translation>
 <translation id="2391419135980381625">Fonti wastani</translation>
 <translation id="2392163307141705938">Umefikisha kikomo cha muda uliowekwa na mzazi wako katika <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Amilisha</translation>
@@ -1279,6 +1283,7 @@
 <translation id="2537178555904266562">Hitilafu imetokea wakati wa kusawazisha manenosiri</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> inaweza kuangalia na kubadilisha faili na folda zifuatazo</translation>
 <translation id="2537927931785713436">Inakagua picha ya mashine pepe</translation>
+<translation id="2538084450874617176">Ni nani anayetumia <ph name="DEVICE_TYPE" /> hii?</translation>
 <translation id="2538361623464451692">Kipengele cha kusawazisha kimezimwa</translation>
 <translation id="2540449034743108469">Bonyeza "Anza" ili uzikize shughuli za kiendelezi</translation>
 <translation id="2541002089857695151">Ungependa kuboresha utumaji kwenye skrini nzima?</translation>
@@ -2738,6 +2743,7 @@
 <translation id="4364327530094270451">Tikiti</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> inashiriki dirisha.</translation>
 <translation id="4364830672918311045">Onyesha arifa</translation>
+<translation id="4368115171699243057">Weka mipangilio kwenye <ph name="DEVICE_TYPE" /> hii ya mtoto wako</translation>
 <translation id="437004882363131692">Pata taarifa, ofa na vidokezo kuhusu <ph name="DEVICE_TYPE" /> na ushiriki maoni. Jiondoe wakati wowote.</translation>
 <translation id="4370975561335139969">Anwani ya barua pepe na nenosiri uliloweka havilingani</translation>
 <translation id="4374831787438678295">Kisakinishaji cha Linux</translation>
@@ -2898,6 +2904,7 @@
 <translation id="4565377596337484307">Ficha nenosiri</translation>
 <translation id="4565917129334815774">Hifadhi kumbukumbu za mfumo</translation>
 <translation id="456717285308019641">Lugha ya ukurasa unaotafsiriwa</translation>
+<translation id="4567533462991917415">Unaweza kuongeza watu zaidi baada ya kuweka mipangilio. Kila mtu anaweza kuweka mapendeleo kwenye akaunti yake na kuweka data yake iwe ya faragha.</translation>
 <translation id="4567772783389002344">Ongeza neno</translation>
 <translation id="4568025708905928793">Unaombwa ufunguo wa usalama</translation>
 <translation id="4568213207643490790">Samahani, akaunti za Google haziruhusiwi kwenye kifaa hiki.</translation>
@@ -2949,6 +2956,7 @@
 <translation id="4628762811416793313">Imeshindwa kukamilisha kuweka mipangilio ya metadata ya Linux. Tafadhali jaribu tena.</translation>
 <translation id="4633003931260532286">Kiendelezi kinahitaji "<ph name="IMPORT_NAME" />" yenye toleo la chini zaidi la "<ph name="IMPORT_VERSION" />", lakini toleo la "<ph name="INSTALLED_VERSION" />" ndilo limesakinishwa pekee.</translation>
 <translation id="4633757335284074492">Hifadhi nakala kwenye Hifadhi ya Google. Rejesha data kwa urahisi au ubadilishe kifaa wakati wowote. Nakala inajumuisha data ya programu. Nakala hupakiwa kwenye Google na kusimbwa kwa njia fiche kwa kutumia nenosiri la Akaunti ya Google ya mtoto wako.</translation>
+<translation id="4634575639321169635">Weka mipangilio ya matumizi ya kazini au binafsi kwenye kifaa hiki</translation>
 <translation id="4634771451598206121">Ingia tena...</translation>
 <translation id="4635072447747973225">Ondoa Crostini</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> haipatikani kwa watumiaji Wageni</translation>
@@ -3367,6 +3375,7 @@
 <translation id="5185386675596372454">Toleo jipya zaidi la "<ph name="EXTENSION_NAME" />" limezimwa kwa sababu linahitaji idhini zaidi.</translation>
 <translation id="5185500136143151980">Hakuna Intaneti</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Menyu ya chaguo za <ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Washa mlango</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> inataka kupakua faili kadhaa</translation>
 <translation id="5192062846343383368">Fungua programu ya Family Link ili uone mipangilio yako ya usimamizi</translation>
@@ -3443,7 +3452,6 @@
 <translation id="5283677936944177147">Lo! Mfumo haukuweza kutambua muundo wa kifaa wala nambari ya ufuatiliaji.</translation>
 <translation id="5284445933715251131">Endelea Kupakua</translation>
 <translation id="5285635972691565180">Onyesho <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Sehemu ya kutoa karatasi imejaa</translation>
 <translation id="5286194356314741248">Inachanganua</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Akaunti zako</translation>
@@ -3614,6 +3622,7 @@
 <translation id="5495597166260341369">Iwashe skrini</translation>
 <translation id="5496587651328244253">Panga</translation>
 <translation id="5497251278400702716">Faili hii</translation>
+<translation id="5498967291577176373">Andika haraka ukitumia mapendekezo yanayolingana na maandishi ya anwani, nambari ya simu au jina lako</translation>
 <translation id="5499313591153584299">Faili hii inaweza kudhuru kompyuta yako.</translation>
 <translation id="5499453227627332024">Toleo jipya la Metadata yako ya Linux linapatikana. Unaweza pia kusasisha baadaye kwenye programu ya Mipangilio.</translation>
 <translation id="5500709606820808700">Angalizo la usalama limetekelezwa leo</translation>
@@ -3664,7 +3673,6 @@
 <translation id="5553089923092577885">Ramani ya Sera za Vyeti</translation>
 <translation id="5554489410841842733">Aikoni hii itaonekana kiendelezi kitakapoanza kufanya kazi kwenye ukurasa huu.</translation>
 <translation id="5554720593229208774">Mamlaka ya Uthibitishaji wa Barua pepe</translation>
-<translation id="5554931805291741487">Sehemu ya kutoa karatasi inakaribia kujaa</translation>
 <translation id="5556459405103347317">Pakia upya</translation>
 <translation id="5558125320634132440">Tovuti hii imezuiwa kwa sababu huenda ina maudhui ya watu wazima</translation>
 <translation id="5558129378926964177">Kuza &amp;Zaidi</translation>
@@ -3771,6 +3779,7 @@
 <translation id="5689516760719285838">Mahali</translation>
 <translation id="56907980372820799">Unganisha data</translation>
 <translation id="5691511426247308406">Familia</translation>
+<translation id="5691581861107245578">Pata mapendekezo ya emoji kulingana na unachoandika</translation>
 <translation id="5691772641933328258">Haikutambua alama ya kidole</translation>
 <translation id="5692183275898619210">Imekamilisha kuchapisha</translation>
 <translation id="569425414730375234">Kipindi cha sasa cha hali fiche: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4130,6 +4139,7 @@
 <translation id="6124698108608891449">Tovuti hii inahitaji ruhusa zaidi.</translation>
 <translation id="6125479973208104919">Kwa bahati mbaya, utahitaji kuongeza akaunti yako kwenye kifaa hiki cha <ph name="DEVICE_TYPE" /> tena.</translation>
 <translation id="6129691635767514872">Data uliyochagua imeondolewa kwenye Chrome na kwenye vifaa vilivyosawazishwa. Huenda Akaunti yako ya Google ina aina nyingine za historia ya kuvinjari kama vile utafutaji na shughuli kutoka huduma nyingine za Google katika <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Mtoto wako</translation>
 <translation id="6129938384427316298">Kidokezo cha Cheti cha Netscape</translation>
 <translation id="6129953537138746214">Nafasi</translation>
 <translation id="6130692320435119637">Weka Wi-Fi</translation>
@@ -4170,6 +4180,7 @@
 <translation id="6178664161104547336">Chagua cheti</translation>
 <translation id="6181431612547969857">Upakuaji umezuiwa</translation>
 <translation id="6185132558746749656">Mahali Kifaa Kilipo</translation>
+<translation id="6195446518998936840">Ili uweke vidhibiti vya wazazi, ni lazima mtoto wako awe na Akaunti ya Google ambayo utamsaidia kudhibiti. Unaweza kuweka vikomo vya muda wa kutumia kifaa, kuidhinisha au kuzuia tovuti na zaidi kwa kutumia programu ya Family Link.</translation>
 <translation id="6195693561221576702">Kifaa hiki hakiwezi kuwekewa mipangilio katika hali ya onyesho la nje ya mtandao.</translation>
 <translation id="6196640612572343990">Zuia vidakuzi vya tovuti nyingine</translation>
 <translation id="6196854373336333322">Kiendelezi hiki "<ph name="EXTENSION_NAME" />" kinadhibiti mipangilio yako ya seva mbadala, kumaanisha kuwa kinaweza kubadilisha, kuvunja, au kufuatilia chochote unachokifanya mtandaoni. Ikiwa huna uhakika kwa nini mabadiliko haya yamefanyika, huenda huyahitaji.</translation>
@@ -4453,7 +4464,7 @@
 <translation id="6545864417968258051">Kutafuta Bluetooth</translation>
 <translation id="6545867563032584178">Maikrofoni imezimwa katika Mapendeleo ya Mfumo wa Mac</translation>
 <translation id="6547354035488017500">Futa angalau MB 512 za hifadhi, la sivyo kifaa chako kitakwama. Ili kupata nafasi, futa faili kwenye hifadhi ya kifaa.</translation>
-<translation id="654871471440386944">Ungependa kuwasha mipangilio ya kuvinjari kwa kutumia kibodi?</translation>
+<translation id="654871471440386944">Ungependa kuwasha mipangilio ya kuvinjari kwa kibodi?</translation>
 <translation id="6550675742724504774">Chaguo</translation>
 <translation id="6551508934388063976">Amri haipo. Bonyeza "control-N" ili ufungue dirisha jipya.</translation>
 <translation id="6551612971599078809">Tovuti inatumia USB</translation>
@@ -4935,7 +4946,6 @@
 <translation id="7152478047064750137">Kiendelezi hiki hakihitaji ruhusa maalum</translation>
 <translation id="7154130902455071009">Badilisha ukurasa wako uwe: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Picha iliyopo kutoka kwenye kamera au faili</translation>
-<translation id="7163766494674803047">Hitilafu kwenye printa</translation>
 <translation id="7165320105431587207">Ilishindwa kusanidi mtandao</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" inaweza kusoma picha, video, na faili za sauti katika maeneo yaliyowekewa alama.</translation>
 <translation id="7167486101654761064">&amp;Fungua faili za aina hii kila wakati</translation>
@@ -5927,6 +5937,7 @@
 <translation id="8372369524088641025">Kitufe kibovu cha WEP</translation>
 <translation id="8372477600026034341">Seva pangishi za ziada</translation>
 <translation id="8373652277231415614">Saraka za Crostini zinazoshirikiwa</translation>
+<translation id="8376384591331888629">Vikiwemo vidakuzi vya wengine kwenye tovuti hii</translation>
 <translation id="8378714024927312812">Inasimamiwa na shirika lako</translation>
 <translation id="8379878387931047019">Kifaa hiki hakitumii aina hii ya ufunguo wa usalama ulioombwa na tovuti hii</translation>
 <translation id="8379991678458444070">Ili urudi katika sehemu hii kwa haraka, alamisha kichupo hiki</translation>
@@ -6010,6 +6021,7 @@
 <translation id="8481187309597259238">Thibitisha Ruhusa ya USB</translation>
 <translation id="8483248364096924578">Anwani ya IP</translation>
 <translation id="8487678622945914333">Kuza</translation>
+<translation id="8489156414266187072">Mapendekezo binafsi yanaonyeshwa tu kwenye akaunti yako</translation>
 <translation id="8490896350101740396">Programu za skrini nzima zifuatazo "<ph name="UPDATED_APPS" />" zimesasishwa. Tafadhali washa tena kifaa ili kukamilisha mchakato wa kusasisha.</translation>
 <translation id="8493236660459102203">Maikrofoni:</translation>
 <translation id="8496717697661868878">Tekeleza Programu jalizi Hii</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 0f10f846..6f33d0be 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -67,6 +67,7 @@
 <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> நொடிகளில் மாற்று உலாவித் திறக்கப்படும்</translation>
 <translation id="1071917609930274619">தரவு மாற்றம்</translation>
 <translation id="1072700771426194907">USB சாதனம் கண்டறியப்பட்டுள்ளது</translation>
+<translation id="1076176485976385390">உரை-கர்சரைப் பயன்படுத்திப் பக்கங்களுக்குச் செல்</translation>
 <translation id="1076698951459398590">தீமினை இயக்கு</translation>
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">கேமரா அணுகலை எப்போதும் தடு</translation>
@@ -205,6 +206,7 @@
 <translation id="1238191093934674082">திறந்தநிலை VPN</translation>
 <translation id="1239594683407221485">சாதனத்தின் உள்ளடத்தை Files ஆப்ஸில் பாருங்கள்.</translation>
 <translation id="124116460088058876">மேலும் மொழிகள்</translation>
+<translation id="1241639418100230264">டேட்டா கட்டணங்கள் விதிக்கப்படலாம்</translation>
 <translation id="1241753985463165747">அனுமதித்தால், தற்போதைய இணையதளத்தில் உங்கள் எல்லாத் தரவையும் படிக்கும், மாற்றும்</translation>
 <translation id="1242633766021457174">உங்கள் அமைப்புகளை மீட்டமைக்க <ph name="THIRD_PARTY_TOOL_NAME" /> விரும்புகிறது.</translation>
 <translation id="1243314992276662751">பதிவேற்று</translation>
@@ -255,6 +257,7 @@
 <translation id="130491383855577612">Linux ஆப்ஸ் &amp; கோப்புகள் வெற்றிகரமாக மாற்றப்பட்டன</translation>
 <translation id="1306606229401759371">அமைப்புகளை மாற்று</translation>
 <translation id="1307165550267142340">உங்கள் பின் உருவாக்கப்பட்டது</translation>
+<translation id="1307431692088049276">மீண்டும் கேட்காதே</translation>
 <translation id="1307559529304613120">அச்சச்சோ! இந்தச் சாதனத்திற்கான நீண்டகால API அணுகல் டோக்கனை சேமிப்பதில் சிஸ்டம் தோல்வியடைந்தது.</translation>
 <translation id="1313162974556054106">சாதனப் பெயர்</translation>
 <translation id="1313405956111467313">தானியங்கு ப்ராக்ஸி உள்ளமைவு</translation>
@@ -383,6 +386,7 @@
 <translation id="1465827627707997754">பீட்சா துண்டு</translation>
 <translation id="1468571364034902819">இந்தச் சுயவிவரத்தைப் பயன்படுத்த முடியாது</translation>
 <translation id="1470084204649225129">{NUM_TABS,plural, =1{புதிய குழுவில் தாவலைச் சேர்}other{புதிய குழுவில் தாவல்களைச் சேர்}}</translation>
+<translation id="1470946456740188591">சுட்டி உலாவலை இயக்கவோ முடக்கவோ ‘Ctrl+Search+7’ என்ற ஷார்ட்கட் விசைகளைப் பயன்படுத்தவும்</translation>
 <translation id="1472675084647422956">மேலும் காண்பி</translation>
 <translation id="1474785664565228650">மைக்ரோஃபோன் அமைப்பில் செய்த மாற்றத்தைச் செயல்படுத்த Parallels Desktopபை மீண்டும் தொடங்க வேண்டும். தொடர Parallels Desktopபை மீண்டும் தொடங்கவும்.</translation>
 <translation id="1475502736924165259">பிற வகைகள் எவற்றிலும் பொருந்தாத சான்றிதழ்கள் கோப்பில் உள்ளன</translation>
@@ -406,6 +410,7 @@
 <translation id="1500297251995790841">தெரியாத சாதனம் [<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />]</translation>
 <translation id="1503394326855300303">பல உள்நுழைவு அமர்வில் இந்த உரிமையாளர் கணக்கு தான் முதலில் உள்நுழைந்த கணக்காக இருக்க வேண்டும்.</translation>
 <translation id="150411034776756821"><ph name="SITE" />ஐ அகற்று</translation>
+<translation id="1504311855864906891">எனது மீடியாவிற்கு வசனங்களைக் காட்டு</translation>
 <translation id="1504551620756424144">பகிர்ந்த கோப்புறைகளை Windowsஸில் <ph name="BASE_DIR" /> என்பதில் பார்க்கலாம்.</translation>
 <translation id="1506061864768559482">தேடல் இன்ஜின்</translation>
 <translation id="1507170440449692343">இந்தப் பக்கம் உங்கள் கேமராவை அணுகுவதிலிருந்து தடுக்கப்பட்டுள்ளது.</translation>
@@ -525,6 +530,7 @@
 <translation id="1633947793238301227">Google Assistantடை முடக்கு</translation>
 <translation id="1634783886312010422">இந்தக் கடவுச்சொல்லை ஏற்கெனவே <ph name="WEBSITE" /> தளத்தில் மாற்றிவிட்டீர்களா?</translation>
 <translation id="1637224376458524414">இந்தப் புத்தகக்குறியை உங்கள் iPhone இல் பெறுங்கள்</translation>
+<translation id="1637246113959718501">தேவையான கோப்புகளைப் பதிவிறக்க முடியாது. பிறகு முயலவும்.</translation>
 <translation id="1637350598157233081">கடவுச்சொல் உங்கள் சாதனத்தில் சேமிக்கப்பட்டது</translation>
 <translation id="1637765355341780467">சுயவிவரத்தைத் திறக்கும் போது, ஏதோ தவறாகிவிட்டது. சில அம்சங்கள் கிடைக்காமல் போகக்கூடும்.</translation>
 <translation id="1639239467298939599">ஏற்றுகிறது</translation>
@@ -567,6 +573,7 @@
 <translation id="1680849702532889074">Linux ஆப்ஸை நிறுவும்போது பிழை நேர்ந்தது.</translation>
 <translation id="16815041330799488">கிளிப்போர்டுக்கு நகலெடுத்த உரையையும் படங்களையும் பார்க்க, தளங்களை அனுமதிக்காதே</translation>
 <translation id="1682548588986054654">புதிய மறைநிலை சாளரம்</translation>
+<translation id="1682867089915960590">சுட்டி உலாவலை இயக்கவா?</translation>
 <translation id="1686550358074589746">விரலால் நகர்த்தி உள்ளிடுதல் அம்சத்தை இயக்கு</translation>
 <translation id="168715261339224929">உங்கள் எல்லா சாதனங்களிலும் புத்தகக்குறிகளைப் பெற, ஒத்திசைவை இயக்கவும்.</translation>
 <translation id="1688867105868176567">தளத் தரவை அழிக்கவா?</translation>
@@ -945,6 +952,7 @@
 <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" சேர்க்க வேண்டுமா?</translation>
 <translation id="2151576029659734873">செல்லுபடியாகாத தாவல் அட்டவணை உள்ளிடப்பட்டது.</translation>
 <translation id="2152281589789213846">உங்கள் சுயவிவரத்தில் பிரிண்டர்களைச் சேருங்கள்</translation>
+<translation id="2152882202543497059"><ph name="NUMBER" /> படங்கள்</translation>
 <translation id="2154484045852737596">கார்டைத் திருத்தவும்</translation>
 <translation id="2154697841132053118">பேச்சைக் கண்டறிகிறது...</translation>
 <translation id="2154710561487035718">URL ஐ நகலெடு</translation>
@@ -1100,7 +1108,6 @@
 <translation id="2336381494582898602">பவர்வாஷ்</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> என்ற கோப்பினைப் பாதுகாப்பாகப் பதிவிறக்க முடியாது</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> இணைய விரும்புகிறது</translation>
-<translation id="2341476639346994688">பிரிண்டர் நிறுத்தப்பட்டது</translation>
 <translation id="2342740338116612727">புக்மார்க்குகள் சேர்க்கப்பட்டன</translation>
 <translation id="2343747224442182863">இந்தத் தாவலை மையப்படுத்து</translation>
 <translation id="2344686470986284227">விர்ச்சுவல் மெஷின் கன்ட்ரோலரைத் தொடங்குகிறது</translation>
@@ -1108,6 +1115,7 @@
 <translation id="2347644257713614136">Hangouts மற்றும் Cast for Education ஆகியவற்றின் பயன்பாடு, Google தனியுரிமைக் கொள்கையால் நிர்வகிக்கப்படுகிறது.</translation>
 <translation id="2348176352564285430">ஆப்ஸ்: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="234889437187286781">தரவை ஏற்றுவதில் பிழை</translation>
+<translation id="2349065708974079577">உங்கள் நிலையான திரையைப் பிரத்தியேகமாக்கலாம். சாதனம் சார்ஜ் ஆகிக்கொண்டிருக்கும்போது திரையை ஆனில் வைத்திருக்கலாம்.</translation>
 <translation id="2349896577940037438">கூடுதல் ’இணையம் &amp; ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு உங்கள் Google கணக்கில் சேமிக்கப்படக்கூடும். account.google.comமில் உங்களின் தரவைப் பார்க்கலாம், நீக்கலாம் மற்றும் மாற்றலாம்.</translation>
 <translation id="2350133097354918058">ரெஃப்ரெஷ் செய்யப்பட்டது</translation>
 <translation id="2350182423316644347">ஆப்ஸை தொடங்குகிறது...</translation>
@@ -1498,6 +1506,7 @@
 <translation id="2805770823691782631">கூடுதல் விவரங்கள்</translation>
 <translation id="2807517655263062534">நீங்கள் பதிவிறக்கும் கோப்புகள் இங்கே தோன்றும்</translation>
 <translation id="2809586584051668049">மேலும் <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation>
+<translation id="2810024255621914659">தேர்ந்தெடுத்த நினைவுகளைக் கொண்டு ஒரு ஸ்லைடுகாட்சி உருவாக்கப்படும். ஏற்கெனவே உள்ள ஆல்பங்களில் ஏதேனும் மாற்றங்களைச் செய்ய, <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />ஸிற்குச் செல்லவும்.</translation>
 <translation id="2810390687497823527">நீட்டிப்பு ஒன்றை உங்களால் கண்டறிய முடியவில்லை என்றாலோ உங்கள் உலாவி எதிர்பார்த்தபடி வேலை செய்யவில்லை என்றாலோ இங்கே நீட்டிப்புகளை முடக்கிக் கொள்ளலாம் அல்லது பிரத்தியேகமாக்கிக் கொள்ளலாம்.</translation>
 <translation id="2812049959647166806">Thunderbolt ஆதரிக்கப்படவில்லை</translation>
 <translation id="2812989263793994277">எந்தப் படங்களையும் காண்பிக்க வேண்டாம்</translation>
@@ -2009,6 +2018,7 @@
 <translation id="3475843873335999118">உங்கள் கைரேகையை இன்னும் அடையாளங்காண முடியவில்லை. கடவுச்சொல்லை உள்ளிடவும்.</translation>
 <translation id="3476303763173086583">உபயோகம் &amp; கண்டறிதல் தரவை அனுப்புக. கண்டறிதல் தரவு, சாதனம் மற்றும் ஆப்ஸ் உபயோகத் தரவு போன்றவற்றை Googleளுக்குத் தானாக அனுப்புவதன் மூலம் உங்கள் பிள்ளையின் Android அனுபவத்தை மேம்படுத்த உதவுக. இது உங்கள் பிள்ளையை அடையாளம் கண்டறியப் பயன்படுத்தப்படாது, இது சிஸ்டம் மற்றும் ஆப்ஸின் நிலைத்தன்மையை மேம்படுத்தவும் பிற மேம்பாடுகளைச் செய்யவும் உதவும். ஒருங்கிணைக்கப்பட்ட சில தரவுகள், Google ஆப்ஸ் மற்றும் Android டெவெலப்பர்கள் போன்ற கூட்டாளர்களுக்கும் உதவும். உரிமையாளர் இந்த <ph name="BEGIN_LINK1" />அமைப்பைச்<ph name="END_LINK1" /> செயல்படுத்தியுள்ளார். உரிமையாளர் இந்தச் சாதனத்தின் கண்டறிதல் தரவையும் உபயோகத் தரவையும் Googleளுக்கு அனுப்புவதற்குத் தேர்வுசெய்யலாம். உங்கள் பிள்ளையின் கணக்கில் கூடுதல் ’இணையம் &amp; ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு அவரது Google கணக்கில் சேமிக்கப்படலாம். <ph name="BEGIN_LINK2" />மேலும் அறிக<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">அச்சச்சோ!  உங்கள் சாதனத்திற்கான கொள்கையைப் பெற முடியவில்லை.</translation>
+<translation id="3476903331946078194">தானாகத் தேர்ந்தெடுக்கப்பட்ட உங்களின் சிறந்த படங்கள்</translation>
 <translation id="347785443197175480">உங்கள் கேமராவையும் மைக்ரோஃபோனையும் அணுக <ph name="HOST" /> ஐத் தொடர்ந்து அனுமதி</translation>
 <translation id="3478685642445675458">பயனரை அகற்றும் முன், உங்கள் சுயவிவரத்தைத் திறக்கவும்.</translation>
 <translation id="3479552764303398839">இப்பொழுது இல்லை</translation>
@@ -2403,6 +2413,7 @@
 <translation id="3919145445993746351">உங்கள் அனைத்துக் கணிணிகளிலும் நீட்டிப்புகளைப் பெற, ஒத்திசைவை இயக்கவும்</translation>
 <translation id="3920504717067627103">சான்றிதழ் கொள்கைகள்</translation>
 <translation id="392089482157167418">ChromeVox (பேச்சுவடிவ கருத்து) ஐ இயக்கு</translation>
+<translation id="3923184630988645767">டேட்டா உபயோகம்</translation>
 <translation id="3923676227229836009">இந்தப் பக்கத்தில் கோப்புகளைப் பார்க்க முடியும்</translation>
 <translation id="3924145049010392604">Meta</translation>
 <translation id="3924487862883651986">URLகளைச் சரிபார்க்க பாதுகாப்பு உலாவலுக்கு அவற்றை அனுப்பும். புதிய அச்சுறுத்தல்களைக் கண்டறிவதற்கு உதவ, பக்கங்கள், பதிவிறக்கங்கள், நீட்டிப்பு செயல்பாடு, சிஸ்டம் தகவல் போன்ற சிலவற்றையும் அனுப்பும். Google ஆப்ஸ் முழுவதிலும் உங்களைப் பாதுகாக்க, உங்கள் Google கணக்கில் உள்நுழைந்திருக்கும்போது தற்காலிகமாக அதனுடன் இந்தத் தரவை இணைக்கும்.</translation>
@@ -2710,6 +2721,7 @@
 <translation id="4336434711095810371">அனைத்துத் தரவையும் அழி</translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" />, "<ph name="EXTENSION_NAME" />" பயன்பாட்டுடன் தொடர்புகொள்ள விழைகிறது</translation>
 <translation id="4340575312453649552">இந்த விளம்பரம் உங்கள் சாதனத்தின் செயல்திறனை பாதிப்பதால் அதனை Chrome அகற்றிவிட்டது.</translation>
+<translation id="4341577178275615435">சுட்டி உலாவலை இயக்கவோ முடக்கவோ ‘F7’ என்ற ஷார்ட்கட் விசையைப் பயன்படுத்தவும்</translation>
 <translation id="434404122609091467">உங்களின் தற்போதைய சேவை வழங்குநருடன்</translation>
 <translation id="4345587454538109430">உள்ளமை...</translation>
 <translation id="4345732373643853732">பயனர் பெயர் சேவையகத்தில் இல்லை</translation>
@@ -2808,6 +2820,7 @@
 <translation id="4469477701382819144">குறுக்கிடும் அல்லது தவறாக வழிநடத்தும் விளம்பரங்களைக் காட்டும் தளங்களில் தடுக்கப்படும்</translation>
 <translation id="4469762931504673593"><ph name="FOLDERNAME" /> கோப்புறையில் உள்ள கோப்புகளை <ph name="ORIGIN" /> தளத்தால் திருத்த முடியும்</translation>
 <translation id="4470957202018033307">வெளிப்புறச் சேமிப்பக விருப்பங்கள்</translation>
+<translation id="4471354919263203780">பேச்சு அறிதலுக்கான கோப்புகளைப் பதிவிறக்குகிறது... <ph name="PERCENT" />%</translation>
 <translation id="447252321002412580">Chrome இன் அம்சங்களையும் செயல்திறனையும் மேம்படுத்த உதவுக</translation>
 <translation id="4472575034687746823">தொடங்குக</translation>
 <translation id="4474155171896946103">அனைத்து தாவல்களையும் புக்மார்க்கிடுக...</translation>
@@ -2884,6 +2897,7 @@
 <translation id="4562155214028662640">கைரேகையைச் சேர்</translation>
 <translation id="4562494484721939086">சேவை இல்லை</translation>
 <translation id="4563210852471260509">தொடக்க உள்ளீட்டு மொழி சீனம்</translation>
+<translation id="4563404051166505887">1 படம்</translation>
 <translation id="4563880231729913339">விரல் 3</translation>
 <translation id="4565377596337484307">கடவுச்சொல்லை மறைக்கும்</translation>
 <translation id="4565917129334815774">சிஸ்டம் தொடர்பான பதிவுகளைச் சேமி</translation>
@@ -2923,6 +2937,7 @@
 <translation id="4611114513649582138">டேட்டா இணைப்பு உள்ளது</translation>
 <translation id="4613144866899789710">Linux நிறுவலை ரத்துசெய்கிறது...</translation>
 <translation id="4613271546271159013">புதிய தாவலைத் திறக்கும்போது காண்பிக்கப்படும் பக்கத்தை நீட்டிப்பு மாற்றியுள்ளது.</translation>
+<translation id="4613829655642011036">இதுவரை எந்த ஆல்பங்களும் அமைக்கப்படவில்லை</translation>
 <translation id="4615586811063744755">குக்கீ எதுவும் தேர்ந்தெடுக்கப்படவில்லை</translation>
 <translation id="461661862154729886">மின்சக்தி மூலம்</translation>
 <translation id="4617001782309103936">மிகவும் சிறிதாக உள்ளது</translation>
@@ -3221,6 +3236,7 @@
 <translation id="5015344424288992913">ப்ராக்ஸியைக் கண்டறிகிறது…</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">நினைவில்கொள்</translation>
+<translation id="5017643436812738274">உரை-கர்சரைப் பயன்படுத்திப் பக்கங்களுக்குச் செல்லலாம். இதை முடக்க, ‘Ctrl+Search+7’ ஆகிய விசைகளை அழுத்தவும்.</translation>
 <translation id="5018207570537526145">நீட்டிப்பு இணையதளத்தைத் திற</translation>
 <translation id="5018526990965779848">உபயோகம் மற்றும் பிழை கண்டறிதல் தரவை அனுப்பவும். பிழை கண்டறிதல் தரவு, சாதனம் மற்றும் ஆப்ஸ் உபயோகத் தரவு போன்றவற்றை Googleளுக்குத் தானாக அனுப்புவதன் மூலம் உங்கள் Android அனுபவத்தை மேம்படுத்த உதவவும். இது சிஸ்டம் மற்றும் ஆப்ஸின் நிலைத்தன்மையை மேம்படுத்தவும் பிற மேம்பாடுகளைச் செய்யவும் உதவும். ஒருங்கிணைக்கப்பட்ட சில தரவு, Google ஆப்ஸுக்கும் Android டெவெலப்பர்கள் போன்ற கூட்டாளர்களுக்கும் உதவும். கூடுதல் ’இணையம் &amp; ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு உங்கள் Google கணக்கில் சேமிக்கப்படக்கூடும்.</translation>
 <translation id="5021750053540820849">இன்னும் சேர்க்கப்படவில்லை</translation>
@@ -3431,7 +3447,6 @@
 <translation id="5283677936944177147">அச்சச்சோ! சாதனத்தால், சாதன மாடல் அல்லது வரிசை எண்ணைக் கண்டறிய முடியவில்லை.</translation>
 <translation id="5284445933715251131">பதிவிறக்கத்தைத் தொடர்க</translation>
 <translation id="5285635972691565180">திரை <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">பிரிண்ட் வெளியே வரும் டிரே நிரம்பிவிட்டது</translation>
 <translation id="5286194356314741248">ஸ்கேன் செய்கிறது</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">உங்கள் கணக்குகள்</translation>
@@ -3575,6 +3590,7 @@
 <translation id="5464660706533281090">சிறுவர்களால் இந்த அமைப்பை மாற்ற முடியாது.</translation>
 <translation id="5466374726908360271">“<ph name="SEARCH_TERMS" />” வினவலை ஒட்டி, தேடு</translation>
 <translation id="5468173180030470402">கோப்புப் பகிர்வுகளைத் தேடுகிறது</translation>
+<translation id="5469852975082458401">உரை-கர்சரைப் பயன்படுத்திப் பக்கங்களுக்குச் செல்லலாம். இதை முடக்க ‘F7’ விசையை அழுத்தவும்.</translation>
 <translation id="5470735824776589490">பவர்வாஷால் உங்கள் சாதனம் மீட்டமைக்கப்படுவதற்கு முன்பு மறுதொடக்கம் அவசியம். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">வணக்கம்! நான் தான் உங்கள் உரையைப் பேசும் குரல்</translation>
 <translation id="5472627187093107397">இந்தத் தளத்திற்காகக் கடவுச்சொற்களைச் சேமி</translation>
@@ -3651,7 +3667,6 @@
 <translation id="5553089923092577885">சான்றிதழ் கொள்கை மேப்பிங்ஸ்</translation>
 <translation id="5554489410841842733">நீட்டிப்பானது நடப்பு பக்கத்தில் செயல்படும்போது இந்த ஐகான் தெரியும்.</translation>
 <translation id="5554720593229208774">மின்னஞ்சல் சான்றளிக்கும் மையம்</translation>
-<translation id="5554931805291741487">பிரிண்ட் வெளியே வரும் டிரே கிட்டத்தட்ட நிரம்பிவிட்டது</translation>
 <translation id="5556459405103347317">மீண்டும் ஏற்று</translation>
 <translation id="5558125320634132440">இந்தத் தளத்தில் வயதுவந்தோருக்கான உள்ளடக்கம் இருப்பதால் இது தடுக்கப்பட்டுள்ளது</translation>
 <translation id="5558129378926964177">Zoom &amp;In</translation>
@@ -3667,6 +3682,7 @@
 <translation id="5575473780076478375">மறைநிலை நீட்டிப்பு: <ph name="EXTENSION_NAME" /></translation>
 <translation id="5575528586625653441">டெமோவுக்குப் பதிவு செய்யும் கோரிக்கையில் ஒரு சிக்கல் ஏற்பட்டது.</translation>
 <translation id="557722062034137776">உங்கள் சாதனத்தை மீட்டமைப்பதால் உங்கள் Google கணக்குகள் அல்லது இந்தக் கணக்குகளுடன் ஒத்திசைக்கப்படும் எந்த தரவையும் பாதிக்காது. எனினும்,  உங்கள் அக சாதனத்தில் சேமிக்கப்பட்ட எல்லா கோப்புகளும் நீக்கப்படும்.</translation>
+<translation id="5578016818170236660">உங்கள் நினைவுகளைத் தேர்ந்தெடுக்கலாம்</translation>
 <translation id="5578059481725149024">தானாக உள்நுழை</translation>
 <translation id="558170650521898289">Microsoft Windows Hardware Driver Verification</translation>
 <translation id="5581972110672966454">சாதனத்தை டொமைனுடன் இணைக்க முடியவில்லை. மீண்டும் முயலவும் அல்லது உங்கள் சாதன உரிமையாளரையோ நிர்வாகியையோ தொடர்புகொள்ளவும். பிழைக் குறியீடு: <ph name="ERROR_CODE" />.</translation>
@@ -3872,6 +3888,7 @@
 <translation id="5833726373896279253">இந்த அமைப்புகளை உரிமையாளர் மட்டுமே திருத்த முடியும்:</translation>
 <translation id="5834581999798853053"><ph name="TIME" /> நிமிடங்கள் உள்ளன</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - கேமரா அல்லது மைக்ரோஃபோன் ரெக்கார்டு செய்கிறது</translation>
+<translation id="5840680448799937675">கோப்புகள் எப்போதுமே ஆஃப்லைனில் பகிரப்படும்</translation>
 <translation id="5841270259333717135">ஈத்தர்நெட்டை உள்ளமை</translation>
 <translation id="5842497610951477805">புளூடூத்தை இயக்கு</translation>
 <translation id="5844574845205796324">பயன்படுத்திப் பார்க்க புதிய உள்ளடக்கத்தைப் பரிந்துரை</translation>
@@ -3998,6 +4015,7 @@
 <translation id="5984222099446776634">சமீபத்தில் பார்த்தவை</translation>
 <translation id="598472838394900788">{0,plural, =1{மறைநிலை}other{மறைநிலை (#)}}</translation>
 <translation id="5985458664595100876">தவறான URL வடிவமைப்பு. ஆதரிக்கப்படும் வடிவமைப்புகள்: \\server\share, smb://server/share.</translation>
+<translation id="5990266201903445068">வைஃபையில் மட்டும்</translation>
 <translation id="5990386583461751448">மொழிபெயர்க்கப்பட்டது</translation>
 <translation id="599131315899248751">{NUM_APPLICATIONS,plural, =1{இணையத்தில் உங்களால் தொடர்ந்து உலாவ முடிய வேண்டுமானால், இந்த ஆப்ஸை அகற்றும்படி உங்கள் நிர்வாகியிடம் தெரிவிக்கவும்.}other{இணையத்தில் உங்களால் தொடர்ந்து உலாவ முடிய வேண்டுமானால், இந்த ஆப்ஸை அகற்றும்படி உங்கள் நிர்வாகியிடம் தெரிவிக்கவும்.}}</translation>
 <translation id="5997337190805127100">தள அணுகலைப் பற்றி மேலும் அறிக</translation>
@@ -4375,6 +4393,7 @@
 <translation id="6460601847208524483">அடுத்ததைக் கண்டுபிடி</translation>
 <translation id="6461170143930046705">நெட்வொர்க்குகளைத் தேடுகிறது...</translation>
 <translation id="6463795194797719782">&amp;திருத்து</translation>
+<translation id="6465841119675156448">இணைய இணைப்பு இல்லாமல்</translation>
 <translation id="6466988389784393586">புக்மார்க்ஸ் அனைத்தையும் &amp;திற</translation>
 <translation id="6467304607960172345">முழுத்திரை வீடியோக்களை மேம்படுத்து</translation>
 <translation id="6468485451923838994">எழுத்துருக்கள்</translation>
@@ -4400,6 +4419,7 @@
 <translation id="6498249116389603658">&amp;உங்கள் எல்லா மொழிகளும்</translation>
 <translation id="6499143127267478107">ப்ராக்ஸி ஸ்கிரிப்டில் ஹோஸ்ட்டைக் கண்டறிகிறது...</translation>
 <translation id="6499681088828539489">பகிர்ந்த நெட்வொர்க்குகளுக்கு ப்ராக்ஸிகளை அனுமதிக்காதே</translation>
+<translation id="650266656685499220">ஆல்பங்களை உருவாக்க Google Photosஸிற்குச் செல்லலாம்</translation>
 <translation id="6503077044568424649">அதிகமாகப் பார்வையிடப்பட்டது</translation>
 <translation id="6504611359718185067">பிரிண்டரைச் சேர்க்க, இணையத்துடன் இணைக்கவும்</translation>
 <translation id="6506374932220792071">SHA-256 உடனான X9.62 ECDSA கையொப்பம்</translation>
@@ -4429,12 +4449,14 @@
 <translation id="6532527800157340614">உங்கள் அணுகல் டோக்கனை மீட்டெடுக்க இயலாததால் உள்நுழைய முடியவில்லை. நெட்வொர்க் இணைப்பைச் சரிபார்த்துவிட்டு மீண்டும் முயலவும்.</translation>
 <translation id="6532663472409656417">நிறுவனத்தால் பதிவுசெய்யப்பட்டது</translation>
 <translation id="6535331821390304775">தொடர்புடைய ஆப்ஸில் இந்த வகை இணைப்புகளைத் திறக்க எப்போதும் <ph name="ORIGIN" /> ஐ அனுமதி</translation>
+<translation id="6538635548667167211">தற்போது டேட்டா உபயோக அமைப்பு ‘டேட்டா’ என அமைக்கப்பட்டுள்ளது</translation>
 <translation id="654039047105555694"><ph name="BEGIN_BOLD" />குறிப்பு:<ph name="END_BOLD" /> தரவைச் சேகரிப்பது செயல்திறனைக் குறைக்கும் என்பதால், நீங்கள் தெரிந்துதான் செய்கிறீர்கள் என்றால் அல்லது அவ்வாறு செய்ய வேண்டுமெனக் கேட்டுக்கொள்ளப்பட்டிருந்தால் மட்டும் இயக்கவும்.</translation>
 <translation id="6541638731489116978">இந்தத் தளம் உங்கள் மோஷன் சென்சார்களை அணுகுவது தடுக்கப்பட்டுள்ளது.</translation>
 <translation id="6545665334409411530">மீண்டும் இயக்குவதன் வீதம்</translation>
 <translation id="6545864417968258051">புளூடூத் ஸ்கேனிங்</translation>
 <translation id="6545867563032584178">Mac சிஸ்டம் விருப்பத்தேர்வுகளில் மைக்ரோஃபோன் முடக்கப்பட்டுள்ளது</translation>
 <translation id="6547354035488017500">குறைந்தது 512 மெ.பை. இடத்தைக் காலியாக்கவும் அல்லது உங்கள் சாதனம் இயங்காது. இடத்தைக் காலியாக்க, சாதனத்தின் சேமிப்பகத்தில் இருந்து கோப்புகளை நீக்கவும்.</translation>
+<translation id="654871471440386944">சுட்டி உலாவலை இயக்கவா?</translation>
 <translation id="6550675742724504774">விருப்பத்தேர்வுகள்</translation>
 <translation id="6551508934388063976">ஆணைக் கிடைக்கவில்லை. புதிய சாளரத்தைத் திறக்க control-N ஐ அழுத்தவும்.</translation>
 <translation id="6551612971599078809">தளம் USBயைப் பயன்படுத்துகிறது</translation>
@@ -4916,7 +4938,6 @@
 <translation id="7152478047064750137">இந்த நீட்டிப்பிற்குச் சிறப்பு அனுமதிகள் தேவையில்லை</translation>
 <translation id="7154130902455071009">உங்கள் தொடக்கப் பக்கத்தை இதற்கு மாற்றவும்: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">கேமரா அல்லது கோப்பிலிருக்கும் படம்</translation>
-<translation id="7163766494674803047">பிரிண்டர் சாதனப் பிழை</translation>
 <translation id="7165320105431587207">நெட்வொர்க் உள்ளமைவு தோல்வியடைந்தது</translation>
 <translation id="716640248772308851">தேர்வுசெய்யப்பட்ட இடங்களில் உள்ள படங்கள், வீடியோ மற்றும் ஒலி கோப்புகள் ஆகியவற்றை "<ph name="EXTENSION" />" ஆல் படிக்க முடியும்.</translation>
 <translation id="7167486101654761064">&amp;எப்போதும் இந்த வகை கோப்புகளைத் திற</translation>
@@ -5294,6 +5315,7 @@
 <translation id="7647403192093989392">சமீபத்திய செயல்பாடுகள் எதுவும் இல்லை.</translation>
 <translation id="7649070708921625228">உதவி</translation>
 <translation id="7650511557061837441">"<ph name="TRIGGERING_EXTENSION_NAME" />", "<ph name="EXTENSION_NAME" />" ஐ அகற்ற விரும்புகிறது.</translation>
+<translation id="7650677314924139716">தற்போது டேட்டா உபயோக அமைப்பு ‘வைஃபையில் மட்டும்’ என அமைக்கப்பட்டுள்ளது</translation>
 <translation id="7652808307838961528">பயனரைத் திருத்தவும், <ph name="PROFILE_NAME" /></translation>
 <translation id="765293928828334535">ஆப்ஸ், நீட்டிப்புகள் மற்றும் பயனர் ஸ்கிரிப்ட்கள் போன்றவற்றை இந்த இணையதளத்திலிருந்து சேர்க்க முடியாது</translation>
 <translation id="7652954539215530680">பின்னை உருவாக்குக</translation>
@@ -5764,6 +5786,7 @@
 <translation id="8198323535106903877">உங்களுக்காக அந்த <ph name="NUMBER_OF_APPS" /> ஆப்ஸை நிறுவுவோம்</translation>
 <translation id="8199300056570174101">நெட்வொர்க் (சேவை) மற்றும் சாதனப் பண்புகள்</translation>
 <translation id="8200772114523450471">மீண்டும் தொடங்கு</translation>
+<translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ஆல்பங்களைத் தேர்ந்தெடுக்கும்</translation>
 <translation id="8202160505685531999">உங்கள் <ph name="DEVICE_TYPE" /> சுயவிவரத்தைப் புதுப்பிக்க உங்கள் கடவுச்சொல்லை மீண்டும் உள்ளிடவும்.</translation>
 <translation id="8203732864715032075">இந்தக் கம்ப்யூட்டரை இயல்பாக நினைவில் வைத்து, மெசேஜஸ் அறிவிப்புகளை அனுப்பும். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
 <translation id="820568752112382238">அதிகம் பார்த்த தளங்கள்</translation>
@@ -5785,6 +5808,7 @@
 <translation id="8227119283605456246">கோப்பை இணை</translation>
 <translation id="8229943166551236192">சாதனத் தரவு 24 மணிநேரத்தில் நீக்கப்படும்</translation>
 <translation id="8230134520748321204"><ph name="ORIGIN" />க்கான கடவுச்சொல்லைச் சேமிக்கவா?</translation>
+<translation id="8233874515683663066">தேர்ந்தெடுக்கப்பட்ட படங்களும் கலைப்படைப்புகளும்</translation>
 <translation id="8234795456569844941">சுயவிவரப் பிழைச் செய்தியைப் பெறும் முன், என்ன நடந்தது என்பதை விவரிப்பதன் மூலம், இந்தச் சிக்கலைச் சரிசெய்ய, எங்கள் பொறியாளர்களுக்கு உதவவும்.</translation>
 <translation id="8236917170563564587">இந்தத் தாவலைப் பகிர்</translation>
 <translation id="8237647586961940482">அடர் இளஞ்சிவப்பு &amp; சிவப்பு</translation>
@@ -5995,6 +6019,7 @@
 <translation id="8500234928660943538">தவறான PUK. இன்னும் <ph name="RETRIES" /> முறை முயலலாம்.</translation>
 <translation id="8502536196501630039">Google Playயிலிருந்து ஆப்ஸைப் பயன்படுத்த, முதலில் உங்கள் ஆப்ஸை மீட்டெடுக்க வேண்டும். ஏதேனும் தரவு இழப்பு ஏற்பட்டிருக்கலாம்.</translation>
 <translation id="8503813439785031346">பயனர்பெயர்</translation>
+<translation id="8504640708321980506">டேட்டா</translation>
 <translation id="8507227974644337342">திரையின் தெளிவுத்திறன்</translation>
 <translation id="850875081535031620">தீங்கிழைக்கும் மென்பொருள் இல்லை</translation>
 <translation id="8509177919508253835">பாதுகாப்பு விசைகளை ரீசெட் செய்து பின்களை உருவாக்கலாம்</translation>
@@ -6067,6 +6092,7 @@
 <translation id="8602851771975208551">உங்கள் கம்ப்யூட்டரில் உள்ள மற்றொரு நிரல் Chrome இயங்கும் முறையை மாற்றும் ஆப்ஸைச் சேர்த்துள்ளது.</translation>
 <translation id="8605428685123651449">SQLite நினைவகம்</translation>
 <translation id="8608618451198398104">Kerberos டிக்கெட்டைச் சேர்த்தல்</translation>
+<translation id="860909219589324847">கோப்புகளைப் பகிர ஒருபோதும் டேட்டாவைப் பயன்படுத்தாது</translation>
 <translation id="8609465669617005112">மேலே நகர்த்து</translation>
 <translation id="8610103157987623234">தவறான வடிவம், மீண்டும் முயலவும்</translation>
 <translation id="8613164732773110792">சிற்றெழுத்துக்கள், எண்கள், அடிக்கோடுகள், அல்லது சிறுகோடுகள் மட்டும்</translation>
@@ -6481,6 +6507,7 @@
 <translation id="9088234649737575428">நிறுவனக் கொள்கையால் <ph name="PLUGIN_NAME" /> முடக்கப்பட்டுள்ளது</translation>
 <translation id="9088446193279799727">Linuxஸை உள்ளமைக்க இயலவில்லை. இணையத்துடன் இணைத்து மீண்டும் முயலவும்.</translation>
 <translation id="9088917181875854783">"<ph name="DEVICE_NAME" />" இல் காண்பிக்கப்படும் இந்த கடவுவிசையை உறுதிப்படுத்துக:</translation>
+<translation id="9093429538970210897">மேம்படுத்தலை நிறைவுசெய்ய முடியாமல் போகும்பட்சத்தில் கோப்புகளைக் காப்புப் பிரதி எடுத்துக்கொள்ளவும். மேம்படுத்தலைத் தொடங்கினால் Linux (பீட்டா) ஷட்-டவுன் செய்யப்படும். தொடர்வதற்கு முன்பு திறந்துள்ள கோப்புகளைச் சேமிக்கவும்.</translation>
 <translation id="9094033019050270033">கடவுச்சொல்லைப் புதுப்பி</translation>
 <translation id="9094038138851891550">பயனர்பெயர் செல்லாதது</translation>
 <translation id="9094982973264386462">அகற்று</translation>
@@ -6490,6 +6517,7 @@
 <translation id="9101691533782776290">பயன்பாட்டைத் தொடங்கு</translation>
 <translation id="9102610709270966160">நீட்டிப்பை இயக்கு</translation>
 <translation id="9103868373786083162">பின்னே செல்ல அழுத்தவும், வரலாற்றைக் காட்டும் சூழல் மெனு</translation>
+<translation id="9108072915170399168">தற்போது டேட்டா உபயோக அமைப்பு ‘இணைய இணைப்பு இல்லாமல்’ என அமைக்கப்பட்டுள்ளது</translation>
 <translation id="9108692355621501797"><ph name="LINK_BEGIN" />G Suite for Education தனியுரிமை அறிக்கை<ph name="LINK_END" />, இந்தத் தயாரிப்பு எந்த மாதிரியான தரவைச் சேகரிக்கிறது, தரவு எதற்காகச் சேகரிக்கப்படுகிறது, தரவைக் கொண்டு என்ன செய்யப்படுகிறது ஆகியவற்றை G Suite for Education பயனர்களும் பெற்றோர்களும் புரிந்துகொள்ள உதவும்.</translation>
 <translation id="9108808586816295166">பாதுகாப்பான DNS எப்போதும் கிடைக்காமல் போகலாம்</translation>
 <translation id="9109122242323516435">இடத்தைக் காலியாக்க, சாதனத்தின் சேமிப்பகத்தில் இருந்து கோப்புகளை நீக்கவும்.</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 3365763..1f94cda 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">పవర్‌వాష్ చేయి</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" />ను సురక్షితంగా డౌన్‌లోడ్ చేయడం సాధ్యం కాదు</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> దీనితో జత చేయాలనుకుంటోంది</translation>
-<translation id="2341476639346994688">ప్రింటర్ ఆపివేయబడింది</translation>
 <translation id="2342740338116612727">బుక్‌మార్క్‌లు జోడించబడ్డాయి</translation>
 <translation id="2343747224442182863">ఈ ట్యాబ్‌పై దృష్టి కేంద్రీకరించు</translation>
 <translation id="2344686470986284227">వర్చువల్ మెషిన్ కంట్రోలర్‌ను ప్రారంభిస్తోంది</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">అయ్యో!  పరికర మోడల్ లేదా క్రమ సంఖ్యను గుర్తించడంలో సిస్టమ్ విఫలమైంది.</translation>
 <translation id="5284445933715251131">డౌన్‌లోడ్‌ చేయడాన్ని కొనసాగించు</translation>
 <translation id="5285635972691565180">ప్రదర్శన <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">అవుట్‌పుట్ ప్రాంతం నిండిపోయింది</translation>
 <translation id="5286194356314741248">స్కాన్ చేస్తోంది</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">మీ ఖాతాలు</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">సర్టిఫికెట్ విధాన మ్యాపింగ్‌లు</translation>
 <translation id="5554489410841842733">ప్రస్తుత పేజీలో ఎక్స్‌టెన్ష‌న్‌ ఉండే వరకు ఈ చిహ్నం కనిపిస్తుంది.</translation>
 <translation id="5554720593229208774">ఇమెయిల్ అధికారి స‌ర్టిఫికేష‌న్ అధికారిక సంస్థ‌</translation>
-<translation id="5554931805291741487">ప్రింటర్ అవుట్‌పుట్ ప్రాంతం దాదాపు నిండింది</translation>
 <translation id="5556459405103347317">మళ్లీ లోడ్ చేయి</translation>
 <translation id="5558125320634132440">ఈ సైట్‌లో, పెద్దలకు మాత్రమే తగిన కంటెంట్ ఉండవచ్చు కాబట్టి ఇది బ్లాక్ చేయబడింది</translation>
 <translation id="5558129378926964177">దగ్గరికి జూమ్ చేయి</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">ఈ పొడిగింపునకు ప్రత్యేక అనుమతులు అవసరం లేదు</translation>
 <translation id="7154130902455071009">మీ ప్రారంభ పేజీని దీనికి మార్చండి: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">కెమెరా లేదా ఫైల్‌లో ఉన్న ఫోటో</translation>
-<translation id="7163766494674803047">ప్రింటర్ పరికరంలో ఎర్రర్ ఏర్పడింది</translation>
 <translation id="7165320105431587207">నెట్‌వర్క్‌ను కాన్ఫిగర్ చేయడంలో విఫలమైంది</translation>
 <translation id="716640248772308851">తనిఖీ చేయబడిన స్థానాల్లో "<ph name="EXTENSION" />" చిత్రాలను, వీడియోను, సౌండ్ ఫైల్స్‌ను చదవగలదు.</translation>
 <translation id="7167486101654761064">&amp;ఎల్లప్పుడూ ఈ రకం ఫైళ్ళను తెరువు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 00a175ae..316db2a 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">ดาวน์โหลด <ph name="FILE_NAME" /> อย่างปลอดภัยไม่ได้</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ต้องการจับคู่</translation>
-<translation id="2341476639346994688">เครื่องพิมพ์หยุดทำงาน</translation>
 <translation id="2342740338116612727">เพิ่มบุ๊กมาร์กแล้ว</translation>
 <translation id="2343747224442182863">โฟกัสแท็บนี้</translation>
 <translation id="2344686470986284227">กำลังเริ่มตัวควบคุมเครื่องเสมือน</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">อ๊ะ!  ระบบไม่สามารถระบุรุ่นหรือหมายเลขซีเรียลของอุปกรณ์</translation>
 <translation id="5284445933715251131">ดาวน์โหลดต่อ</translation>
 <translation id="5285635972691565180">จอแสดงผล <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">พื้นที่สำหรับกระดาษออกเต็มแล้ว</translation>
 <translation id="5286194356314741248">กำลังสแกน</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">บัญชีของคุณ</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">การจับคู่นโยบายใบรับรอง</translation>
 <translation id="5554489410841842733">ไอคอนนี้จะมองเห็นได้เมื่อส่วนขยายสามารถทำงานบนหน้าปัจจุบันได้</translation>
 <translation id="5554720593229208774">ผู้ออกใบรับรองอีเมล</translation>
-<translation id="5554931805291741487">พื้นที่สำหรับกระดาษออกใกล้เต็มแล้ว</translation>
 <translation id="5556459405103347317">โหลดใหม่</translation>
 <translation id="5558125320634132440">เว็บไซต์นี้ถูกบล็อกเนื่องจากอาจมีเนื้อหาสำหรับผู้ใหญ่</translation>
 <translation id="5558129378926964177">ขยาย&amp;</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">ส่วนขยายนี้ไม่จำเป็นต้องมีสิทธิ์พิเศษ</translation>
 <translation id="7154130902455071009">เปลี่ยนหน้าเริ่มต้นของคุณเป็น: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">รูปภาพที่มีอยู่จากกล้องหรือไฟล์</translation>
-<translation id="7163766494674803047">เกิดข้อผิดพลาดเกี่ยวกับอุปกรณ์เครื่องพิมพ์</translation>
 <translation id="7165320105431587207">ล้มเหลวในการกำหนดค่าเครือข่าย</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" สามารถอ่านรูปภาพ วิดีโอ และไฟล์เสียงในตำแหน่งที่เลือก</translation>
 <translation id="7167486101654761064">เปิดไฟล์ประเภทนี้เ&amp;สมอ</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 2e438f4..4bb4b10 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> güvenli bir şekilde indirilemiyor</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> eşlenmek istiyor</translation>
-<translation id="2341476639346994688">Yazıcı durdu</translation>
 <translation id="2342740338116612727">Yer işaretleri eklendi</translation>
 <translation id="2343747224442182863">Bu Sekmeyi Odakla</translation>
 <translation id="2344686470986284227">Sanal makine denetleyicisi başlatılıyor</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Hata! Sistem, cihaz modelini veya seri numarasını belirleyemedi.</translation>
 <translation id="5284445933715251131">İndirmeye Devam Et</translation>
 <translation id="5285635972691565180">Ekran <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Kağıt çıkış tepsisi dolu</translation>
 <translation id="5286194356314741248">Taranıyor</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Hesaplarınız</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Sertifika Politikası Eşlemeleri</translation>
 <translation id="5554489410841842733">Bu simge, uzantı mevcut sayfayı etkileyebildiğinde görünür.</translation>
 <translation id="5554720593229208774">E-posta Sertifika Yetkilisi</translation>
-<translation id="5554931805291741487">Kağıt çıkış tepsisi dolmak üzere</translation>
 <translation id="5556459405103347317">Yeniden Yükle</translation>
 <translation id="5558125320634132440">Bu site, erişkinlere uygun içerik barındırdığından engellendi</translation>
 <translation id="5558129378926964177">Yakınlaş&amp;tır</translation>
@@ -4941,7 +4938,6 @@
 <translation id="7152478047064750137">Bu uzantı herhangi bir özel izin gerektirmiyor</translation>
 <translation id="7154130902455071009">Başlangıç sayfanızı <ph name="START_PAGE" /> olarak değiştirme</translation>
 <translation id="7155171745945906037">Kameradan veya dosyadan mevcut fotoğraf</translation>
-<translation id="7163766494674803047">Yazıcı cihaz hatası</translation>
 <translation id="7165320105431587207">Ağ yapılandırılamadı</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" işaretli konumlardaki resimleri, video ve ses dosyalarını okuyabilir.</translation>
 <translation id="7167486101654761064">&amp;Bu tür dosyaları her zaman aç</translation>
@@ -5070,7 +5066,7 @@
 <translation id="7328867076235380839">Geçersiz kombinasyon</translation>
 <translation id="7329154610228416156">Güvenli olmayan bir URL (<ph name="BLOCKED_URL" />) kullanmak üzere yapılandırıldığından oturum açılamadı. Lütfen yöneticinizle iletişime geçin.</translation>
 <translation id="7332053360324989309">Özel Çalışan: <ph name="SCRIPT_URL" /></translation>
-<translation id="7334274148831027933">Yerleştirilmiş büyüteci etkinleştir</translation>
+<translation id="7334274148831027933">Yerleşik büyüteci etkinleştir</translation>
 <translation id="7335974957018254119">Şu diller için yazım denetimi kullan:</translation>
 <translation id="7336799713063880535">Bildirimler engellendi.</translation>
 <translation id="7337248890521463931">Daha fazla satır göster</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 9aa28fb..989727c 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Створено</translation>
 <translation id="1067291318998134776">Linux (бета-версія)</translation>
 <translation id="1067922213147265141">Інші сервіси Google</translation>
+<translation id="1068961867683064946">Створіть обліковий запис Google для дитини</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Інша програма на вашому комп’ютері додала розширення, яке може впливати на роботу Chrome.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Кнопка "Назад" на підсторінці "<ph name="SUBPAGE_TITLE" />"</translation>
 <translation id="1322046419516468189">Переглядайте збережені паролі й керуйте ними на сторінці <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="1324106254079708331">Захищає особисті облікові записи Google від цілеспрямованих атак</translation>
+<translation id="1325985428688410772">Додати пробіл</translation>
 <translation id="1326317727527857210">Щоб мати доступ до вкладок з інших пристроїв, увійдіть в обліковий запис Chrome.</translation>
 <translation id="1327074568633507428">Принтер у Google Cloud Print</translation>
 <translation id="1327272175893960498">Квитки Kerberos</translation>
@@ -1082,6 +1084,7 @@
 <translation id="2307462900900812319">Установити параметри мережі</translation>
 <translation id="230927227160767054">Ця сторінка хоче встановити обробника служби.</translation>
 <translation id="2309620859903500144">Доступ цього сайту до датчиків руху чи світла заблоковано.</translation>
+<translation id="2314873619957287124">Визначте правила користування цифровим контентом, щоб вибрати для дитини час учитися, гратися чи переглядати сайти</translation>
 <translation id="2315414688463285945">Не вдалося налаштувати файли Linux. Повторіть спробу.</translation>
 <translation id="2315587498123194634">Надіслати посилання на пристрій "<ph name="DEVICE_NAME" />"</translation>
 <translation id="2316129865977710310">Ні, дякую</translation>
@@ -1093,6 +1096,7 @@
 <translation id="2322318151094136999">Запитувати, коли сайт хоче отримати доступ до послідовних портів (рекомендовано)</translation>
 <translation id="2323018538045954000">Збережені мережі Wi-Fi</translation>
 <translation id="2325444234681128157">Запам'ятати пароль</translation>
+<translation id="2326160999284776503">Увійдіть в обліковий запис Google дитини</translation>
 <translation id="2326188115274135041">Щоб увімкнути автоматичне розблокування, введіть PIN-код</translation>
 <translation id="2326931316514688470">&amp;Перезавантажити додаток</translation>
 <translation id="2327492829706409234">Увімкнути програму</translation>
@@ -1108,7 +1112,6 @@
 <translation id="2336381494582898602">Очищення</translation>
 <translation id="2340239562261172947">Не вдається безпечно завантажити файл "<ph name="FILE_NAME" />"</translation>
 <translation id="2340263603246777781">Сайт <ph name="ORIGIN" /> хоче підключитися до пристрою</translation>
-<translation id="2341476639346994688">Принтер зупинено</translation>
 <translation id="2342740338116612727">Закладки додано</translation>
 <translation id="2343747224442182863">Виділити цю вкладку</translation>
 <translation id="2344686470986284227">Запуск контролера віртуальної машини</translation>
@@ -1152,6 +1155,7 @@
 <translation id="2384436799579181135">Сталася помилка. Перевірте принтер і повторіть спробу.</translation>
 <translation id="2387052489799050037">На головний екран</translation>
 <translation id="2387458720915042159">Тип з’єднання з проксі-сервером</translation>
+<translation id="2391082728065870591">Надіслати відгук</translation>
 <translation id="2391419135980381625">Стандартний шрифт</translation>
 <translation id="2392163307141705938">Ви перевищили ліміт часу використання, який ваші батьки встановили для <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Активувати</translation>
@@ -1282,6 +1286,7 @@
 <translation id="2537178555904266562">Не вдалося синхронізувати паролі</translation>
 <translation id="2537395079978992874">Сайт <ph name="ORIGIN" /> може переглядати й змінювати вказані нижче файли та папки</translation>
 <translation id="2537927931785713436">Перевірка зображення віртуальної машини</translation>
+<translation id="2538084450874617176">Хто користується пристроєм <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Синхронізацію вимкнено</translation>
 <translation id="2540449034743108469">Натисніть "Почати", щоб прослухати дії розширення</translation>
 <translation id="2541002089857695151">Оптимізувати трансляцію на повний екран?</translation>
@@ -2743,6 +2748,7 @@
 <translation id="4364327530094270451">Диня</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> транслює вікно.</translation>
 <translation id="4364830672918311045">Показувати сповіщення</translation>
+<translation id="4368115171699243057">Налаштуйте цей пристрій <ph name="DEVICE_TYPE" /> для дитини</translation>
 <translation id="437004882363131692">Отримуйте поради, пропозиції й оновлення для пристрою <ph name="DEVICE_TYPE" />, а також надсилайте відгуки. Ви можете будь-коли скасувати підписку на ці сповіщення.</translation>
 <translation id="4370975561335139969">Введені електронна адреса та пароль не збігаються</translation>
 <translation id="4374831787438678295">Файл встановлення Linux</translation>
@@ -2903,6 +2909,7 @@
 <translation id="4565377596337484307">Сховати пароль</translation>
 <translation id="4565917129334815774">Зберігати журнали системи</translation>
 <translation id="456717285308019641">Мова сторінки для перекладу</translation>
+<translation id="4567533462991917415">Після налаштування ви можете будь-коли додати інших користувачів. Кожен із них може персоналізувати обліковий запис і захистити свої дані.</translation>
 <translation id="4567772783389002344">Додати слово</translation>
 <translation id="4568025708905928793">Потрібен ключ безпеки</translation>
 <translation id="4568213207643490790">На цьому пристрої не можна входити в облікові записи Google.</translation>
@@ -2954,6 +2961,7 @@
 <translation id="4628762811416793313">Налаштування контейнера Linux не завершено. Повторіть спробу.</translation>
 <translation id="4633003931260532286"><ph name="IMPORT_NAME" /> з мінімальною версією <ph name="IMPORT_VERSION" /> – це обов’язковий компонент для роботи розширення, але встановлено версію <ph name="INSTALLED_VERSION" /></translation>
 <translation id="4633757335284074492">Створювати резервні копії на Google Диску. Легко відновлюйте дані чи переносьте їх на інші пристрої. Ця резервна копія містить дані додатків. Резервні копії завантажуються в Google і шифруються за допомогою пароля облікового запису Google вашої дитини.</translation>
+<translation id="4634575639321169635">Налаштуйте цей пристрій для особистого користування чи роботи</translation>
 <translation id="4634771451598206121">Увійти знову...</translation>
 <translation id="4635072447747973225">Видалити Crostini</translation>
 <translation id="4635398712689569051">Сторінка "<ph name="PAGE_NAME" />" недоступна гостям.</translation>
@@ -3372,6 +3380,7 @@
 <translation id="5185386675596372454">Нову версію розширення "<ph name="EXTENSION_NAME" />" вимкнено, оскільки для неї потрібно більше дозволів.</translation>
 <translation id="5185500136143151980">Немає Інтернету</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" />: меню параметрів</translation>
 <translation id="5190926251776387065">Активувати порт</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> хоче завантажити кілька файлів</translation>
 <translation id="5192062846343383368">Щоб переглянути налаштування батьківського контролю, відкрийте додаток Family Link</translation>
@@ -3448,7 +3457,6 @@
 <translation id="5283677936944177147">На жаль, системі не вдалося визначити модель та серійний номер пристрою.</translation>
 <translation id="5284445933715251131">Продовжити завантаження</translation>
 <translation id="5285635972691565180">Дисплей <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Область виводу заповнена</translation>
 <translation id="5286194356314741248">Сканування</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Ваші облікові записи</translation>
@@ -3619,6 +3627,7 @@
 <translation id="5495597166260341369">Залишати дисплей увімкненим</translation>
 <translation id="5496587651328244253">Упорядкувати</translation>
 <translation id="5497251278400702716">Цей файл</translation>
+<translation id="5498967291577176373">Пишіть швидше з вбудованими підказками щодо імені, адреси або номеру телефону</translation>
 <translation id="5499313591153584299">Цей файл може зашкодити вашому комп’ютеру.</translation>
 <translation id="5499453227627332024">Доступне оновлення для Linux Container. Ви також можете оновити систему пізніше в додатку Налаштування.</translation>
 <translation id="5500709606820808700">Перевірку безпеки виконано сьогодні</translation>
@@ -3669,7 +3678,6 @@
 <translation id="5553089923092577885">Зіставлення політик сертифікатів</translation>
 <translation id="5554489410841842733">Ця піктограма відображатиметься, коли розширення зможе працювати на поточній сторінці.</translation>
 <translation id="5554720593229208774">Центр сертифікації електронної пошти</translation>
-<translation id="5554931805291741487">Область виводу майже заповнена</translation>
 <translation id="5556459405103347317">Перезавантажити</translation>
 <translation id="5558125320634132440">Сайт заблоковано, оскільки він може містити контент для повнолітніх.</translation>
 <translation id="5558129378926964177">Збільшити &amp;масштаб</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Місцезнаходження</translation>
 <translation id="56907980372820799">Зв’язати облікові записи</translation>
 <translation id="5691511426247308406">Сім’я</translation>
+<translation id="5691581861107245578">Отримувати підказки смайлів на основі введених слів</translation>
 <translation id="5691772641933328258">Відбиток не розпізнано</translation>
 <translation id="5692183275898619210">Друк завершено</translation>
 <translation id="569425414730375234">Зміна за поточний сеанс анонімного перегляду: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Цьому сайту потрібні додаткові дозволи.</translation>
 <translation id="6125479973208104919">На жаль, потрібно ще раз додати обліковий запис на пристрої <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6129691635767514872">Вибрані дані видалено з Chrome і синхронізованих пристроїв. Історія веб-перегляду, а також ваші дії в інших сервісах Google можуть також зберігатися у вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Ваша дитина</translation>
 <translation id="6129938384427316298">Коментар сертифіката Netscape</translation>
 <translation id="6129953537138746214">Пробіл</translation>
 <translation id="6130692320435119637">Додати мережу Wi-Fi</translation>
@@ -4175,6 +4185,7 @@
 <translation id="6178664161104547336">Вибір сертифіката</translation>
 <translation id="6181431612547969857">Завантаження заблоковано</translation>
 <translation id="6185132558746749656">Місцезнаходження пристрою</translation>
+<translation id="6195446518998936840">Щоб налаштувати батьківський контроль, дитина повинна мати обліковий запис Google, яким ви керуватимете. У додатку Family Link ви можете обмежувати час використання пристрою, схвалювати чи блокувати веб-сайти тощо.</translation>
 <translation id="6195693561221576702">Не вдається налаштувати пристрій у демо-режимі офлайн.</translation>
 <translation id="6196640612572343990">Блокувати сторонні файли cookie</translation>
 <translation id="6196854373336333322">Розширення "<ph name="EXTENSION_NAME" />" керує налаштуваннями проксі-сервера, тобто може змінювати та переривати будь-які ваші дії онлайн, а також стежити за ними. Якщо ви не знаєте причини такої зміни, імовірно, вона небажана.</translation>
@@ -4940,7 +4951,6 @@
 <translation id="7152478047064750137">Для цього розширення не потрібні спеціальні дозволи</translation>
 <translation id="7154130902455071009">Зробити <ph name="START_PAGE" /> домашньою сторінкою</translation>
 <translation id="7155171745945906037">Наявні фотографії з камери або файлу</translation>
-<translation id="7163766494674803047">Помилка принтера</translation>
 <translation id="7165320105431587207">Помилка налаштування мережі</translation>
 <translation id="716640248772308851">Розширення "<ph name="EXTENSION" />" має доступ до читання зображень, відео та звукових файлів у вибраних розташуваннях.</translation>
 <translation id="7167486101654761064">&amp;Завжди відкривати файли цього типу</translation>
@@ -5930,6 +5940,7 @@
 <translation id="8372369524088641025">Поганий WEP-ключ</translation>
 <translation id="8372477600026034341">Додаткові хости</translation>
 <translation id="8373652277231415614">Спільні каталоги Crostini</translation>
+<translation id="8376384591331888629">Зокрема файли cookie третіх сторін на цьому сайті</translation>
 <translation id="8378714024927312812">Профілем керує ваша організація</translation>
 <translation id="8379878387931047019">Пристрій не підтримує тип ключа безпеки, потрібний для цього веб-сайту</translation>
 <translation id="8379991678458444070">Зробіть закладку для цієї вкладки, щоб швидко повертатися на неї</translation>
@@ -6013,6 +6024,7 @@
 <translation id="8481187309597259238">Підтвердьте дозвіл USB</translation>
 <translation id="8483248364096924578">IP-адреса</translation>
 <translation id="8487678622945914333">Збільшити</translation>
+<translation id="8489156414266187072">Персональні підказки з'являються лише у вашому обліковому записі</translation>
 <translation id="8490896350101740396">Оновлено такі додатки-термінали: <ph name="UPDATED_APPS" />. Перезавантажте пристрій, щоб завершити оновлення.</translation>
 <translation id="8493236660459102203">Мікрофон:</translation>
 <translation id="8496717697661868878">Запустити цей плагін</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 5cdfefe..87e25ed 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -207,7 +207,7 @@
 <translation id="1238191093934674082">Open VPN</translation>
 <translation id="1239594683407221485">فائلز ایپ میں آلے کے مواد کا پتہ لگائیں۔</translation>
 <translation id="124116460088058876">مزید زبانیں</translation>
-<translation id="1241639418100230264">خاطر خواہ ڈیٹا چارجز لگ سکتے ہیں</translation>
+<translation id="1241639418100230264">ڈیٹا چارجز لگ سکتے ہیں</translation>
 <translation id="1241753985463165747">موجودہ ویب سائٹ پر موجود اپنے سبھی ڈیٹا کو چلائے جانے پر پڑھیں اور انہیں تبدیل کریں</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> آپ کی ترتیبات کو دوبارہ ترتیب دینا چاہتا ہے۔</translation>
 <translation id="1243314992276662751">اپ لوڈ کریں</translation>
@@ -1109,7 +1109,6 @@
 <translation id="2336381494582898602">پاور واش</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> فائل کو محفوظ طریقے سے ڈاؤن لوڈ نہیں کیا جا سکتا ہے</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> جوڑا بنانا چاہتی ہے</translation>
-<translation id="2341476639346994688">پرنٹر رک گیا ہے</translation>
 <translation id="2342740338116612727">بُک مارکس شامل کر دیے گئے</translation>
 <translation id="2343747224442182863">اس ٹیب کو فوکس کریں</translation>
 <translation id="2344686470986284227">ورچوئل مشین کنٹرولر شروع ہو رہا ہے</translation>
@@ -1840,7 +1839,7 @@
 <translation id="3254715652085014625">‏اپنے Android فون پر Chrome کو کھولیں اور "ترتیبات &gt; پاس ورڈز &gt; فون کو بطور سیکیورٹی کلید استعمال کریں" پر جائیں، اور وہاں ہدایات کی پیروی کریں۔</translation>
 <translation id="3255355328033513170"><ph name="SITE_GROUP_NAME" /> کا اسٹور کردہ تمام ڈیٹا اور اس کے ماتحت کسی بھی سائٹ کو حذف کر دیا جائے گا۔ اس میں کوکیز شامل ہیں۔ اوپن ٹیبز سمیت، آپ ان سائٹس سے سائن آؤٹ ہو جائیں گے۔</translation>
 <translation id="3259723213051400722">براہ کرم دوبارہ کوشش کریں۔</translation>
-<translation id="3261268979727295785">‏بڑی عمر کے بچوں کیلئے، آپ سیٹ اپ مکمل ہونے کے بعد پیرنٹل کنٹرولز شامل کر سکتے ہیں۔ آپ Explore ایپ میں پیرنٹل کنٹرولز پر معلومات تلاش کریں گے۔</translation>
+<translation id="3261268979727295785">‏بڑی عمر کے بچوں کیلئے، آپ سیٹ اپ مکمل ہونے کے بعد پیرنٹل کنٹرولز شامل کر سکتے ہیں۔ آپ کو Explore ایپ میں پیرنٹل کنٹرولز سے متعلق معلومات ملے گی۔</translation>
 <translation id="3264544094376351444">‏Sans-serif فونٹ</translation>
 <translation id="3264582393905923483">سیاق و سباق</translation>
 <translation id="3265459715026181080">ونڈو کو بند کریں</translation>
@@ -2032,7 +2031,7 @@
 <translation id="3487007233252413104">گمنام فنکشن</translation>
 <translation id="348780365869651045">‏AppCache کا انتظار ہے…</translation>
 <translation id="3488065109653206955">جزوی طور پر فعال کردہ</translation>
-<translation id="3491669675709357988">‏Family Link پیرنٹل کنٹرولز کے لیے آپ کے بچہ کا اکاؤنٹ سیٹ اپ نہیں کیا گیا ہے۔ سیٹ اپ مکمل کرنے کے بعد آپ پیرنٹل کنٹرولز کو شامل کر سکتے ہیں۔ آپ Explore ایپ میں پیرنٹل کنٹرولز پر معلومات تلاش کریں گے۔</translation>
+<translation id="3491669675709357988">‏Family Link پیرنٹل کنٹرولز کے لیے آپ کے بچہ کا اکاؤنٹ سیٹ اپ نہیں کیا گیا ہے۔ سیٹ اپ مکمل کرنے کے بعد آپ پیرنٹل کنٹرولز کو شامل کر سکتے ہیں۔ آپ کو Explore ایپ میں پیرنٹل کنٹرولز سے متعلق معلومات ملے گی۔</translation>
 <translation id="3492788708641132712">مطابقت پذیری کام نہیں کر رہی ہے۔ دوبارہ سائن ان کرنے کی کوشش کریں۔</translation>
 <translation id="3493486281776271508">انٹرنیٹ کنکشن کی ضرورت ہے</translation>
 <translation id="3493881266323043047">درستگی</translation>
@@ -2939,7 +2938,7 @@
 <translation id="4611114513649582138">ڈیٹا کنکشن دستیاب ہے</translation>
 <translation id="4613144866899789710">‏Linux کی انسٹالیشن کا عمل منسوخ ہو رہا ہے...</translation>
 <translation id="4613271546271159013">آپ کی جانب سے نیا ٹیب کھولنے پر دکھائی دینے والے صفحہ کو اس ایکسٹینشن نے تبدیل کر دیا ہے۔</translation>
-<translation id="4613829655642011036">ابھی تک کوئی البم سیٹ نہیں کیا گیا</translation>
+<translation id="4613829655642011036">ابھی تک کوئی بھی البم سیٹ اپ نہیں کی گئی</translation>
 <translation id="4615586811063744755">کوئی کوکی منتخب نہیں ہے</translation>
 <translation id="461661862154729886">توانائی کا ماخذ</translation>
 <translation id="4617001782309103936">بہت چھوٹا</translation>
@@ -3449,7 +3448,6 @@
 <translation id="5283677936944177147">افوہ! سسٹم آلہ کے ماڈل یا نمبر شمار کا تعین کرنے میں ناکام ہوگیا۔</translation>
 <translation id="5284445933715251131">ڈاؤن لوڈ کرنا جاری رکھیں</translation>
 <translation id="5285635972691565180">ڈسپلے <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">آؤٹ پٹ کا علاقہ فُل ہوا ہے</translation>
 <translation id="5286194356314741248">اسکین کی جا رہی ہیں</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">آپ کے اکاؤنٹس</translation>
@@ -3670,7 +3668,6 @@
 <translation id="5553089923092577885">سرٹیفیکیٹ پالیسی کی نقشہ سازیاں</translation>
 <translation id="5554489410841842733">جب ایکسٹینشن موجودہ صفحہ پر کارروائی کر سکے گا تو یہ آئیکن دیکھا جا سکے گا۔</translation>
 <translation id="5554720593229208774">ای میل سرٹیفکیشن اتھارٹی</translation>
-<translation id="5554931805291741487">آؤٹ پٹ کا علاقہ تقریباً فُل ہوا ہے</translation>
 <translation id="5556459405103347317">دوبارہ لوڈ کریں</translation>
 <translation id="5558125320634132440">اس سائٹ کو مسدود کردیا گیا ہے کیونکہ اس میں بالغ مواد ہوسکتا ہے</translation>
 <translation id="5558129378926964177">زوم &amp;ان کریں</translation>
@@ -4422,7 +4419,7 @@
 <translation id="6498249116389603658">&amp;آپ کی سبھی زبانیں</translation>
 <translation id="6499143127267478107">میزبان کو پراکسی اسکرپٹ میں حل کیا جا رہا ہے…</translation>
 <translation id="6499681088828539489">مشترکہ نیٹ ورکس کیلئے پراکسیز کی اجازت نہ دیں</translation>
-<translation id="650266656685499220">‏البمز تخلیق کے لیے Google تصاویر پر جائیں</translation>
+<translation id="650266656685499220">‏البمز تخلیق کرنے کے لیے Google تصاویر پر جائیں</translation>
 <translation id="6503077044568424649">سب سے زیادہ ملاحظہ کردہ</translation>
 <translation id="6504611359718185067">ایک پرنٹر شامل کرنے کیلئے انٹرنیٹ سے منسلک ہوں</translation>
 <translation id="6506374932220792071">‏SHA-256 کے ساتھ X9.62 ECDSA دستخط</translation>
@@ -4941,7 +4938,6 @@
 <translation id="7152478047064750137">اس ایکسٹینشن کو کوئی خاص اجازتیں درکار نہیں ہیں</translation>
 <translation id="7154130902455071009">اپنے شروعاتی صفحہ کو اس پر تبدیل کریں: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">کیمرے یا فائل سے موجودہ تصویر</translation>
-<translation id="7163766494674803047">پرنٹر آلے کی خرابی</translation>
 <translation id="7165320105431587207">نیٹ ورک کنفیگر کرنے میں ناکام ہوگیا</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" نشان زد مقامات میں تصاویر، ویڈیوز اور آواز والی فائلیں پڑھ سکتا ہے۔</translation>
 <translation id="7167486101654761064">اس قسم کی فائلیں &amp;ہمیشہ کھولیں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index a17298c..34a0a8e 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Yaratilgan sanasi</translation>
 <translation id="1067291318998134776">Linux (Beta)</translation>
 <translation id="1067922213147265141">Boshqa Google xizmatlari</translation>
+<translation id="1068961867683064946">Farzandingiz uchun Google hisobini yarating</translation>
 <translation id="1070066693520972135">WEP</translation>
 <translation id="1070377999570795893">Kompyuteringizdagi boshqa dastur bitta kengaytma o‘rnatdi. U Chrome brauzerinig ishlash usulini o‘zgartirishi mumkin.
 
@@ -273,6 +274,7 @@
 <translation id="1319983966058170660"><ph name="SUBPAGE_TITLE" /> quyi sahifasi orqaga tugmasi</translation>
 <translation id="1322046419516468189"><ph name="SAVED_PASSWORDS_STORE" /> omboriga saqlangan parollarni ko‘rish va boshqarish</translation>
 <translation id="1324106254079708331">Shaxsiy Google hisoblarini barcha maqsadli hujumlardan himoya qiladi</translation>
+<translation id="1325985428688410772">Profil kiritish</translation>
 <translation id="1326317727527857210">Boshqa qurilmalaringizdagi brauzer sahifalarini sinxronlash uchun Chrome hisobingizga kiring.</translation>
 <translation id="1327074568633507428">Google virtual printeriga ulanilgan printer</translation>
 <translation id="1327272175893960498">Kerberos chiptalari</translation>
@@ -1080,6 +1082,7 @@
 <translation id="2307462900900812319">Tarmoqni sozlash</translation>
 <translation id="230927227160767054">Bu sahifa xizmatga ishlov beruvchi vosita o‘rnatishga urinmoqda.</translation>
 <translation id="2309620859903500144">Bu sahifa uchun harakat yoki yorug‘lik sensorlaridan foydalanish taqiqlandi</translation>
+<translation id="2314873619957287124">Farzandning darsliklar, oʻyinlar va saytlarni ochishi uchun raqamli qoidalarni belgilash</translation>
 <translation id="2315414688463285945">Linux fayllarini sozlab bo‘lmadi. Qaytadan urining.</translation>
 <translation id="2315587498123194634">Havolani <ph name="DEVICE_NAME" /> qurilmasiga yuborish</translation>
 <translation id="2316129865977710310">Kerak emas</translation>
@@ -1091,6 +1094,7 @@
 <translation id="2322318151094136999">Sayt ketma-ket portlardan foydalanish oldidan ruxsat olinsin (tavsiya etiladi)</translation>
 <translation id="2323018538045954000">Saqlangan Wi-Fi tarmoqlar</translation>
 <translation id="2325444234681128157">Parol eslab qolinsin</translation>
+<translation id="2326160999284776503">Farzandingizning Google hisobi bilan kiring</translation>
 <translation id="2326188115274135041">Qulfni avtomatik yechish funksiyasini yoqish uchun PIN kodni tasdiqlang</translation>
 <translation id="2326931316514688470">&amp;Ilovani qayta yuklash</translation>
 <translation id="2327492829706409234">Ilovani yoqish</translation>
@@ -1106,7 +1110,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947"><ph name="FILE_NAME" /> faylini xavfsiz yuklab olish imkonsiz</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> qurilmangizga ulanmoqchi</translation>
-<translation id="2341476639346994688">Printer toʻxtab qoldi</translation>
 <translation id="2342740338116612727">Bukmarklar biriktirildi</translation>
 <translation id="2343747224442182863">Shu varaqni fokuslash</translation>
 <translation id="2344686470986284227">Virtual mashina kontrolleri ishga tushmoqda</translation>
@@ -1150,6 +1153,7 @@
 <translation id="2384436799579181135">Xatolik yuz berdi. Printeringizni tekshiring va qaytadan urining.</translation>
 <translation id="2387052489799050037">Boshiga</translation>
 <translation id="2387458720915042159">Proksi-server orqali ulanish turi</translation>
+<translation id="2391082728065870591">Fikr va mulohaza hisobotini yuborish</translation>
 <translation id="2391419135980381625">Standard shrift</translation>
 <translation id="2392163307141705938">Ota-onangiz <ph name="IDS_SHORT_PRODUCT_NAME" /> uchun belgilagan foydalanish vaqti tugadi.</translation>
 <translation id="2392369802118427583">Faollashtirish</translation>
@@ -1280,6 +1284,7 @@
 <translation id="2537178555904266562">Parollar sinxronlanmadi</translation>
 <translation id="2537395079978992874"><ph name="ORIGIN" /> quyidagi fayl va jildlardagi oʻzgarishlarni bevosita oʻqiy va tahrirlay oladi</translation>
 <translation id="2537927931785713436">Virtual mashina tasviri tekshirilmoqda</translation>
+<translation id="2538084450874617176"><ph name="DEVICE_TYPE" /> qurilmasini kim ishlatadi?</translation>
 <translation id="2538361623464451692">Sinxronlash yoqilmagan</translation>
 <translation id="2540449034743108469">Kengaytma harakatlarini kuzatish uchun “Boshlash” ustiga bosing</translation>
 <translation id="2541002089857695151">Butun ekran rejimidagi translatsiya takomillashtirilsinmi?</translation>
@@ -2741,6 +2746,7 @@
 <translation id="4364327530094270451">Qovun</translation>
 <translation id="4364567974334641491">“<ph name="APP_NAME" />” ilovasi oynaga kirish uchun ruxsat berdi.</translation>
 <translation id="4364830672918311045">Bildirishnomalarni ko‘rsatish</translation>
+<translation id="4368115171699243057">Bu <ph name="DEVICE_TYPE" /> qurilmasini farzand uchun sozlang</translation>
 <translation id="437004882363131692"><ph name="DEVICE_TYPE" /> bilan ishlashga oid takliflar, mashalatlar va yangiliklar oling va fikr-mulohaza yuboring. Istalgan vaqt obunani bekor qilish mumkin.</translation>
 <translation id="4370975561335139969">Siz kiritgan e-pochta va parol mos kelmadi</translation>
 <translation id="4374831787438678295">Linux uchun o‘rnatkich</translation>
@@ -2901,6 +2907,7 @@
 <translation id="4565377596337484307">Parolni berkitish</translation>
 <translation id="4565917129334815774">Tizim jurnallari saqlanishi</translation>
 <translation id="456717285308019641">Tarjima qilinadigan sahifa tili</translation>
+<translation id="4567533462991917415">Sozlashdan keyin istalgan vaqtda yana odam kiritish mumkin. Har bir odamning hisobi alohida moslashtiriladi va ularning maʼlumotlari xavfsiz saqlanadi.</translation>
 <translation id="4567772783389002344">So‘z qo‘shish</translation>
 <translation id="4568025708905928793">Elektron kalit talab qilinmoqda</translation>
 <translation id="4568213207643490790">Kechirasiz, bu qurilmada Google hisoblaridan foydalanishga ruxsat berilmaydi.</translation>
@@ -2952,6 +2959,7 @@
 <translation id="4628762811416793313">Linux konteyneri toʻliq sozlanmagan. Qaytadan urining.</translation>
 <translation id="4633003931260532286">Kengaytmaga kamida “<ph name="IMPORT_VERSION" />” versiyadagi “<ph name="IMPORT_NAME" />” kerak, lekin hozir “<ph name="INSTALLED_VERSION" />” versiyasi o‘rnatilgan</translation>
 <translation id="4633757335284074492">Google Drive omboriga zaxiralash. Axborotlaringizni osongina tiklashingiz yoki qurilmangizni xohlagan vaqtda almashtirishingiz mumkin. Zaxira ichida ilova maʼlumotlari ham bor. Zaxiralar Google serverlariga yuklanadi va farzandingizning Google hisobingiz paroli bilan shifrlanadi.</translation>
+<translation id="4634575639321169635">Bu qurilmada ish va shaxsiy profillarni sozlash</translation>
 <translation id="4634771451598206121">Qaytadan kirish...</translation>
 <translation id="4635072447747973225">Crostini tizimini oʻchirib tashlash</translation>
 <translation id="4635398712689569051"><ph name="PAGE_NAME" /> sahifasi mehmon foydalanuvchilarga ko‘rinmaydi.</translation>
@@ -3370,6 +3378,7 @@
 <translation id="5185386675596372454">“<ph name="EXTENSION_NAME" />” kengaytmasining so‘nggi versiyasi qo‘shimcha ruxsatlarni talab qilganligi uchun o‘chirib qo‘yildi.</translation>
 <translation id="5185500136143151980">Internetga ulanmagansiz</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287"><ph name="PROFILE_LOCAL_NAME" /> uchun parametrlar menyusi</translation>
 <translation id="5190926251776387065">Portni yoqish</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> bir nechta faylni yuklab olmoqchi</translation>
 <translation id="5192062846343383368">Nazorat sozlamalarini koʻrish uchun Family Link ilovasini oching</translation>
@@ -3446,7 +3455,6 @@
 <translation id="5283677936944177147">Qurilma modeli yoki seriya raqamini aniqlab bo‘lmadi.</translation>
 <translation id="5284445933715251131">Yuklab olishda davom etish</translation>
 <translation id="5285635972691565180"><ph name="DISPLAY_ID" />-ekran</translation>
-<translation id="5286094561505658635">Bosma uchun joy qolmadi</translation>
 <translation id="5286194356314741248">Qidiruv</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Hisoblar</translation>
@@ -3617,6 +3625,7 @@
 <translation id="5495597166260341369">Ekran yoniq qolsin</translation>
 <translation id="5496587651328244253">Boshqarish</translation>
 <translation id="5497251278400702716">Bu fayl</translation>
+<translation id="5498967291577176373">Shaxsiy axborot takliflari ism, manzil yoki telefon raqamini tezroq yozing</translation>
 <translation id="5499313591153584299">Bu fayl kompyuteringiz uchun zararli bo‘lishi mumkin.</translation>
 <translation id="5499453227627332024">Linux konteyneringiz uchun yangilanish chiqqan. Uni keyinroq Sozlamalar ilovasi orqali ham yangilash mumkin.</translation>
 <translation id="5500709606820808700">Xavfsizlik tekshiruvi bugun bajarilgan</translation>
@@ -3667,7 +3676,6 @@
 <translation id="5553089923092577885">Siyosat sertifikatlarini solishtirish</translation>
 <translation id="5554489410841842733">Agar kengaytma joriy sahifada ishlay olsa, uning nishochasi ko‘rinadi.</translation>
 <translation id="5554720593229208774">Email sertifikatlash markasi</translation>
-<translation id="5554931805291741487">Bosma uchun joy kam</translation>
 <translation id="5556459405103347317">Qayta yuklash</translation>
 <translation id="5558125320634132440">Bu sayt tarkibida voyaga yetganlar uchun kontent borligi sababli bloklandi</translation>
 <translation id="5558129378926964177">&amp;Kattalashtirish</translation>
@@ -3774,6 +3782,7 @@
 <translation id="5689516760719285838">Joylashuv</translation>
 <translation id="56907980372820799">Hisobni bog‘lash</translation>
 <translation id="5691511426247308406">Oilaviy</translation>
+<translation id="5691581861107245578">Kiritilayotgan matn asosida emojilar taklif qilinsin</translation>
 <translation id="5691772641933328258">Barmoq izi aniqlanmadi</translation>
 <translation id="5692183275898619210">Chop etildi</translation>
 <translation id="569425414730375234">Joriy inkognito seans: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4133,6 +4142,7 @@
 <translation id="6124698108608891449">Bu saytga yana boshqa ruxsatlar kerak.</translation>
 <translation id="6125479973208104919">Afsuski bu <ph name="DEVICE_TYPE" /> qurilmangizga o‘z hisobingizni qayta qo‘shishingiz zarur.</translation>
 <translation id="6129691635767514872">Belgilangan ma’lumotlar Chrome xotirasidan o‘chirildi va qurilmalarga sinxronlandi. Google hisobingiz orqali bajargan qidiruvlaringiz, brauzer tarixi va boshqa internetdagi faoliyatingizni <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> xizmati orqali ko‘rishingiz mumkin.</translation>
+<translation id="6129839611163153407">Farzandingiz</translation>
 <translation id="6129938384427316298">Netscape sertifikatiga fikr</translation>
 <translation id="6129953537138746214">Bo‘shliq</translation>
 <translation id="6130692320435119637">Wi-Fi kiritish</translation>
@@ -4173,6 +4183,7 @@
 <translation id="6178664161104547336">Sertifikatni tanlang</translation>
 <translation id="6181431612547969857">Yuklash olish taqiqlangan</translation>
 <translation id="6185132558746749656">Qurilma joylashuvi</translation>
+<translation id="6195446518998936840">Nazoratni sozlash uchun farzandingizda siz boshqarishda yordam bera oladigan Google hisobi boʻlishi kerak. Qurilmadan foydalanish vaqtini cheklash, saytlarni taqiqlash yoki maʼqullash va boshqa amallar uchun Family Link ilovasidan foydalaning.</translation>
 <translation id="6195693561221576702">Bu qurilmani oflayn demo rejimda sozlab boʻlmaydi.</translation>
 <translation id="6196640612572343990">Tashqi cookie-fayllarni bloklash.</translation>
 <translation id="6196854373336333322">“<ph name="EXTENSION_NAME" />” kengaytmasi proksi-server sozlamalarini nazorat qiladi. U internetda bajargan ishlaringizni o‘zgartirishi, buzishi yoki bildirmasdan eshitishi mumkin. Agar bu haqda eshitmagan bo‘lsangiz, uni o‘chirib qo‘yganingiz yaxshi.</translation>
@@ -4938,7 +4949,6 @@
 <translation id="7152478047064750137">Bu kengaytma hech qanday maxsus ruxsat talab qilmaydi</translation>
 <translation id="7154130902455071009">Boshlash sahifani quyidagisiga almashtirish: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Kamera yoki galereyadan olingan surat</translation>
-<translation id="7163766494674803047">Printerda muammo yuz berdi</translation>
 <translation id="7165320105431587207">Tarmoq sozlanmadi</translation>
 <translation id="716640248772308851">“<ph name="EXTENSION" />” kengaytmasi belgilangan jildlardan rasm, audio va video fayllarni o‘qishi mumkin.</translation>
 <translation id="7167486101654761064">&amp;Bu turdagi fayllar har doim ochilsin</translation>
@@ -5926,6 +5936,7 @@
 <translation id="8372369524088641025">WEP kaliti yaroqsiz</translation>
 <translation id="8372477600026034341">Qoʻshimcha hostlar</translation>
 <translation id="8373652277231415614">Crostini umumiy kataloglari</translation>
+<translation id="8376384591331888629">Bu saytdagi tashqi cookie fayllariga ham</translation>
 <translation id="8378714024927312812">Tashkilotingiz tomonidan boshqariladi</translation>
 <translation id="8379878387931047019">Bu qurilmada sayt so‘ragan kalit turi mavjud emas</translation>
 <translation id="8379991678458444070">Bu varaq bukmarkka olinsa, keyinchalik oson topiladi</translation>
@@ -6009,6 +6020,7 @@
 <translation id="8481187309597259238">USB ruxsatnomasini tasdiqlash</translation>
 <translation id="8483248364096924578">IP manzil</translation>
 <translation id="8487678622945914333">Yaqinlashtirish</translation>
+<translation id="8489156414266187072">Shaxsiy takliflar faqat sizning hisobda chiqadi</translation>
 <translation id="8490896350101740396">Quyidagi kiosk ilovalar "<ph name="UPDATED_APPS" />" yangilandi. Yangilash jarayonini tugallash uchun qurilmani qayta yuklang.</translation>
 <translation id="8493236660459102203">Mikrofon:</translation>
 <translation id="8496717697661868878">Bu plaginni ishga tushirish</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 450702d..862aa739 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">Không thể tải <ph name="FILE_NAME" /> xuống một cách an toàn</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> muốn ghép nối</translation>
-<translation id="2341476639346994688">Máy in đã dừng</translation>
 <translation id="2342740338116612727">Đã thêm dấu trang</translation>
 <translation id="2343747224442182863">Lấy tiêu điểm thẻ này</translation>
 <translation id="2344686470986284227">Đang khởi động bộ điều khiển máy ảo</translation>
@@ -3448,7 +3447,6 @@
 <translation id="5283677936944177147">Rất tiếc! Hệ thống không xác định được số sê-ri hoặc kiểu thiết bị.</translation>
 <translation id="5284445933715251131">Tiếp tục tải xuống</translation>
 <translation id="5285635972691565180">Màn hình <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Khay giấy ra đã đầy</translation>
 <translation id="5286194356314741248">Đang quét</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">Tài khoản của bạn</translation>
@@ -3669,7 +3667,6 @@
 <translation id="5553089923092577885">Ánh xạ Chính sách của Chứng chỉ</translation>
 <translation id="5554489410841842733">Biểu tượng này sẽ hiển thị khi tiện ích có thể hoạt động trên trang hiện tại.</translation>
 <translation id="5554720593229208774">Tổ chức phát hành chứng chỉ email</translation>
-<translation id="5554931805291741487">Khay giấy ra gần đầy</translation>
 <translation id="5556459405103347317">Tải lại</translation>
 <translation id="5558125320634132440">Trang web này bị chặn vì có thể chứa nội dung dành cho người trưởng thành</translation>
 <translation id="5558129378926964177">Phóng &amp;to</translation>
@@ -4940,7 +4937,6 @@
 <translation id="7152478047064750137">Tiện ích này không yêu cầu quyền đặc biệt</translation>
 <translation id="7154130902455071009">Thay đổi trang chủ của bạn thành: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Ảnh hiện có từ máy ảnh hoặc tệp</translation>
-<translation id="7163766494674803047">Lỗi thiết bị máy in</translation>
 <translation id="7165320105431587207">Không định cấu hình mạng được</translation>
 <translation id="716640248772308851">"<ph name="EXTENSION" />" có thể đọc hình ảnh, video và tệp âm thanh trong các vị trí đã chọn.</translation>
 <translation id="7167486101654761064">&amp;Luôn mở loại tệp này</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 3ec5fae..4c05e9d2 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -386,7 +386,7 @@
 <translation id="1465827627707997754">披萨片</translation>
 <translation id="1468571364034902819">无法使用这份个人资料</translation>
 <translation id="1470084204649225129">{NUM_TABS,plural, =1{向新群组中添加标签页}other{向新群组中添加标签页}}</translation>
-<translation id="1470946456740188591">要开启或关闭光标浏览模式,请使用快捷键 Ctrl+搜索键+7</translation>
+<translation id="1470946456740188591">如需开启或关闭光标浏览模式,请使用快捷键 Ctrl + 搜索键 + 7</translation>
 <translation id="1472675084647422956">显示更多</translation>
 <translation id="1474785664565228650">重新启动 Parallels Desktop 后,对麦克风设置做出的更改才能生效。请重新启动 Parallels Desktop 以继续。</translation>
 <translation id="1475502736924165259">您有一些证书不属于前面的任何类别</translation>
@@ -570,7 +570,7 @@
 <translation id="1680849702532889074">安装 Linux 应用时出错。</translation>
 <translation id="16815041330799488">不允许网站查看复制到剪贴板的文字和图片</translation>
 <translation id="1682548588986054654">打开新的无痕式窗口</translation>
-<translation id="1682867089915960590">开启光标浏览模式?</translation>
+<translation id="1682867089915960590">要开启光标浏览模式吗?</translation>
 <translation id="1686550358074589746">启用滑行输入</translation>
 <translation id="168715261339224929">要想将您的书签同步到您的所有设备上,请开启同步功能。</translation>
 <translation id="1688867105868176567">要清除网站数据吗?</translation>
@@ -1105,7 +1105,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">无法安全地下载“<ph name="FILE_NAME" />”</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> 希望与以下所选设备配对:</translation>
-<translation id="2341476639346994688">打印机已停止运行</translation>
 <translation id="2342740338116612727">书签已添加</translation>
 <translation id="2343747224442182863">聚焦此标签页</translation>
 <translation id="2344686470986284227">正在启动虚拟机控制器</translation>
@@ -1113,7 +1112,7 @@
 <translation id="2347644257713614136">使用环聊和 Cast for Education 时须遵守《Google 隐私权政策》。</translation>
 <translation id="2348176352564285430">应用:<ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="234889437187286781">加载数据时出错</translation>
-<translation id="2349065708974079577">个性化您的待机界面。在设备充电时让屏幕保持开启。</translation>
+<translation id="2349065708974079577">个性化设置您的待机界面。在设备充电时让屏幕保持开启。</translation>
 <translation id="2349896577940037438">如果您已开启“其他网络与应用活动记录”设置,这些数据可能会被保存到您的 Google 帐号中。您可在 account.google.com 上查看和删除您的数据以及更改您的帐号设置。</translation>
 <translation id="2350133097354918058">已重新加载</translation>
 <translation id="2350182423316644347">正在初始化应用…</translation>
@@ -1503,7 +1502,7 @@
 <translation id="2805770823691782631">更多详情</translation>
 <translation id="2807517655263062534">您下载的文件会显示在此处</translation>
 <translation id="2809586584051668049">及另外<ph name="NUMBER_ADDITIONAL_DISABLED" />个扩展程序</translation>
-<translation id="2810024255621914659">系统将会使用所选的回忆照片制作幻灯片。要对现有影集进行任何更改,请转至 <ph name="LINK_BEGIN" />Google 相册<ph name="LINK_END" />。</translation>
+<translation id="2810024255621914659">系统将会使用所选的回忆照片制作幻灯片。如需对现有影集进行任何更改,请转至 <ph name="LINK_BEGIN" />Google 相册<ph name="LINK_END" />。</translation>
 <translation id="2810390687497823527">如果您不认识某款扩展程序或者您的浏览器无法按预期运行,您可在此处关闭或自定义扩展程序。</translation>
 <translation id="2812049959647166806">Thunderbolt 不受支持</translation>
 <translation id="2812989263793994277">不显示任何图片</translation>
@@ -3232,7 +3231,7 @@
 <translation id="5015344424288992913">正在解析代理...</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">保存</translation>
-<translation id="5017643436812738274">您可以使用文本光标浏览网页。按 Ctrl+搜索键+7 可关闭。</translation>
+<translation id="5017643436812738274">您可以使用文本光标浏览网页。按 Ctrl + 搜索键 + 7 可关闭。</translation>
 <translation id="5018207570537526145">打开扩展程序网站</translation>
 <translation id="5018526990965779848">发送使用情况数据和诊断数据。自动向 Google 发送诊断数据、设备数据和应用使用情况数据,帮助改善您的 Android 使用体验。这些数据会有助于提高系统和应用的稳定性以及实现其他方面的改进。部分汇总数据还会对 Google 应用和合作伙伴(例如 Android 开发者)有所帮助。如果您已开启“其他网络与应用活动记录”设置,这些数据可能会被保存到您的 Google 帐号中。</translation>
 <translation id="5021750053540820849">尚未更新</translation>
@@ -3443,7 +3442,6 @@
 <translation id="5283677936944177147">糟糕!系统未能确定设备型号或序列号。</translation>
 <translation id="5284445933715251131">继续下载</translation>
 <translation id="5285635972691565180">显示屏 <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">出纸盘已满</translation>
 <translation id="5286194356314741248">正在扫描</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">您的帐号</translation>
@@ -3664,7 +3662,6 @@
 <translation id="5553089923092577885">证书政策映射</translation>
 <translation id="5554489410841842733">如果该扩展程序可以在当前网页上运行,则会显示此图标。</translation>
 <translation id="5554720593229208774">电子邮件证书授权中心</translation>
-<translation id="5554931805291741487">出纸盘快满了</translation>
 <translation id="5556459405103347317">重新加载</translation>
 <translation id="5558125320634132440">此网站已被屏蔽,因为它可能含有少儿不宜的内容</translation>
 <translation id="5558129378926964177">放大(&amp;I)</translation>
@@ -4453,7 +4450,7 @@
 <translation id="6545864417968258051">蓝牙扫描</translation>
 <translation id="6545867563032584178">已在 Mac 系统偏好设置中关闭麦克风</translation>
 <translation id="6547354035488017500">请至少释放 512 MB 的空间,否则您的设备将无响应。要释放空间,请将文件从设备存储空间中删除。</translation>
-<translation id="654871471440386944">开启光标浏览模式?</translation>
+<translation id="654871471440386944">要开启光标浏览模式吗?</translation>
 <translation id="6550675742724504774">选项</translation>
 <translation id="6551508934388063976">无法使用命令。请按 Ctrl+N 打开一个新窗口。</translation>
 <translation id="6551612971599078809">此网站正在使用 USB</translation>
@@ -4935,7 +4932,6 @@
 <translation id="7152478047064750137">此扩展程序无需任何特殊权限</translation>
 <translation id="7154130902455071009">将您的初始页更改为:<ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">相机或文件中的现有照片</translation>
-<translation id="7163766494674803047">打印机设备错误</translation>
 <translation id="7165320105431587207">无法配置网络</translation>
 <translation id="716640248772308851">“<ph name="EXTENSION" />”对于选中位置中的图片、视频及声音文件具有读取权限。</translation>
 <translation id="7167486101654761064">总是打开此类文件(&amp;A)</translation>
@@ -5783,7 +5779,7 @@
 <translation id="8198323535106903877">我们将为您安装这 <ph name="NUMBER_OF_APPS" /> 款应用</translation>
 <translation id="8199300056570174101">网络(服务)和设备属性</translation>
 <translation id="8200772114523450471">继续</translation>
-<translation id="8201717382574620700">选择<ph name="TOPIC_SOURCE" />影集</translation>
+<translation id="8201717382574620700">选择 <ph name="TOPIC_SOURCE" />影集</translation>
 <translation id="8202160505685531999">请重新输入密码,以便更新您的<ph name="DEVICE_TYPE" />资料。</translation>
 <translation id="8203732864715032075">向您发送通知,并默认记住这台计算机以便在您收到短信时向其发送通知。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
 <translation id="820568752112382238">最常访问的网站</translation>
@@ -6504,7 +6500,7 @@
 <translation id="9088234649737575428">系统已根据企业政策屏蔽 <ph name="PLUGIN_NAME" /></translation>
 <translation id="9088446193279799727">无法配置 Linux。请连接到互联网,然后重试。</translation>
 <translation id="9088917181875854783">请确认“<ph name="DEVICE_NAME" />”上显示有此密钥:</translation>
-<translation id="9093429538970210897">建议您备份文件,以防升级无法完成。启动升级会导致 Linux(Beta 版)关闭。请先保存打开的文件,然后再继续操作。</translation>
+<translation id="9093429538970210897">建议您备份文件,以防无法完成升级。启动升级会导致 Linux(Beta 版)关闭。请先保存打开的文件,然后再继续操作。</translation>
 <translation id="9094033019050270033">更新密码</translation>
 <translation id="9094038138851891550">用户名无效</translation>
 <translation id="9094982973264386462">移除</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index c04ff16..5c88cf3 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">執行 Powerwash</translation>
 <translation id="2340239562261172947">無法安全下載「<ph name="FILE_NAME" />」</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> 要求與下列藍牙裝置配對</translation>
-<translation id="2341476639346994688">打印機已停止運作</translation>
 <translation id="2342740338116612727">加咗書籤</translation>
 <translation id="2343747224442182863">將焦點移至此分頁</translation>
 <translation id="2344686470986284227">正在啟動虛擬機器控制器</translation>
@@ -3447,7 +3446,6 @@
 <translation id="5283677936944177147">糟糕!系統無法識別裝置型號或序號。</translation>
 <translation id="5284445933715251131">繼續下載</translation>
 <translation id="5285635972691565180">顯示屏 <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">輸出紙匣已滿</translation>
 <translation id="5286194356314741248">掃描中</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">您的帳戶</translation>
@@ -3668,7 +3666,6 @@
 <translation id="5553089923092577885">憑證政策對應關聯</translation>
 <translation id="5554489410841842733">當擴充功能適用於目前網頁時,即會顯示此圖示。</translation>
 <translation id="5554720593229208774">電郵憑證授權單位</translation>
-<translation id="5554931805291741487">輸出紙匣將滿</translation>
 <translation id="5556459405103347317">重新載入</translation>
 <translation id="5558125320634132440">由於此網站含有兒童不宜內容,因此已被封鎖</translation>
 <translation id="5558129378926964177">放大(&amp;I)</translation>
@@ -4939,7 +4936,6 @@
 <translation id="7152478047064750137">這個擴充程式不需要任何特殊權限</translation>
 <translation id="7154130902455071009">將您的起始網頁變更為:<ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">相機或檔案中的現有照片</translation>
-<translation id="7163766494674803047">打印機裝置發生錯誤</translation>
 <translation id="7165320105431587207">無法設定網絡</translation>
 <translation id="716640248772308851">「<ph name="EXTENSION" />」對於勾選位置中的圖片、影片和音效檔案具有讀取權限。</translation>
 <translation id="7167486101654761064">保持開啟這類檔案(&amp;A)</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 76aa133..3dfb0a7 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -1108,7 +1108,6 @@
 <translation id="2336381494582898602">Powerwash</translation>
 <translation id="2340239562261172947">無法安全下載「<ph name="FILE_NAME" />」</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> 要求配對</translation>
-<translation id="2341476639346994688">印表機已停止運作</translation>
 <translation id="2342740338116612727">已新增書籤</translation>
 <translation id="2343747224442182863">將焦點移至這個分頁</translation>
 <translation id="2344686470986284227">正在啟動虛擬機器控制器</translation>
@@ -3446,7 +3445,6 @@
 <translation id="5283677936944177147">糟糕!系統無法判別裝置型號或序號。</translation>
 <translation id="5284445933715251131">繼續下載</translation>
 <translation id="5285635972691565180">螢幕 <ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">輸出紙匣已滿</translation>
 <translation id="5286194356314741248">掃描中</translation>
 <translation id="5286252187236914003">L2TP/IPsec</translation>
 <translation id="5287425679749926365">你的帳戶</translation>
@@ -3667,7 +3665,6 @@
 <translation id="5553089923092577885">憑證政策對應關聯</translation>
 <translation id="5554489410841842733">當擴充功能適用於目前網頁時,即會顯示此圖示。</translation>
 <translation id="5554720593229208774">電子郵件憑證授權單位</translation>
-<translation id="5554931805291741487">輸出紙匣幾乎已滿</translation>
 <translation id="5556459405103347317">重新載入</translation>
 <translation id="5558125320634132440">這個網站可能包含兒童不宜的內容,因此遭到封鎖</translation>
 <translation id="5558129378926964177">放大(&amp;I)</translation>
@@ -4938,7 +4935,6 @@
 <translation id="7152478047064750137">這個擴充功能不需要特殊權限</translation>
 <translation id="7154130902455071009">將你的起始網頁變更為:<ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">現有的相機相片或圖庫相片</translation>
-<translation id="7163766494674803047">印表機發生裝置錯誤</translation>
 <translation id="7165320105431587207">無法設定網路</translation>
 <translation id="716640248772308851">「<ph name="EXTENSION" />」對於勾選位置中的圖片、影片和聲音檔具有讀取權限。</translation>
 <translation id="7167486101654761064">一律開啟這類檔案(&amp;A)</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 1807805..4533c5e 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -60,6 +60,7 @@
 <translation id="1067048845568873861">Idaliwe</translation>
 <translation id="1067291318998134776">I-Linux (Beta)</translation>
 <translation id="1067922213147265141">Amanye amasevisi e-Google</translation>
+<translation id="1068961867683064946">Dala I-akhawunti ye-Google yengane yakho</translation>
 <translation id="1070066693520972135">I-WEP</translation>
 <translation id="1070377999570795893">Olunye uhlelo kukhompuyutha yakho lungeze isandiso esingaguqula indlela i-Chrome esebenza ngayo.
 
@@ -272,6 +273,7 @@
 <translation id="1319983966058170660">Inkinobho yasemuva yekhasi elingezansi le-<ph name="SUBPAGE_TITLE" /></translation>
 <translation id="1322046419516468189">Buka futhi uphathe amaphasiwedi alondoloziwe ku-<ph name="SAVED_PASSWORDS_STORE" /> yakho</translation>
 <translation id="1324106254079708331">Vikela wonke ama-akhawunti e-Google omuntu siqu wanoma ubani asengcupheni yokuhlaselwa okuqondiwe</translation>
+<translation id="1325985428688410772">Engeza Isikhala</translation>
 <translation id="1326317727527857210">Ukuze uthole amathebhu akho kusukela kumanye amadivayisi akho, ngena ngemvume ku-Chrome.</translation>
 <translation id="1327074568633507428">Iphrinta kumafu wephrinta ye-Google</translation>
 <translation id="1327272175893960498">Amathikithi e-Kerberos</translation>
@@ -1080,6 +1082,7 @@
 <translation id="2307462900900812319">Lungiselela inethiwekhi</translation>
 <translation id="230927227160767054">Leli khasi lifuna ukufaka isibambi sesevisi.</translation>
 <translation id="2309620859903500144">Leli sayithi livinjelwe kusukela ekufinyeleleni kuzinzwa zakho zokunyakaza noma zokukhanya.</translation>
+<translation id="2314873619957287124">Setha imithetho yendawo yedijithali ukuze usize ingane yakho ifunde, idlale, futhi ihlole</translation>
 <translation id="2315414688463285945">Iphutha lokulungiselela amafayela e-Linux. Sicela uzame futhi.</translation>
 <translation id="2315587498123194634">Thumela isixhumanisi ku-<ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Cha, ngiyabonga</translation>
@@ -1091,6 +1094,7 @@
 <translation id="2322318151094136999">Buza uma isayithi lifuna ukufinyelela kuzimbobo ze-serial (kunconyiwe)</translation>
 <translation id="2323018538045954000">Amanethiwekhi e-Wi-Fi alondoloziwe</translation>
 <translation id="2325444234681128157">Khumbula iphasiwedi</translation>
+<translation id="2326160999284776503">Ngena ngemvume nge-Akhawunti ye-Google yengane yakho</translation>
 <translation id="2326188115274135041">Qinisekisa Iphinikhodi ukuze uvule ngokuzenzekalayo</translation>
 <translation id="2326931316514688470">&amp;Phinda ulayishe uhlelo lokusebenza</translation>
 <translation id="2327492829706409234">Nika amandla uhlelo lokusebenza</translation>
@@ -1106,7 +1110,6 @@
 <translation id="2336381494582898602">I-Powerwash</translation>
 <translation id="2340239562261172947">I-<ph name="FILE_NAME" /> ayikwazi ukulandwa ngokuvikelekile</translation>
 <translation id="2340263603246777781"><ph name="ORIGIN" /> ufuna ukubhangqa</translation>
-<translation id="2341476639346994688">Iphrinta imisiwe</translation>
 <translation id="2342740338116612727">Amabhukhimakhi angeziwe</translation>
 <translation id="2343747224442182863">Gxilisa le thebhu</translation>
 <translation id="2344686470986284227">Kuqalia isilawuli somshini obonakalayo</translation>
@@ -1150,6 +1153,7 @@
 <translation id="2384436799579181135">Kuvele iphutha. Sicela uhlole iphrinta yakho uphinde uzame futhi.</translation>
 <translation id="2387052489799050037">Iya Ekhaya</translation>
 <translation id="2387458720915042159">Uhlobo loxhumo lommeleli</translation>
+<translation id="2391082728065870591">Thumela Umbiko Wempendulo</translation>
 <translation id="2391419135980381625">Ifonti ejwayelekile</translation>
 <translation id="2392163307141705938">Ufinyelele umkhawulo wesikhathi sakho esisethelwe umzali se-<ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Yenza kusebenze</translation>
@@ -1280,6 +1284,7 @@
 <translation id="2537178555904266562">Iphutha ukuvumelanisa amaphasiwedi</translation>
 <translation id="2537395079978992874">I-<ph name="ORIGIN" /> ingabuka iphinde ilandele amafayela namafolda</translation>
 <translation id="2537927931785713436">Kuhlola isithombe somshini obonakalayo</translation>
+<translation id="2538084450874617176">Ubani osebenzisa le <ph name="DEVICE_TYPE" />?</translation>
 <translation id="2538361623464451692">Ukuvumelanisa kukhubaziwe</translation>
 <translation id="2540449034743108469">CIndezela okuthi "Qala" ukuze ulalele imisebenzi yezandiso</translation>
 <translation id="2541002089857695151">Thuthukisa ukusakaza kwesikrini esigcwele?</translation>
@@ -2740,6 +2745,7 @@
 <translation id="4364327530094270451">Ikhabe</translation>
 <translation id="4364567974334641491"><ph name="APP_NAME" /> yabelana ngewindi.</translation>
 <translation id="4364830672918311045">Bonisa izaziso</translation>
+<translation id="4368115171699243057">Sethela ingane yakho le-<ph name="DEVICE_TYPE" /></translation>
 <translation id="437004882363131692">Thola amathiphu e-<ph name="DEVICE_TYPE" />, okunikezwayo nezibuyekezo, kanye nokwabelana ngempendulo Zikhiphe ohlwini noma nini.</translation>
 <translation id="4370975561335139969">I-imeyili nephasiwedi oyifakile ayifani</translation>
 <translation id="4374831787438678295">Isifaki se-Linux</translation>
@@ -2900,6 +2906,7 @@
 <translation id="4565377596337484307">Fihla iphasiwedi</translation>
 <translation id="4565917129334815774">Gcina amalogu wesistimu</translation>
 <translation id="456717285308019641">Ulimi lekhasi ongalihumusha</translation>
+<translation id="4567533462991917415">Ungangeza abantu abengeziwe njalo ngemva kokusetha. Umuntu ngamunye angenza i-akhawunti yakhe ibe ngokwakhe futhi igcine idatha iyimfihlo.</translation>
 <translation id="4567772783389002344">Engeza igama</translation>
 <translation id="4568025708905928793">Ukhiye wokuqinisekisa ubunikazi uyacelwa</translation>
 <translation id="4568213207643490790">Uxolo, ama-akhawunti e-Google awavunyelwe kule divayisi.</translation>
@@ -2951,6 +2958,7 @@
 <translation id="4628762811416793313">Ukusetha kwesiqukathi se-Linux akuqedanga. Sicela uzame futhi.</translation>
 <translation id="4633003931260532286">Kudingeka isandiso esingu-"<ph name="IMPORT_NAME" />" ngenguqulo encane engu-"<ph name="IMPORT_VERSION" />", kodwa inguqulo kuphela engu-"<ph name="INSTALLED_VERSION" />" efakiwe</translation>
 <translation id="4633757335284074492">Yenza isipele ku-Google Drayivu. Buyisa kalula idatha noma ushintshe idivayisi noma kunini. Lesi sipele sihlanganisa nedatha yohlelo lokusebenza. Izipele zilayishwa ku-Google futhi zibethelwe kusetshenziswa iphasiwedi ye-Akhawunti ye-Google yengane yakho.</translation>
+<translation id="4634575639321169635">Setha le divayisi ngokuqondene nomsebenzi noma ukuzisebenzisela yona</translation>
 <translation id="4634771451598206121">Ngena ngemvume futhi...</translation>
 <translation id="4635072447747973225">Kipha i-Crostini</translation>
 <translation id="4635398712689569051">I-<ph name="PAGE_NAME" /> ayitholakali kubasebenzisi abayisihambeli.</translation>
@@ -3369,6 +3377,7 @@
 <translation id="5185386675596372454">Inguqulo entsha ye-"<ph name="EXTENSION_NAME" />" ikhutshaziwe ngoba idinga izimvume eziningi.</translation>
 <translation id="5185500136143151980">Ayikho i-Inthanethi</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
+<translation id="5190392396417374287">Imenyu yongakhetha kukho ye-<ph name="PROFILE_LOCAL_NAME" /></translation>
 <translation id="5190926251776387065">Yenza imbobo isebenze</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> ifuna ukulanda amafayela amaningi</translation>
 <translation id="5192062846343383368">Vula uhlelo lokusebenza lwe-Family Link ukuze ubone izilungiselelo zakho zokugada</translation>
@@ -3447,7 +3456,6 @@
 <translation id="5283677936944177147">Eshu!  Isistimu yehlulekile ukucacisa imodeli yedivayisi noma inombolo yomkhiqizo.</translation>
 <translation id="5284445933715251131">Qhubeka nokulanda</translation>
 <translation id="5285635972691565180">Bonisa i-<ph name="DISPLAY_ID" /></translation>
-<translation id="5286094561505658635">Indawo yokukhiphayo igcwele</translation>
 <translation id="5286194356314741248">Iyaskena</translation>
 <translation id="5286252187236914003">I-L2TP/IPsec</translation>
 <translation id="5287425679749926365">Ama-akhawunti wakho</translation>
@@ -3618,6 +3626,7 @@
 <translation id="5495597166260341369">Gcina isiboniso sivuliwe</translation>
 <translation id="5496587651328244253">Hlela</translation>
 <translation id="5497251278400702716">Leli fayela</translation>
+<translation id="5498967291577176373">Bhala ngokushesha ngeziphakamiso zasemgqeni zegama lakho, ikheli, noma inombolo yocingo</translation>
 <translation id="5499313591153584299">Leli fayela lingaba nobungozi kukhompyutha yakho.</translation>
 <translation id="5499453227627332024">Isithuthukisi siyatholakala ku-Linux Container yakho. Ungase futhi uyithuthukise ngemuva kwesikhathi kusuka kuhlelo lokusebenza Lamasethingi.</translation>
 <translation id="5500709606820808700">Ukuhlola kokuphepha kusebenze namuhla</translation>
@@ -3668,7 +3677,6 @@
 <translation id="5553089923092577885">Ukufaka kumephu kwenqubomgomo yesitifiketi</translation>
 <translation id="5554489410841842733">Lesi sithonjana sizobonakala uma isandiso singasebenza kukhasi lamanje.</translation>
 <translation id="5554720593229208774">Thumela i-imeyili abasemagunyeni bokunika isitifiketi</translation>
-<translation id="5554931805291741487">Indawo yokukhiphayo cishe seyigcwele</translation>
 <translation id="5556459405103347317">Phinda ulayishe</translation>
 <translation id="5558125320634132440">Leli sayithi livinjiwe ngoba lingaba nokuqukethwe kwabantu abadala</translation>
 <translation id="5558129378926964177">Sondeza isithombe</translation>
@@ -3776,6 +3784,7 @@
 <translation id="5689516760719285838">Indawo</translation>
 <translation id="56907980372820799">Xhumanisa idatha</translation>
 <translation id="5691511426247308406">Umndeni</translation>
+<translation id="5691581861107245578">Thola iziphakamiso ze-emoji ngokusekelwe kulokho okuthayipayo</translation>
 <translation id="5691772641933328258">Isigxivizo somunwe asaziwa</translation>
 <translation id="5692183275898619210">Ukuphrinta kuqediwe</translation>
 <translation id="569425414730375234">Iseshini yamanje ye-incognito: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" /></translation>
@@ -4135,6 +4144,7 @@
 <translation id="6124698108608891449">Leli sayithi lidinga izimvume eziningi.</translation>
 <translation id="6125479973208104919">Ngeshwa, kuzomele uphinde ungeze i-akhawunti yakho kule-<ph name="DEVICE_TYPE" />.</translation>
 <translation id="6129691635767514872">Idatha ekhethiwe isusiwe ku-Chrome namadivayisi avumelanisiwe. I-akhawunti yakho ye-Google ingahle ibe namanye amafomu omlando wokuphequlula njengosesho nomsebenzi kusuka kumasevisi e-Google ku-<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
+<translation id="6129839611163153407">Ingane yakho</translation>
 <translation id="6129938384427316298">Amazwana wesitifiketi se-Netscape</translation>
 <translation id="6129953537138746214">Isikhala</translation>
 <translation id="6130692320435119637">Engeza i-Wi-Fi</translation>
@@ -4175,6 +4185,7 @@
 <translation id="6178664161104547336">Khetha isitifiketi</translation>
 <translation id="6181431612547969857">Ukulanda kuvinjelwe</translation>
 <translation id="6185132558746749656">Indawo Yedivayisi</translation>
+<translation id="6195446518998936840">Ukuze usethe izilawuli zomzali, ingane yakho kufanele ibe ne-Akhawunti ye-Google ozoyisiza ngokuyiphatha. Ungasetha imikhawulo yesikhathi sesikrini, ugunyaze noma uvimbe amawebhusayithi, nokuningi ngohlelo lokusebenza lwe-Family Link.</translation>
 <translation id="6195693561221576702">Le divayisi ayikwazi ukusethwa kumodi yedemo engaxhunyiwe ku-inthanethi.</translation>
 <translation id="6196640612572343990">Vimba amakhukhi enkampani yangaphandle</translation>
 <translation id="6196854373336333322">Isandiso se-"<ph name="EXTENSION_NAME" />" sithathe ulawulo lwezilungiselelo zakho zommeleli, okusho ukuthi ingaguqula, iphule, noma ilalele kungafanele noma yini oyenza ku-inthanethi. Uma ungaqinisekile ngokuthi kungani lokhu kuguqulwa kwenzekile, kungenzeka ukuthi awukudingi.</translation>
@@ -4940,7 +4951,6 @@
 <translation id="7152478047064750137">Lesi sandiso asidingi izimvume ezibalulekile</translation>
 <translation id="7154130902455071009">Guqula ikhasi lakho lokuqala ulenze i-: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">Isithombe esikhona kusukela kukhamera noma ifayela</translation>
-<translation id="7163766494674803047">Idivayisi yephrinta inephutha</translation>
 <translation id="7165320105431587207">Yehlulekile ukulungiselela inethiwekhi</translation>
 <translation id="716640248772308851">I-"<ph name="EXTENSION" />" ingafunda izithombe, ividiyo, namafayela womsindo kuzindawo ezihloliwe.</translation>
 <translation id="7167486101654761064">&amp;Hlala uvule amafayela walolu hlobo</translation>
@@ -5929,6 +5939,7 @@
 <translation id="8372369524088641025">Ukhiye omubi we-WEP</translation>
 <translation id="8372477600026034341">Abasingathi abangeziwe</translation>
 <translation id="8373652277231415614">I-Crostini yabelane ngezinkombandlela</translation>
+<translation id="8376384591331888629">Kuhlanganise namakhukhi enkampani yangaphandle kule webhusayithi</translation>
 <translation id="8378714024927312812">Kuphethwe inhlangano yakho</translation>
 <translation id="8379878387931047019">Le divayisi ayisekeli uhlobo lokhiye wokuphepha ocelwe yile webhusayithi</translation>
 <translation id="8379991678458444070">Buyela lapha ngokushesha ngokwenza ibhukhimakhi leli thebhu</translation>
@@ -6012,6 +6023,7 @@
 <translation id="8481187309597259238">Qinisekisa imvume ye-USB</translation>
 <translation id="8483248364096924578">Ikheli lasesizindenise-inthanethi</translation>
 <translation id="8487678622945914333">Sondeza isithombe</translation>
+<translation id="8489156414266187072">Iziphakamiso zomuntu siqu ziboniswa ku-akhawunti yakho kuphela</translation>
 <translation id="8490896350101740396">Izinhlelo zokusebenza ezilandelayo ze-kiosk ze-"<ph name="UPDATED_APPS" />" zibuyekeziwe. Sicela uqalise idivayisi ukuze uqedelele inqubo yokubuyekeza.</translation>
 <translation id="8493236660459102203">Imakrofoni:</translation>
 <translation id="8496717697661868878">Qalisa le-Plugin</translation>
diff --git a/chrome/app/resources/google_chrome_strings_af.xtb b/chrome/app/resources/google_chrome_strings_af.xtb
index 581c38e..5ea0209 100644
--- a/chrome/app/resources/google_chrome_strings_af.xtb
+++ b/chrome/app/resources/google_chrome_strings_af.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Maak asseblief alle Google Chrome-vensters toe en probeer weer.</translation>
 <translation id="3865754807470779944">Chrome-weergawe <ph name="PRODUCT_VERSION" /> is geïnstalleeer</translation>
 <translation id="3873044882194371212">Maak skakel in 'n incognitovenster in Chrome oop</translation>
+<translation id="3879568094278837081">Hierdie spasie se blaaierdata sal van hierdie toestel af uitgevee word. Om die data te herwin, moet jy by Chrome aanmeld as</translation>
 <translation id="3889417619312448367">Deïnstalleer Google Chrome</translation>
 <translation id="4050175100176540509">Belangrike sekuriteitverbeterings en nuwe kenmerke is in die jongste weergawe beskikbaar.</translation>
 <translation id="4053720452172726777">Pasmaak en beheer Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb
index 9d265dd..c78372f 100644
--- a/chrome/app/resources/google_chrome_strings_am.xtb
+++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">እባክዎ ሁሉንም የChrome መስኮቶች ይዝጉና እንደገና ይሞክሩ።</translation>
 <translation id="3865754807470779944">የChrome ስሪት <ph name="PRODUCT_VERSION" /> ተጭኗል</translation>
 <translation id="3873044882194371212">አገናኝ በChrome ማንነት የ&amp;ማያሳውቅ መስኮት ውስጥ ክፈት</translation>
+<translation id="3879568094278837081">ይህ ክፍተት የአሰሳ ውሂብ ከዚህ መሣሪያ ይሰረዛል። ውሂቡን መልሰው ለማግኘት እንደ ሆነው ወደ Chrome ይግቡ</translation>
 <translation id="3889417619312448367">Google Chromeን አራግፍ</translation>
 <translation id="4050175100176540509">አስፈላጊ የደህንነት ማሻሻያዎች እና አዲስ ባህሪያት በቅርብ ጊዜው ስሪቱ ላይ ይገኛሉ።</translation>
 <translation id="4053720452172726777">Google Chromeን ያብጁ እና ይቆጣጠሩ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bs.xtb b/chrome/app/resources/google_chrome_strings_bs.xtb
index cf961a7..eadbf09 100644
--- a/chrome/app/resources/google_chrome_strings_bs.xtb
+++ b/chrome/app/resources/google_chrome_strings_bs.xtb
@@ -105,7 +105,7 @@
 <translation id="386202838227397562">Zatvorite sve prozore Google Chromea i pokušajte ponovo.</translation>
 <translation id="3865754807470779944">Verzija Chromea <ph name="PRODUCT_VERSION" /> je instalirana</translation>
 <translation id="3873044882194371212">Otvori link u ano&amp;nimnom prozoru Chromea</translation>
-<translation id="3879568094278837081">Podaci o pregledavanju ovog prostora izbrisat će se s ovog uređaja. Da biste vratili te podatke, prijavite se na Chrome kao</translation>
+<translation id="3879568094278837081">Podaci pregledanja u ovom prostoru će se izbrisati s ovog uređaja. Da oporavite podatke, prijavite se u Chrome kao</translation>
 <translation id="3889417619312448367">Deinstalirajte Google Chrome</translation>
 <translation id="4050175100176540509">U najnovijoj verziji su dostupna važna poboljšanja sigurnosti i nove funkcije.</translation>
 <translation id="4053720452172726777">Prilagodite i kontrolirajte Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb
index f49a556..80711d5 100644
--- a/chrome/app/resources/google_chrome_strings_ca.xtb
+++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -101,6 +101,7 @@
 <translation id="386202838227397562">Tanqueu totes les finestres de Google Chrome i torneu-ho a provar.</translation>
 <translation id="3865754807470779944">Està instal·lada la versió <ph name="PRODUCT_VERSION" /> de Chrome</translation>
 <translation id="3873044882194371212">Obre l'enllaç en una finestra d'incò&amp;gnit a Chrome</translation>
+<translation id="3879568094278837081">Les dades de navegació d'aquest espai se suprimiran d'aquest dispositiu. Per recuperar-les, inicia la sessió a Chrome com a</translation>
 <translation id="3889417619312448367">Desinstal·la Google Chrome</translation>
 <translation id="4050175100176540509">La versió més recent incorpora millores de seguretat i funcions noves importants.</translation>
 <translation id="4053720452172726777">Personalitza i controla Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb
index 1c397f28..1f4471fa 100644
--- a/chrome/app/resources/google_chrome_strings_da.xtb
+++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -101,6 +101,7 @@
 <translation id="386202838227397562">Luk alle Google Chrome-vinduer, og prøv igen.</translation>
 <translation id="3865754807470779944">Chrome version <ph name="PRODUCT_VERSION" /> er installeret</translation>
 <translation id="3873044882194371212">Åbn linket i et inko&amp;gnitovindue i Chrome</translation>
+<translation id="3879568094278837081">Browserdataene for dette space slettes fra denne enhed. Du kan gendanne dataene ved at logge ind på Chrome som</translation>
 <translation id="3889417619312448367">Afinstaller Google Chrome</translation>
 <translation id="4050175100176540509">Vigtige sikkerhedsforbedringer og nye funktioner er tilgængelige i den seneste version.</translation>
 <translation id="4053720452172726777">Tilpas Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
index 6c8e21f3..8c0652c 100644
--- a/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -101,6 +101,7 @@
 <translation id="386202838227397562">‏لطفاً همه پنجره‌های Google Chrome را ببندید و دوباره امتحان کنید.</translation>
 <translation id="3865754807470779944">‏Chrome نسخه <ph name="PRODUCT_VERSION" /> نصب شده است</translation>
 <translation id="3873044882194371212">‏باز کردن پیوند در پنجره &amp;ناشناس Chrome</translation>
+<translation id="3879568094278837081">‏داده‌های محصول مرور این فضا از این دستگاه حذف می‌شود. برای بازیابی داده‌ها، با حساب زیر به سیستم Chrome وارد شوید:</translation>
 <translation id="3889417619312448367">‏حذف نصب Google Chrome</translation>
 <translation id="4050175100176540509">بهبودهای امنیتی مهم و ویژگی‌های جدید در جدیدترین نسخه در دسترس است.</translation>
 <translation id="4053720452172726777">‏‫سفارشی کردن و کنترل Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gl.xtb b/chrome/app/resources/google_chrome_strings_gl.xtb
index bb0d146..f89b8dd 100644
--- a/chrome/app/resources/google_chrome_strings_gl.xtb
+++ b/chrome/app/resources/google_chrome_strings_gl.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Pecha todas as ventás de Google Chrome e téntao de novo.</translation>
 <translation id="3865754807470779944">Tes instalada a versión <ph name="PRODUCT_VERSION" /> de Chrome</translation>
 <translation id="3873044882194371212">Abrir ligazón nunha ventá do modo de incó&amp;gnito de Chrome</translation>
+<translation id="3879568094278837081">Os datos de navegación deste espazo eliminaranse deste dispositivo. Para recuperalos, inicia sesión en Chrome como</translation>
 <translation id="3889417619312448367">Desinstalar Google Chrome</translation>
 <translation id="4050175100176540509">A última versión conta con melloras de seguranza importantes e novas funcións.</translation>
 <translation id="4053720452172726777">Personaliza e controla Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index 05c7275..ea9346a 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -101,6 +101,7 @@
 <translation id="386202838227397562">Zárjon be minden Google Chrome-ablakot, és próbálkozzon újra.</translation>
 <translation id="3865754807470779944">A Chrome <ph name="PRODUCT_VERSION" /> verziója telepítve van</translation>
 <translation id="3873044882194371212">Link megnyitása Chrome-inko&amp;gnitóablakban</translation>
+<translation id="3879568094278837081">Az ehhez a profilhoz tartozó böngészési adatok törlődnek majd erről az eszközről. Az adatok visszaállításához jelentkezzen be a Chrome-ba a következő felhasználóként:</translation>
 <translation id="3889417619312448367">A Google Chrome eltávolítása</translation>
 <translation id="4050175100176540509">A legújabb verzióban fontos biztonsági fejlesztések és új funkciók érhetők el.</translation>
 <translation id="4053720452172726777">A Google Chrome személyre szabása és beállításai</translation>
diff --git a/chrome/app/resources/google_chrome_strings_is.xtb b/chrome/app/resources/google_chrome_strings_is.xtb
index d4af01e..9391402 100644
--- a/chrome/app/resources/google_chrome_strings_is.xtb
+++ b/chrome/app/resources/google_chrome_strings_is.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Lokaðu öllum Google Chrome gluggum og reyndu aftur.</translation>
 <translation id="3865754807470779944">Chrome útgáfa <ph name="PRODUCT_VERSION" /> er uppsett</translation>
 <translation id="3873044882194371212">Opna tengil í h&amp;uliðsglugga í Chrome</translation>
+<translation id="3879568094278837081">Vefskoðunargögnum þessa svæðis verður eytt úr tækinu. Til að endurheimta gögn skaltu skrá þig inn í Chrome sem</translation>
 <translation id="3889417619312448367">Fjarlægja Google Chrome</translation>
 <translation id="4050175100176540509">Mikilvægar öryggislagfæringar og nýir eiginleikar eru í boði í nýjustu útgáfunni.</translation>
 <translation id="4053720452172726777">Sérsníða og stjórna Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index e130fa1..5577cf9 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -103,6 +103,7 @@
 <translation id="386202838227397562">ದಯವಿಟ್ಟು ಎಲ್ಲಾ Google Chrome ವಿಂಡೋಗಳನ್ನು ಮುಚ್ಚಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="3865754807470779944">Chrome ಆವೃತ್ತಿ <ph name="PRODUCT_VERSION" /> ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="3873044882194371212">ಲಿಂಕ್‌ ಅನ್ನು Chrome ಅ&amp;ದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
+<translation id="3879568094278837081">ಈ ಸ್ಥಳದ ಬ್ರೌಸಿಂಗ್‌ ಡೇಟಾವನ್ನು ಈ ಸಾಧನದಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ. ಡೇಟಾವನ್ನು ಮರಳಿ ಪಡೆದುಕೊಳ್ಳಲು, Chrome ನಲ್ಲಿ ಇದರಂತೆ ಸೈನ್-ಇನ್ ಮಾಡಿ</translation>
 <translation id="3889417619312448367">Google Chrome ಅನ್ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="4050175100176540509">ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯಲ್ಲಿ ಪ್ರಮುಖವಾದ ಭದ್ರತಾ ಸುಧಾರಣೆಗಳು ಮತ್ತು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿದೆ.</translation>
 <translation id="4053720452172726777">Google Chrome ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index 986cdd8..e6475a9 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Uždarykite visus „Google Chrome“ langus ir bandykite dar kartą.</translation>
 <translation id="3865754807470779944">„Chrome“ versija <ph name="PRODUCT_VERSION" /> įdiegta</translation>
 <translation id="3873044882194371212">Atidaryti nuorodą „Chrome“ inko&amp;gnito lange</translation>
+<translation id="3879568094278837081">Šios srities naršymo duomenys bus ištrinti iš šio įrenginio. Jei norite atkurti duomenis, prisijunkite prie „Chrome“ kaip</translation>
 <translation id="3889417619312448367">Išdiegti „Google Chrome“</translation>
 <translation id="4050175100176540509">Naujausios versijos programoje įdiegti svarbūs saugos patobulinimai ir pasiekiamos naujos funkcijos.</translation>
 <translation id="4053720452172726777">Tinkinkite ir valdykite „Google Chrome“</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb
index eb00d7a..a42ea47 100644
--- a/chrome/app/resources/google_chrome_strings_lv.xtb
+++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -103,6 +103,7 @@
 <translation id="386202838227397562">Lūdzu, aizveriet visus Google Chrome logus un mēģiniet vēlreiz.</translation>
 <translation id="3865754807470779944">Ir instalēta Chrome versija <ph name="PRODUCT_VERSION" /></translation>
 <translation id="3873044882194371212">Atvērt saiti Chrome inko&amp;gnito režīma logā</translation>
+<translation id="3879568094278837081">Šīs darbvietas pārlūkošanas dati tiks izdzēsti no šīs ierīces. Lai atkoptu datus, pierakstieties pārlūkprogrammā Chrome kā lietotājs</translation>
 <translation id="3889417619312448367">Atinstalēt Google Chrome</translation>
 <translation id="4050175100176540509">Jaunākajā versijā ir pieejami svarīgi drošības uzlabojumi un jaunas funkcijas.</translation>
 <translation id="4053720452172726777">Pielāgot un kontrolēt Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mk.xtb b/chrome/app/resources/google_chrome_strings_mk.xtb
index 001a6fe..c70e907 100644
--- a/chrome/app/resources/google_chrome_strings_mk.xtb
+++ b/chrome/app/resources/google_chrome_strings_mk.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Затворете ги сите прозорци на Google Chrome и пробајте повторно.</translation>
 <translation id="3865754807470779944">Инсталирана е верзијата <ph name="PRODUCT_VERSION" /> на Chrome</translation>
 <translation id="3873044882194371212">Отвори го линкот во инко&amp;гнито прозорец на Chrome</translation>
+<translation id="3879568094278837081">Податоците од прелистувањето на овој простор ќе се избришат од уредов. За да ги вратите податоците, најавете се на Chrome како</translation>
 <translation id="3889417619312448367">Деинсталирај го Google Chrome</translation>
 <translation id="4050175100176540509">Во најновата верзија се достапни значајни безбедносни подобрувања и нови карактеристики.</translation>
 <translation id="4053720452172726777">Приспособи го и контролирај го Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index f6fa892..8f3465a 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">ദയവായി എല്ലാ Google Chrome വിന്‍‌ഡോകളും അടച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="3865754807470779944">Chrome പതിപ്പ് <ph name="PRODUCT_VERSION" /> ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നു</translation>
 <translation id="3873044882194371212">Chrome അദൃശ്യ വിൻഡോയിൽ ലിങ്ക് തുറക്കുക</translation>
+<translation id="3879568094278837081">ഈ സ്‌പെയ്‌സിന്റെ ബ്രൗസിംഗ് ഡാറ്റ ഈ ഉപകരണത്തിൽ നിന്ന് ഇല്ലാതാക്കപ്പെടും. ഡാറ്റ വീണ്ടെടുക്കാൻ, ഇനിപ്പറയുന്ന ഇമെയിൽ ഉപയോഗിച്ച് Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="3889417619312448367">Google Chrome അണ്‍‌ഇന്‍സ്റ്റാള്‍ ചെയ്യുക</translation>
 <translation id="4050175100176540509">ഏറ്റവും പുതിയ പതിപ്പിൽ പ്രധാനപ്പെട്ട സുരക്ഷാ മെച്ചപ്പെടുത്തലുകളും പുതിയ ഫീച്ചറുകളും ലഭ്യമാണ്.</translation>
 <translation id="4053720452172726777">Google Chrome ഇഷ്‌ടാനുസൃതമാക്കുക, നിയന്ത്രിക്കുക</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index 57dac363..4293eb92 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -104,6 +104,7 @@
 <translation id="386202838227397562">कृपया सर्व Google Chrome विंडो बंद करा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="3865754807470779944">Chrome आवृत्ती <ph name="PRODUCT_VERSION" /> इंस्टॉल केली आहे</translation>
 <translation id="3873044882194371212">लिंक Chrome गुप्त विंडोमध्ये उघडा</translation>
+<translation id="3879568094278837081">या स्पेसचा ब्राउझिंग डेटा या डिव्हाइसवरून हटवला जाईल. डेटा रीकव्हर करण्यासाठी, Chrome वर हे म्हणून साइन इन करा</translation>
 <translation id="3889417619312448367">Google Chrome अनइंस्टॉल करा</translation>
 <translation id="4050175100176540509">नवीनतम आवृत्तीमध्‍ये महत्त्वाच्या सुरक्षितता सुधारणा आणि नवीन वैशिष्ट्ये उपलब्‍ध आहेत.</translation>
 <translation id="4053720452172726777">Google Chrome कस्टमाइझ करा आणि नियंत्रित करा</translation>
diff --git a/chrome/app/resources/google_chrome_strings_my.xtb b/chrome/app/resources/google_chrome_strings_my.xtb
index f7ff794..c2f6a87 100644
--- a/chrome/app/resources/google_chrome_strings_my.xtb
+++ b/chrome/app/resources/google_chrome_strings_my.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">ကျေးဇူးပြုပြီး Google Chrome ဝင်ဒိုးများကို ပိတ်ပြီ ထပ်စမ်းပါ။</translation>
 <translation id="3865754807470779944">Chrome ဗားရှင်း <ph name="PRODUCT_VERSION" /> ကို ထည့်သွင်းလိုက်သည်</translation>
 <translation id="3873044882194371212">Chrome ရုပ်ဖျက်ဝင်းဒိုးတွင် လင့်ခ်ကို ဖွင့်ရန်</translation>
+<translation id="3879568094278837081">ဤ space ၏ ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာကို ဤစက်မှ ဖျက်လိုက်မည်။ ဒေတာကို ပြန်လည်ရယူရန် အဖြစ် Chrome သို့ လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="3889417619312448367">Google Chrome ကို ဖြုတ်ရန်</translation>
 <translation id="4050175100176540509">အရေးကြီးလုံခြုံရေးဆိုင်ရာဖွံ့ဖြိုးတိုးတက်မှုများနှင့် အင်္ဂါရပ် အသစ်များအား နောက်ဆုံးပေါ် ဗားရှင်းဖြင့် ရရှိနိုင်ပါသည်။</translation>
 <translation id="4053720452172726777">Google Chrome ကို စိတ်ကြိုက် ပြုပြင်ရန် နှင့် ထိန်းချုပ်ရန်</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index 4c823c5..49f1c3f 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Sluit alle Google Chrome-vensters en probeer het opnieuw.</translation>
 <translation id="3865754807470779944">Chrome-versie <ph name="PRODUCT_VERSION" /> is geïnstalleerd</translation>
 <translation id="3873044882194371212">Link openen in een Chrome-inco&amp;gnitovenster</translation>
+<translation id="3879568094278837081">De browsergegevens van deze ruimte worden verwijderd van dit apparaat. Als je de gegevens wilt herstellen, log je in bij Chrome als</translation>
 <translation id="3889417619312448367">Google Chrome verwijderen</translation>
 <translation id="4050175100176540509">Er zijn belangrijke beveiligingsverbeteringen en nieuwe functies beschikbaar in de nieuwste versie.</translation>
 <translation id="4053720452172726777">Google Chrome aanpassen en beheren</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb
index e9c1546..640d450 100644
--- a/chrome/app/resources/google_chrome_strings_pa.xtb
+++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">ਕਿਰਪਾ ਕਰਕੇ ਸਾਰੀਆਂ Google Chrome ਵਿੰਡੋਆਂ ਨੂੰ ਬੰਦ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="3865754807470779944">Chrome ਵਰਜਨ <ph name="PRODUCT_VERSION" /> ਸਥਾਪਤ ਹੈ</translation>
 <translation id="3873044882194371212">Chrome ਇਨ&amp;ਕੋਗਨਿਟੋ ਵਿੰਡੋ ਵਿੱਚ ਲਿੰਕ ਖੋਲ੍ਹੋ</translation>
+<translation id="3879568094278837081">ਇਸ ਜਗ੍ਹਾ ਦਾ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਡਾਟੇ ਨੂੰ ਮੁੜ-ਹਾਸਲ ਕਰਨ ਲਈ, ਇਸ ਵਜੋਂ Chrome ਵਿੱਚ ਸਾਈਨ ਇਨ ਕਰੋ</translation>
 <translation id="3889417619312448367">Google Chrome ਨੂੰ ਅਣਸਥਾਪਤ ਕਰੋ</translation>
 <translation id="4050175100176540509">ਮਹੱਤਵਪੂਰਣ ਸੁਰੱਖਿਆ ਸੁਧਾਰ ਅਤੇ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਵੇਂ ਰੂਪ ਵਿੱਚ ਉਪਲਬਧ ਹਨ।</translation>
 <translation id="4053720452172726777">Google Chrome ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰਕੇ ਕੰਟਰੋਲ ਕਰੋ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
index b7e7c6e..340118a 100644
--- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -101,6 +101,7 @@
 <translation id="386202838227397562">Feche todas as janelas do Google Chrome e tente novamente.</translation>
 <translation id="3865754807470779944">O Chrome versão <ph name="PRODUCT_VERSION" /> está instalado</translation>
 <translation id="3873044882194371212">Abrir link na janela &amp;sem rastros do Chrome</translation>
+<translation id="3879568094278837081">Os dados de navegação desse espaço serão excluídos do dispositivo. Para recuperá-los, faça login no Chrome como</translation>
 <translation id="3889417619312448367">Desinstalar o Google Chrome</translation>
 <translation id="4050175100176540509">Melhorias de segurança importantes e novos recursos estão disponíveis na versão mais recente.</translation>
 <translation id="4053720452172726777">Personalizar e controlar o Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
index 2a21042..73c03aa 100644
--- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -101,6 +101,7 @@
 <translation id="386202838227397562">Feche todas as janelas do Google Chrome e tente novamente.</translation>
 <translation id="3865754807470779944">A versão <ph name="PRODUCT_VERSION" /> do Chrome está instalada.</translation>
 <translation id="3873044882194371212">Abrir link numa janela de nave&amp;gação anónima do Chrome</translation>
+<translation id="3879568094278837081">Os dados de navegação deste espaço serão eliminados deste dispositivo. Para recuperar os dados, inicie sessão no Chrome como</translation>
 <translation id="3889417619312448367">Desinstalar o Google Chrome</translation>
 <translation id="4050175100176540509">Estão disponíveis na versão mais recente melhorias de segurança importantes e novas funcionalidades.</translation>
 <translation id="4053720452172726777">Personalizar e controlar o Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb
index fca179d..8bf232f 100644
--- a/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Tafadhali funga madirisha yote ya Google Chrome na ujaribu tena.</translation>
 <translation id="3865754807470779944">Umesakinisha toleo la Chrome la <ph name="PRODUCT_VERSION" /></translation>
 <translation id="3873044882194371212">Fungua kiungo katika dirisha fiche la Chrome</translation>
+<translation id="3879568094278837081">Data ya kuvinjari ya Chrome Space hii itafutwa kwenye kifaa hiki. Ili urejeshe data, ingia katika Chrome ukitumia</translation>
 <translation id="3889417619312448367">Ondoa Google Chrome</translation>
 <translation id="4050175100176540509">Maboresho muhimu ya usalama na vipengele vipya vinapatikana katika toleo jipya.</translation>
 <translation id="4053720452172726777">Dhibiti  na ugeuze Google Chrome ikufae</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb
index 923f16c..d6c5279e 100644
--- a/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -101,6 +101,7 @@
 <translation id="386202838227397562">Закрийте всі вікна Google Chrome і повторіть спробу.</translation>
 <translation id="3865754807470779944">Chrome версії <ph name="PRODUCT_VERSION" /> встановлено</translation>
 <translation id="3873044882194371212">Відкрити посилання в аноні&amp;мному вікні Chrome</translation>
+<translation id="3879568094278837081">Дані веб-перегляду буде видалено з цього пристрою. Щоб відновити їх, увійдіть в обліковий запис Chrome як</translation>
 <translation id="3889417619312448367">Видалити Google Chrome</translation>
 <translation id="4050175100176540509">В останній версії покращено безпеку та додано нові функції.</translation>
 <translation id="4053720452172726777">Налаштування та керування Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uz.xtb b/chrome/app/resources/google_chrome_strings_uz.xtb
index 2f5e19c..5aeaebb 100644
--- a/chrome/app/resources/google_chrome_strings_uz.xtb
+++ b/chrome/app/resources/google_chrome_strings_uz.xtb
@@ -102,6 +102,7 @@
 <translation id="386202838227397562">Barcha Google Chrome oynalarini yoping va qaytadan urinib ko‘ring.</translation>
 <translation id="3865754807470779944">Chrome <ph name="PRODUCT_VERSION" /> versiyasi oʻrnatilgan</translation>
 <translation id="3873044882194371212">Havolani &amp;inkognito oynada ochish</translation>
+<translation id="3879568094278837081">Bu foydalanuvchi brauzerining tarixi ushbu qurilmadan butunlay tozalanadi. Axborotlarni tiklash uchun brauzerga quyidagi foydalanuvchi sifatida kiring:</translation>
 <translation id="3889417619312448367">Google Chrome’ni o‘chirib tashlash</translation>
 <translation id="4050175100176540509">So‘nggi versiyada himoya devori yaxshilandi va yangi funksiyalar qo‘shildi.</translation>
 <translation id="4053720452172726777">Google Chrome’ni sozlash va boshqarish</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zu.xtb b/chrome/app/resources/google_chrome_strings_zu.xtb
index 14e8ade..6531cc693 100644
--- a/chrome/app/resources/google_chrome_strings_zu.xtb
+++ b/chrome/app/resources/google_chrome_strings_zu.xtb
@@ -105,6 +105,7 @@
 <translation id="386202838227397562">Sicela uvale wonke amawindi we-Google Chrome bese uzama futhi.</translation>
 <translation id="3865754807470779944">Inguqulo ye-Chrome i-<ph name="PRODUCT_VERSION" /> ifakiwe</translation>
 <translation id="3873044882194371212">Vula isixhumanisi kuwindi le-Chrome inco&amp;gnito</translation>
+<translation id="3879568094278837081">Le datha yopheqululo yalesi sikhala izosuswa kule divayisi. Ukuze ubuyise idatha, ngena ngemvume ku-Chrome njengo-</translation>
 <translation id="3889417619312448367">Khipha i-Google Chrome</translation>
 <translation id="4050175100176540509">Ukuthuthukiswa kokuphepha okubalulekile nezici ezintsha kuyathokala kunguqulo yakamuva.</translation>
 <translation id="4053720452172726777">Yenza ngokwezifiso futhi lawula i-Google Chrome</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 81948a7..34f8f27 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1160,8 +1160,16 @@
     "policy/homepage_location_policy_handler.h",
     "policy/javascript_policy_handler.cc",
     "policy/javascript_policy_handler.h",
+    "policy/messaging_layer/encryption/decryption.cc",
+    "policy/messaging_layer/encryption/decryption.h",
+    "policy/messaging_layer/encryption/encryption.cc",
+    "policy/messaging_layer/encryption/encryption.h",
     "policy/messaging_layer/encryption/encryption_module.cc",
     "policy/messaging_layer/encryption/encryption_module.h",
+    "policy/messaging_layer/encryption/fake_decryption.cc",
+    "policy/messaging_layer/encryption/fake_decryption.h",
+    "policy/messaging_layer/encryption/fake_encryption.cc",
+    "policy/messaging_layer/encryption/fake_encryption.h",
     "policy/messaging_layer/public/report_client.cc",
     "policy/messaging_layer/public/report_client.h",
     "policy/messaging_layer/public/report_queue.cc",
@@ -1178,6 +1186,8 @@
     "policy/messaging_layer/upload/app_install_report_handler.h",
     "policy/messaging_layer/upload/dm_server_upload_service.cc",
     "policy/messaging_layer/upload/dm_server_upload_service.h",
+    "policy/messaging_layer/upload/upload_client.cc",
+    "policy/messaging_layer/upload/upload_client.h",
     "policy/messaging_layer/util/backoff_settings.cc",
     "policy/messaging_layer/util/backoff_settings.h",
     "policy/messaging_layer/util/shared_queue.h",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index cd5fb6cf..e1a3522c 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1831,16 +1831,6 @@
 #endif  // OS_ANDROID
 
 const FeatureEntry::FeatureVariation
-    kOmniboxOnDeviceHeadSuggestIncognitoExperimentVariations[] = {{
-        "relevance-1000",
-        (FeatureEntry::FeatureParam[]){
-            {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput,
-             "1000"}},
-        1,
-        nullptr,
-    }};
-
-const FeatureEntry::FeatureVariation
     kOmniboxOnDeviceHeadSuggestNonIncognitoExperimentVariations[] = {
         {
             "relevance-1000",
@@ -3689,11 +3679,7 @@
     {"omnibox-on-device-head-suggestions-incognito",
      flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoName,
      flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoDescription,
-     kOsAll,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(
-         omnibox::kOnDeviceHeadProviderIncognito,
-         kOmniboxOnDeviceHeadSuggestIncognitoExperimentVariations,
-         "OmniboxOnDeviceHeadSuggestIncognito")},
+     kOsAll, FEATURE_VALUE_TYPE(omnibox::kOnDeviceHeadProviderIncognito)},
 
     {"omnibox-on-device-head-suggestions-non-incognito",
      flag_descriptions::kOmniboxOnDeviceHeadSuggestionsNonIncognitoName,
@@ -6281,6 +6267,14 @@
      FEATURE_VALUE_TYPE(features::kTabSearch)},
 #endif  // BUILDFLAG(ENABLE_TAB_SEARCH)
 
+#if defined(OS_ANDROID)
+    {"cpu-affinity-restrict-to-little-cores",
+     flag_descriptions::kCpuAffinityRestrictToLittleCoresName,
+     flag_descriptions::kCpuAffinityRestrictToLittleCoresDescription,
+     kOsAndroid,
+     FEATURE_VALUE_TYPE(features::kCpuAffinityRestrictToLittleCores)},
+#endif  // OS_ANDROID
+
     // NOTE: Adding a new flag requires adding a corresponding entry to enum
     // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
     // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/android/omnibox/autocomplete_controller_android.cc b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
index c6956d03..4a03f01 100644
--- a/chrome/browser/android/omnibox/autocomplete_controller_android.cc
+++ b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
@@ -478,8 +478,9 @@
         env, j_autocomplete_result, j_omnibox_suggestion);
   }
 
-  PopulateOmniboxGroupHeaders(env, j_autocomplete_result,
-                              autocomplete_result.headers_map());
+  PopulateOmniboxGroupsDetails(env, j_autocomplete_result,
+                               autocomplete_result.headers_map(),
+                               autocomplete_result.hidden_group_ids());
 
   // Get the inline-autocomplete text.
   base::string16 inline_autocomplete_text;
@@ -634,14 +635,18 @@
       match.has_tab_match);
 }
 
-void AutocompleteControllerAndroid::PopulateOmniboxGroupHeaders(
+void AutocompleteControllerAndroid::PopulateOmniboxGroupsDetails(
     JNIEnv* env,
     ScopedJavaLocalRef<jobject> j_autocomplete_result,
-    const SearchSuggestionParser::HeadersMap& native_header_map) {
+    const SearchSuggestionParser::HeadersMap& native_header_map,
+    const std::vector<int>& hidden_group_ids) {
+  base::flat_set<int> hidden_group_ids_set = hidden_group_ids;
+
   for (const auto& group_header : native_header_map) {
-    Java_AutocompleteController_addOmniboxGroupHeaderToResult(
+    Java_AutocompleteController_addOmniboxGroupDetailsToResult(
         env, j_autocomplete_result, group_header.first,
-        ConvertUTF16ToJavaString(env, group_header.second));
+        ConvertUTF16ToJavaString(env, group_header.second),
+        hidden_group_ids_set.contains(group_header.first));
   }
 }
 
diff --git a/chrome/browser/android/omnibox/autocomplete_controller_android.h b/chrome/browser/android/omnibox/autocomplete_controller_android.h
index c89568d1..3fc0388 100644
--- a/chrome/browser/android/omnibox/autocomplete_controller_android.h
+++ b/chrome/browser/android/omnibox/autocomplete_controller_android.h
@@ -134,11 +134,13 @@
   base::android::ScopedJavaLocalRef<jobject> BuildOmniboxSuggestion(
       JNIEnv* env, const AutocompleteMatch& match);
 
-  // Construct Java Group Headers map from supplied HeadersMap.
-  void PopulateOmniboxGroupHeaders(
+  // Construct Java GroupDetails map from supplied HeadersMap and expanded
+  // state.
+  void PopulateOmniboxGroupsDetails(
       JNIEnv* env,
       base::android::ScopedJavaLocalRef<jobject> j_autocomplete_result,
-      const SearchSuggestionParser::HeadersMap& header_map);
+      const SearchSuggestionParser::HeadersMap& header_map,
+      const std::vector<int>& hidden_group_ids);
 
   // A helper method for fetching the top synchronous autocomplete result.
   // The |prevent_inline_autocomplete| flag is passed to the AutocompleteInput
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 024681d..37f56d2 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -862,6 +862,12 @@
     "child_accounts/event_based_status_reporting_service.h",
     "child_accounts/event_based_status_reporting_service_factory.cc",
     "child_accounts/event_based_status_reporting_service_factory.h",
+    "child_accounts/family_user_metrics_service.cc",
+    "child_accounts/family_user_metrics_service.h",
+    "child_accounts/family_user_metrics_service_factory.cc",
+    "child_accounts/family_user_metrics_service_factory.h",
+    "child_accounts/family_user_session_metrics.cc",
+    "child_accounts/family_user_session_metrics.h",
     "child_accounts/parent_access_code/authenticator.cc",
     "child_accounts/parent_access_code/authenticator.h",
     "child_accounts/parent_access_code/config_source.cc",
@@ -927,8 +933,8 @@
     "crosapi/browser_util.h",
     "crosapi/screen_manager_crosapi.cc",
     "crosapi/screen_manager_crosapi.h",
-    "crosapi/select_file_crosapi.cc",
-    "crosapi/select_file_crosapi.h",
+    "crosapi/select_file_ash.cc",
+    "crosapi/select_file_ash.h",
     "crostini/ansible/ansible_management_service.cc",
     "crostini/ansible/ansible_management_service.h",
     "crostini/ansible/ansible_management_service_factory.cc",
@@ -3052,6 +3058,7 @@
     "certificate_provider/certificate_provider_service_unittest.cc",
     "child_accounts/child_user_service_unittest.cc",
     "child_accounts/event_based_status_reporting_service_unittest.cc",
+    "child_accounts/family_user_session_metrics_unittest.cc",
     "child_accounts/parent_access_code/authenticator_unittest.cc",
     "child_accounts/parent_access_code/parent_access_test_utils.cc",
     "child_accounts/parent_access_code/parent_access_test_utils.h",
diff --git a/chrome/browser/chromeos/child_accounts/family_user_metrics_service.cc b/chrome/browser/chromeos/child_accounts/family_user_metrics_service.cc
new file mode 100644
index 0000000..c30de18
--- /dev/null
+++ b/chrome/browser/chromeos/child_accounts/family_user_metrics_service.cc
@@ -0,0 +1,26 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/child_accounts/family_user_metrics_service.h"
+
+#include "chrome/browser/chromeos/child_accounts/family_user_session_metrics.h"
+#include "chrome/browser/profiles/profile.h"
+#include "content/public/browser/browser_context.h"
+
+namespace chromeos {
+
+FamilyUserMetricsService::FamilyUserMetricsService(
+    content::BrowserContext* context) {
+  PrefService* pref_service = Profile::FromBrowserContext(context)->GetPrefs();
+  family_user_session_metrics_ =
+      std::make_unique<FamilyUserSessionMetrics>(pref_service);
+}
+
+FamilyUserMetricsService::~FamilyUserMetricsService() = default;
+
+void FamilyUserMetricsService::Shutdown() {
+  family_user_session_metrics_.reset();
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/child_accounts/family_user_metrics_service.h b/chrome/browser/chromeos/child_accounts/family_user_metrics_service.h
new file mode 100644
index 0000000..1bfe5c5
--- /dev/null
+++ b/chrome/browser/chromeos/child_accounts/family_user_metrics_service.h
@@ -0,0 +1,38 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_METRICS_SERVICE_H_
+#define CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_METRICS_SERVICE_H_
+
+#include <memory>
+
+#include "components/keyed_service/core/keyed_service.h"
+
+namespace content {
+class BrowserContext;
+}
+
+namespace chromeos {
+
+class FamilyUserSessionMetrics;
+
+// Service to initialize and control metric recorders of family users on Chrome
+// OS.
+class FamilyUserMetricsService : public KeyedService {
+ public:
+  explicit FamilyUserMetricsService(content::BrowserContext* context);
+  FamilyUserMetricsService(const FamilyUserMetricsService&) = delete;
+  FamilyUserMetricsService& operator=(const FamilyUserMetricsService&) = delete;
+  ~FamilyUserMetricsService() override;
+
+  // KeyedService:
+  void Shutdown() override;
+
+ private:
+  std::unique_ptr<FamilyUserSessionMetrics> family_user_session_metrics_;
+};
+
+}  // namespace chromeos
+
+#endif  // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_METRICS_SERVICE_H_
diff --git a/chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.cc b/chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.cc
new file mode 100644
index 0000000..251edad
--- /dev/null
+++ b/chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.cc
@@ -0,0 +1,39 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.h"
+
+#include "chrome/browser/chromeos/child_accounts/family_user_metrics_service.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
+#include "content/public/browser/browser_context.h"
+
+namespace chromeos {
+
+// static
+FamilyUserMetricsService* FamilyUserMetricsServiceFactory::GetForBrowserContext(
+    content::BrowserContext* context) {
+  return static_cast<FamilyUserMetricsService*>(
+      GetInstance()->GetServiceForBrowserContext(context, /*create=*/true));
+}
+
+// static
+FamilyUserMetricsServiceFactory*
+FamilyUserMetricsServiceFactory::GetInstance() {
+  static base::NoDestructor<FamilyUserMetricsServiceFactory> factory;
+  return factory.get();
+}
+
+FamilyUserMetricsServiceFactory::FamilyUserMetricsServiceFactory()
+    : BrowserContextKeyedServiceFactory(
+          "FamilyUserMetricsServiceFactory",
+          BrowserContextDependencyManager::GetInstance()) {}
+
+FamilyUserMetricsServiceFactory::~FamilyUserMetricsServiceFactory() = default;
+
+KeyedService* FamilyUserMetricsServiceFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  return new FamilyUserMetricsService(context);
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.h b/chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.h
new file mode 100644
index 0000000..c477b83
--- /dev/null
+++ b/chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.h
@@ -0,0 +1,48 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_METRICS_SERVICE_FACTORY_H_
+#define CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_METRICS_SERVICE_FACTORY_H_
+
+#include "base/no_destructor.h"
+#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
+
+namespace content {
+class BrowserContext;
+}
+
+namespace chromeos {
+class FamilyUserMetricsService;
+
+// Singleton that owns FamilyUserMetricsService object and associates
+// them with corresponding BrowserContexts. Listens for the BrowserContext's
+// destruction notification and cleans up the associated
+// FamilyUserMetricsService.
+class FamilyUserMetricsServiceFactory
+    : public BrowserContextKeyedServiceFactory {
+ public:
+  static FamilyUserMetricsService* GetForBrowserContext(
+      content::BrowserContext* context);
+
+  static FamilyUserMetricsServiceFactory* GetInstance();
+
+ private:
+  friend class base::NoDestructor<FamilyUserMetricsServiceFactory>;
+
+  FamilyUserMetricsServiceFactory();
+  FamilyUserMetricsServiceFactory(const FamilyUserMetricsServiceFactory&) =
+      delete;
+  FamilyUserMetricsServiceFactory& operator=(
+      const FamilyUserMetricsServiceFactory&) = delete;
+
+  ~FamilyUserMetricsServiceFactory() override;
+
+  // BrowserContextKeyedServiceFactory:
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* context) const override;
+};
+
+}  // namespace chromeos
+
+#endif  // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_METRICS_SERVICE_FACTORY_H_
diff --git a/chrome/browser/chromeos/child_accounts/family_user_session_metrics.cc b/chrome/browser/chromeos/child_accounts/family_user_session_metrics.cc
new file mode 100644
index 0000000..4939402
--- /dev/null
+++ b/chrome/browser/chromeos/child_accounts/family_user_session_metrics.cc
@@ -0,0 +1,144 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/child_accounts/family_user_session_metrics.h"
+
+#include <string>
+#include <utility>
+
+#include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
+#include "base/metrics/user_metrics.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/pref_registry_simple.h"
+#include "components/prefs/pref_service.h"
+
+namespace chromeos {
+
+namespace {
+
+constexpr int kEngagementHourBuckets = base::Time::kHoursPerDay;
+constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
+
+// Returns the hour (0-23) within the day for given local time.
+int HourOfDay(base::Time time) {
+  base::Time::Exploded exploded;
+  time.LocalExplode(&exploded);
+  return exploded.hour;
+}
+
+// Returns 0-based day of week (0 = Sunday, etc.)
+int DayOfWeek(base::Time time) {
+  base::Time::Exploded exploded;
+  time.LocalExplode(&exploded);
+  return exploded.day_of_week;
+}
+
+}  // namespace
+
+// static
+const char FamilyUserSessionMetrics::kSessionEngagementStartActionName[] =
+    "FamilyUser.SessionEngagement.Start";
+const char
+    FamilyUserSessionMetrics::kUserSessionEngagementWeekdayHistogramName[] =
+        "FamilyUser.SessionEngagement.Weekday";
+const char
+    FamilyUserSessionMetrics::kUserSessionEngagementWeekendHistogramName[] =
+        "FamilyUser.SessionEngagement.Weekend";
+const char
+    FamilyUserSessionMetrics::kUserSessionEngagementTotalHistogramName[] =
+        "FamilyUser.SessionEngagement.Total";
+
+// static
+void FamilyUserSessionMetrics::RegisterProfilePrefs(
+    PrefRegistrySimple* registry) {
+  registry->RegisterTimePref(
+      prefs::kFamilyUserMetricsSessionEngagementStartTime, base::Time());
+}
+
+FamilyUserSessionMetrics::FamilyUserSessionMetrics(PrefService* pref_service)
+    : pref_service_(pref_service) {
+  DCHECK(pref_service_);
+  chromeos::UsageTimeStateNotifier::GetInstance()->AddObserver(this);
+}
+
+FamilyUserSessionMetrics::~FamilyUserSessionMetrics() {
+  if (is_user_active_) {
+    is_user_active_ = false;
+    UpdateUserEngagement();
+  }
+
+  chromeos::UsageTimeStateNotifier::GetInstance()->RemoveObserver(this);
+}
+
+void FamilyUserSessionMetrics::OnUsageTimeStateChange(
+    chromeos::UsageTimeStateNotifier::UsageTimeState state) {
+  is_user_active_ =
+      state == chromeos::UsageTimeStateNotifier::UsageTimeState::ACTIVE;
+
+  UpdateUserEngagement();
+}
+
+void FamilyUserSessionMetrics::SaveSessionEngagementStartTime() {
+  pref_service_->SetTime(prefs::kFamilyUserMetricsSessionEngagementStartTime,
+                         base::Time::Now());
+}
+
+void FamilyUserSessionMetrics::ReportUserEngagementHourToUma(base::Time start,
+                                                             base::Time end) {
+  if (start.is_null() || end.is_null() || end < start)
+    return;
+  base::Time time = start;
+  while (time <= end) {
+    int day_of_week = DayOfWeek(time);
+    int hour_of_day = HourOfDay(time);
+    if (day_of_week == 0 || day_of_week == 6) {
+      base::UmaHistogramExactLinear(kUserSessionEngagementWeekendHistogramName,
+                                    hour_of_day, kEngagementHourBuckets);
+    } else {
+      base::UmaHistogramExactLinear(kUserSessionEngagementWeekdayHistogramName,
+                                    hour_of_day, kEngagementHourBuckets);
+    }
+
+    base::UmaHistogramExactLinear(kUserSessionEngagementTotalHistogramName,
+                                  hour_of_day, kEngagementHourBuckets);
+
+    // When the difference between end and time less than 1 hour and their hours
+    // of day are different, i.e. time = 10:55 and end = 11:05, we need to
+    // report both 10 and 11. To ensure we don't omit reporting 11, set |time|
+    // equal to |end|.
+    if (end - time < kOneHour && hour_of_day != HourOfDay(end)) {
+      time = end;
+    } else {
+      time += kOneHour;
+    }
+  }
+}
+
+void FamilyUserSessionMetrics::ReportSessionEngagementStartToUma() {
+  base::RecordAction(
+      base::UserMetricsAction(kSessionEngagementStartActionName));
+}
+
+void FamilyUserSessionMetrics::UpdateUserEngagement() {
+  if (is_user_active_) {
+    ReportSessionEngagementStartToUma();
+    SaveSessionEngagementStartTime();
+  } else {
+    base::Time start = pref_service_->GetTime(
+        prefs::kFamilyUserMetricsSessionEngagementStartTime);
+
+    ReportUserEngagementHourToUma(
+        /*start=*/start,
+        /*end=*/base::Time::Now());
+
+    ResetSessionEngagementStartPref();
+  }
+}
+
+void FamilyUserSessionMetrics::ResetSessionEngagementStartPref() {
+  pref_service_->ClearPref(prefs::kFamilyUserMetricsSessionEngagementStartTime);
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/child_accounts/family_user_session_metrics.h b/chrome/browser/chromeos/child_accounts/family_user_session_metrics.h
new file mode 100644
index 0000000..5c23940
--- /dev/null
+++ b/chrome/browser/chromeos/child_accounts/family_user_session_metrics.h
@@ -0,0 +1,72 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_SESSION_METRICS_H_
+#define CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_SESSION_METRICS_H_
+
+#include "base/time/time.h"
+#include "chrome/browser/chromeos/child_accounts/usage_time_state_notifier.h"
+
+class PrefRegistrySimple;
+class PrefService;
+
+namespace chromeos {
+
+// A class for recording session metrics. Calculates and reports the
+// following metrics:
+// - FamilyUser.SessionEngagement.Start: User action of session engagement
+// begin. Recorded when UsageTimeNotifier::UsageTimeState changes to
+// active.
+// - FamilyUser.SessionEngagement.Weekday/Weekend/Total: Every hour of
+// day when the user is active split by weekday/weekend and total of
+// weekday/weekend. Recorded when UsageTimeNotifier::UsageTimeState changes to
+// INACTIVE. Covers the time between ACTIVE and INACTIVE.
+class FamilyUserSessionMetrics
+    : public chromeos::UsageTimeStateNotifier::Observer {
+ public:
+  static const char kSessionEngagementStartActionName[];
+  static const char kUserSessionEngagementWeekdayHistogramName[];
+  static const char kUserSessionEngagementWeekendHistogramName[];
+  static const char kUserSessionEngagementTotalHistogramName[];
+
+  static void RegisterProfilePrefs(PrefRegistrySimple* registry);
+
+  explicit FamilyUserSessionMetrics(PrefService* pref_service);
+  FamilyUserSessionMetrics(const FamilyUserSessionMetrics&) = delete;
+  FamilyUserSessionMetrics& operator=(const FamilyUserSessionMetrics&) = delete;
+  ~FamilyUserSessionMetrics() override;
+
+  // UsageTimeStateNotifier::Observer:
+  // When the user signs out, this function doesn't get called and
+  // |is_user_active_| doesn't change to false. Destructor will be called
+  // instead.
+  void OnUsageTimeStateChange(
+      chromeos::UsageTimeStateNotifier::UsageTimeState state) override;
+
+ private:
+  // Called when the user starts using device to
+  // save user engagement start time to profile preferences.
+  void SaveSessionEngagementStartTime();
+
+  // Reports user engagement hour metrics to UMA.
+  void ReportUserEngagementHourToUma(base::Time start, base::Time end);
+
+  // Reports session engagement start user action metric to UMA.
+  void ReportSessionEngagementStartToUma();
+
+  // Called when user engagement changes, save engagement data to pref
+  // or report to UMA.
+  void UpdateUserEngagement();
+
+  // Resets profile pref |kFamilyUsersMetricsSessionEngagementStartTime| to
+  // default value.
+  void ResetSessionEngagementStartPref();
+
+  PrefService* const pref_service_;
+
+  bool is_user_active_ = false;
+};
+}  // namespace chromeos
+
+#endif  // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_USER_SESSION_METRICS_H_
diff --git a/chrome/browser/chromeos/child_accounts/family_user_session_metrics_unittest.cc b/chrome/browser/chromeos/child_accounts/family_user_session_metrics_unittest.cc
new file mode 100644
index 0000000..c899134
--- /dev/null
+++ b/chrome/browser/chromeos/child_accounts/family_user_session_metrics_unittest.cc
@@ -0,0 +1,291 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/child_accounts/family_user_session_metrics.h"
+
+#include <memory>
+
+#include "base/strings/utf_string_conversions.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "base/test/metrics/user_action_tester.h"
+#include "base/test/task_environment.h"
+#include "base/test/test_mock_time_task_runner.h"
+#include "base/time/time.h"
+#include "chrome/common/pref_names.h"
+#include "chromeos/dbus/power/fake_power_manager_client.h"
+#include "chromeos/dbus/power_manager/idle.pb.h"
+#include "chromeos/dbus/session_manager/session_manager_client.h"
+#include "components/prefs/testing_pref_service.h"
+#include "components/session_manager/core/session_manager.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chromeos {
+
+namespace {
+
+void SetScreenOff(bool is_screen_off) {
+  power_manager::ScreenIdleState screen_idle_state;
+  screen_idle_state.set_off(is_screen_off);
+  FakePowerManagerClient::Get()->SendScreenIdleStateChanged(screen_idle_state);
+}
+
+void SetSuspendImminent() {
+  FakePowerManagerClient::Get()->SendSuspendImminent(
+      power_manager::SuspendImminent_Reason_OTHER);
+}
+
+void CancelSuspend() {
+  FakePowerManagerClient::Get()->SendSuspendDone();
+}
+
+}  // namespace
+
+class FamilyUserSessionMetricsTest : public testing::Test {
+ protected:
+  FamilyUserSessionMetricsTest() = default;
+  ~FamilyUserSessionMetricsTest() override = default;
+
+  void SetUp() override {
+    PowerManagerClient::InitializeFake();
+    SessionManagerClient::InitializeFakeInMemory();
+    InitiateFamilyUserSessionMetrics();
+    FamilyUserSessionMetrics::RegisterProfilePrefs(pref_service_.registry());
+  }
+
+  void TearDown() override {
+    DestructFamilyUserSessionMetrics();
+    SessionManagerClient::Shutdown();
+    PowerManagerClient::Shutdown();
+  }
+
+  void DestructFamilyUserSessionMetrics() {
+    family_user_session_metrics_.reset();
+  }
+
+  void InitiateFamilyUserSessionMetrics() {
+    family_user_session_metrics_ =
+        std::make_unique<FamilyUserSessionMetrics>(&pref_service_);
+  }
+
+  void SetupTaskRunnerWithTime(base::Time start_time) {
+    base::TimeDelta forward_by = start_time - base::Time::Now();
+    EXPECT_LT(base::TimeDelta(), forward_by);
+    task_environment_.FastForwardBy(forward_by);
+  }
+
+  void SetSessionEngagementStartPref(base::Time start) {
+    pref_service_.SetTime(prefs::kFamilyUserMetricsSessionEngagementStartTime,
+                          start);
+  }
+
+  void SetSessionState(session_manager::SessionState state) {
+    session_manager_.SetSessionState(state);
+  }
+
+  session_manager::SessionState GetSessionState() {
+    return session_manager_.session_state();
+  }
+
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+
+ private:
+  session_manager::SessionManager session_manager_;
+  TestingPrefServiceSimple pref_service_;
+  std::unique_ptr<FamilyUserSessionMetrics> family_user_session_metrics_;
+};
+
+TEST_F(FamilyUserSessionMetricsTest, SessionStateChange) {
+  base::HistogramTester histogram_tester;
+  base::UserActionTester user_action_tester;
+
+  // Should see 0 in user session metrics at first.
+  EXPECT_EQ(0,
+            user_action_tester.GetActionCount(
+                FamilyUserSessionMetrics::kSessionEngagementStartActionName));
+
+  base::Time start_time;
+  ASSERT_TRUE(base::Time::FromString("1 Jan 2020 10:00", &start_time));
+  SetupTaskRunnerWithTime(start_time);
+
+  SetSessionState(session_manager::SessionState::ACTIVE);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Session locked at 10:10:00.
+  SetSessionState(session_manager::SessionState::LOCKED);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Session activated at 10:20:00.
+  SetSessionState(session_manager::SessionState::ACTIVE);
+
+  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+
+  // Session locked at 10:20:00 on the second day.
+  SetSessionState(session_manager::SessionState::LOCKED);
+
+  EXPECT_EQ(2,
+            user_action_tester.GetActionCount(
+                FamilyUserSessionMetrics::kSessionEngagementStartActionName));
+
+  histogram_tester.ExpectBucketCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekdayHistogramName, 10,
+      3);
+
+  histogram_tester.ExpectTotalCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekdayHistogramName, 26);
+  histogram_tester.ExpectTotalCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementTotalHistogramName, 26);
+}
+
+TEST_F(FamilyUserSessionMetricsTest, ScreenStateChange) {
+  base::HistogramTester histogram_tester;
+  base::UserActionTester user_action_tester;
+
+  base::Time start_time;
+  ASSERT_TRUE(base::Time::FromString("3 Jan 2020 23:00", &start_time));
+  SetupTaskRunnerWithTime(start_time);
+
+  SetSessionState(session_manager::SessionState::ACTIVE);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(60));
+
+  // Test screen off at 0:00:00.
+  SetScreenOff(true);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Test screen on at 0:10:00.
+  SetScreenOff(false);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Session locked at 0:20:00.
+  SetSessionState(session_manager::SessionState::LOCKED);
+
+  EXPECT_EQ(2,
+            user_action_tester.GetActionCount(
+                FamilyUserSessionMetrics::kSessionEngagementStartActionName));
+
+  histogram_tester.ExpectUniqueSample(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekdayHistogramName, 23,
+      1);
+  histogram_tester.ExpectUniqueSample(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekendHistogramName, 0,
+      2);
+
+  histogram_tester.ExpectTotalCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementTotalHistogramName, 3);
+}
+
+TEST_F(FamilyUserSessionMetricsTest, SuspendStateChange) {
+  base::HistogramTester histogram_tester;
+  base::UserActionTester user_action_tester;
+
+  base::Time start_time;
+  ASSERT_TRUE(base::Time::FromString("4 Jan 2020 6:00", &start_time));
+  SetupTaskRunnerWithTime(start_time);
+
+  SetSessionState(session_manager::SessionState::ACTIVE);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Test suspend at 6:10:00.
+  SetSuspendImminent();
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Test cancel at 6:20:00.
+  CancelSuspend();
+
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Test suspend at 6:30:00.
+  SetSuspendImminent();
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+
+  // Session locked at 6:40:00.
+  SetSessionState(session_manager::SessionState::LOCKED);
+
+  EXPECT_EQ(2,
+            user_action_tester.GetActionCount(
+                FamilyUserSessionMetrics::kSessionEngagementStartActionName));
+
+  histogram_tester.ExpectUniqueSample(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekendHistogramName, 6,
+      2);
+  histogram_tester.ExpectTotalCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementTotalHistogramName, 2);
+}
+
+TEST_F(FamilyUserSessionMetricsTest, ClockBackward) {
+  base::HistogramTester histogram_tester;
+  base::UserActionTester user_action_tester;
+
+  base::Time start_time;
+  ASSERT_TRUE(base::Time::FromString("1 Jan 2020 10:00", &start_time));
+  SetupTaskRunnerWithTime(start_time);
+
+  SetSessionState(session_manager::SessionState::ACTIVE);
+
+  base::Time mock_session_start;
+  ASSERT_TRUE(base::Time::FromString("1 Jan 2020 11:00", &mock_session_start));
+
+  // Set session start prefs to 11:00:00. Mock a state that start time > end
+  // time.
+  SetSessionEngagementStartPref(mock_session_start);
+
+  // Session locked at 10:00:00.
+  SetSessionState(session_manager::SessionState::LOCKED);
+
+  EXPECT_EQ(1,
+            user_action_tester.GetActionCount(
+                FamilyUserSessionMetrics::kSessionEngagementStartActionName));
+
+  // Engagement hour data will be ignored if start time > end time.
+  histogram_tester.ExpectTotalCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekdayHistogramName, 0);
+  histogram_tester.ExpectTotalCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementTotalHistogramName, 0);
+}
+
+TEST_F(FamilyUserSessionMetricsTest,
+       DestructionAndCreationOfFamilyUserSessionMetrics) {
+  base::HistogramTester histogram_tester;
+  base::UserActionTester user_action_tester;
+
+  base::Time start_time;
+  ASSERT_TRUE(base::Time::FromString("1 Jan 2020 10:00", &start_time));
+  SetupTaskRunnerWithTime(start_time);
+
+  SetSessionState(session_manager::SessionState::ACTIVE);
+
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+
+  // Test destroying FamilyUserSessionMetrics without invoking
+  // OnUsageTimeStateChange(). It may happens during shutdown of device.
+  DestructFamilyUserSessionMetrics();
+  SetSessionState(session_manager::SessionState::UNKNOWN);
+
+  EXPECT_EQ(1,
+            user_action_tester.GetActionCount(
+                FamilyUserSessionMetrics::kSessionEngagementStartActionName));
+  histogram_tester.ExpectUniqueSample(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekdayHistogramName, 10,
+      1);
+
+  // Test restart.
+  InitiateFamilyUserSessionMetrics();
+  EXPECT_NE(session_manager::SessionState::ACTIVE, GetSessionState());
+  SetSessionState(session_manager::SessionState::ACTIVE);
+
+  EXPECT_EQ(2,
+            user_action_tester.GetActionCount(
+                FamilyUserSessionMetrics::kSessionEngagementStartActionName));
+
+  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  SetSessionState(session_manager::SessionState::LOCKED);
+
+  histogram_tester.ExpectUniqueSample(
+      FamilyUserSessionMetrics::kUserSessionEngagementWeekdayHistogramName, 10,
+      2);
+  histogram_tester.ExpectTotalCount(
+      FamilyUserSessionMetrics::kUserSessionEngagementTotalHistogramName, 2);
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/crosapi/DEPS b/chrome/browser/chromeos/crosapi/DEPS
index abdbca61..9121bdc5 100644
--- a/chrome/browser/chromeos/crosapi/DEPS
+++ b/chrome/browser/chromeos/crosapi/DEPS
@@ -3,7 +3,7 @@
     # For window parenting.
     "+ash/shell.h",
   ],
-  "select_file_crosapi\.cc": [
+  "select_file_ash\.cc": [
     # For window parenting.
     "+ash/shell.h",
     "+ash/wm/desks/desks_util.h",
diff --git a/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.cc b/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.cc
index 2240979..3648012 100644
--- a/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.cc
+++ b/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.cc
@@ -8,12 +8,14 @@
 
 #include "base/logging.h"
 #include "chrome/browser/chromeos/crosapi/screen_manager_crosapi.h"
-#include "chrome/browser/chromeos/crosapi/select_file_crosapi.h"
+#include "chrome/browser/chromeos/crosapi/select_file_ash.h"
 #include "chromeos/crosapi/mojom/screen_manager.mojom.h"
 #include "chromeos/crosapi/mojom/select_file.mojom.h"
 
+namespace crosapi {
+
 AshChromeServiceImpl::AshChromeServiceImpl(
-    mojo::PendingReceiver<crosapi::mojom::AshChromeService> pending_receiver)
+    mojo::PendingReceiver<mojom::AshChromeService> pending_receiver)
     : receiver_(this, std::move(pending_receiver)),
       screen_manager_crosapi_(std::make_unique<ScreenManagerCrosapi>()) {
   // TODO(hidehiko): Remove non-critical log from here.
@@ -24,12 +26,13 @@
 AshChromeServiceImpl::~AshChromeServiceImpl() = default;
 
 void AshChromeServiceImpl::BindSelectFile(
-    mojo::PendingReceiver<crosapi::mojom::SelectFile> receiver) {
-  select_file_crosapi_ =
-      std::make_unique<SelectFileCrosapi>(std::move(receiver));
+    mojo::PendingReceiver<mojom::SelectFile> receiver) {
+  select_file_crosapi_ = std::make_unique<SelectFileAsh>(std::move(receiver));
 }
 
 void AshChromeServiceImpl::BindScreenManager(
-    mojo::PendingReceiver<crosapi::mojom::ScreenManager> receiver) {
+    mojo::PendingReceiver<mojom::ScreenManager> receiver) {
   screen_manager_crosapi_->BindReceiver(std::move(receiver));
 }
+
+}  // namespace crosapi
diff --git a/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.h b/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.h
index 25215b3..bc10ce39 100644
--- a/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.h
+++ b/chrome/browser/chromeos/crosapi/ash_chrome_service_impl.h
@@ -12,27 +12,32 @@
 #include "mojo/public/cpp/bindings/receiver.h"
 
 class ScreenManagerCrosapi;
-class SelectFileCrosapi;
+
+namespace crosapi {
+
+class SelectFileAsh;
 
 // Implementation of AshChromeService. It provides a set of APIs that
 // lacros-chrome can call into.
-class AshChromeServiceImpl : public crosapi::mojom::AshChromeService {
+class AshChromeServiceImpl : public mojom::AshChromeService {
  public:
   explicit AshChromeServiceImpl(
-      mojo::PendingReceiver<crosapi::mojom::AshChromeService> pending_receiver);
+      mojo::PendingReceiver<mojom::AshChromeService> pending_receiver);
   ~AshChromeServiceImpl() override;
 
   // crosapi::mojom::AshChromeService:
   void BindScreenManager(
-      mojo::PendingReceiver<crosapi::mojom::ScreenManager> receiver) override;
+      mojo::PendingReceiver<mojom::ScreenManager> receiver) override;
   void BindSelectFile(
-      mojo::PendingReceiver<crosapi::mojom::SelectFile> receiver) override;
+      mojo::PendingReceiver<mojom::SelectFile> receiver) override;
 
  private:
-  mojo::Receiver<crosapi::mojom::AshChromeService> receiver_;
+  mojo::Receiver<mojom::AshChromeService> receiver_;
 
   std::unique_ptr<ScreenManagerCrosapi> screen_manager_crosapi_;
-  std::unique_ptr<SelectFileCrosapi> select_file_crosapi_;
+  std::unique_ptr<SelectFileAsh> select_file_crosapi_;
 };
 
+}  // namespace crosapi
+
 #endif  // CHROME_BROWSER_CHROMEOS_CROSAPI_ASH_CHROME_SERVICE_IMPL_H_
diff --git a/chrome/browser/chromeos/crosapi/browser_manager.h b/chrome/browser/chromeos/crosapi/browser_manager.h
index c0618757..5b45a96 100644
--- a/chrome/browser/chromeos/crosapi/browser_manager.h
+++ b/chrome/browser/chromeos/crosapi/browser_manager.h
@@ -20,10 +20,9 @@
 class CrOSComponentManager;
 }  // namespace component_updater
 
-class AshChromeServiceImpl;
-
 namespace crosapi {
 
+class AshChromeServiceImpl;
 class BrowserLoader;
 
 // Manages the lifetime of lacros-chrome, and its loading status. This class is
diff --git a/chrome/browser/chromeos/crosapi/select_file_crosapi.cc b/chrome/browser/chromeos/crosapi/select_file_ash.cc
similarity index 81%
rename from chrome/browser/chromeos/crosapi/select_file_crosapi.cc
rename to chrome/browser/chromeos/crosapi/select_file_ash.cc
index ce6ebe4a..a4e7129 100644
--- a/chrome/browser/chromeos/crosapi/select_file_crosapi.cc
+++ b/chrome/browser/chromeos/crosapi/select_file_ash.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/crosapi/select_file_crosapi.h"
+#include "chrome/browser/chromeos/crosapi/select_file_ash.h"
 
 #include <utility>
 #include <vector>
@@ -20,34 +20,34 @@
 #include "ui/shell_dialogs/selected_file_info.h"
 #include "url/gurl.h"
 
+namespace crosapi {
 namespace {
 
-ui::SelectFileDialog::Type GetUiType(
-    crosapi::mojom::SelectFileDialogType type) {
+ui::SelectFileDialog::Type GetUiType(mojom::SelectFileDialogType type) {
   switch (type) {
-    case crosapi::mojom::SelectFileDialogType::kFolder:
+    case mojom::SelectFileDialogType::kFolder:
       return ui::SelectFileDialog::Type::SELECT_FOLDER;
-    case crosapi::mojom::SelectFileDialogType::kUploadFolder:
+    case mojom::SelectFileDialogType::kUploadFolder:
       return ui::SelectFileDialog::Type::SELECT_UPLOAD_FOLDER;
-    case crosapi::mojom::SelectFileDialogType::kExistingFolder:
+    case mojom::SelectFileDialogType::kExistingFolder:
       return ui::SelectFileDialog::Type::SELECT_EXISTING_FOLDER;
-    case crosapi::mojom::SelectFileDialogType::kOpenFile:
+    case mojom::SelectFileDialogType::kOpenFile:
       return ui::SelectFileDialog::Type::SELECT_OPEN_FILE;
-    case crosapi::mojom::SelectFileDialogType::kOpenMultiFile:
+    case mojom::SelectFileDialogType::kOpenMultiFile:
       return ui::SelectFileDialog::Type::SELECT_OPEN_MULTI_FILE;
-    case crosapi::mojom::SelectFileDialogType::kSaveAsFile:
+    case mojom::SelectFileDialogType::kSaveAsFile:
       return ui::SelectFileDialog::Type::SELECT_SAVEAS_FILE;
   }
 }
 
 ui::SelectFileDialog::FileTypeInfo::AllowedPaths GetUiAllowedPaths(
-    crosapi::mojom::AllowedPaths allowed_paths) {
+    mojom::AllowedPaths allowed_paths) {
   switch (allowed_paths) {
-    case crosapi::mojom::AllowedPaths::kAnyPath:
+    case mojom::AllowedPaths::kAnyPath:
       return ui::SelectFileDialog::FileTypeInfo::ANY_PATH;
-    case crosapi::mojom::AllowedPaths::kNativePath:
+    case mojom::AllowedPaths::kNativePath:
       return ui::SelectFileDialog::FileTypeInfo::NATIVE_PATH;
-    case crosapi::mojom::AllowedPaths::kAnyPathOrUrl:
+    case mojom::AllowedPaths::kAnyPathOrUrl:
       return ui::SelectFileDialog::FileTypeInfo::ANY_PATH_OR_URL;
   }
 }
@@ -83,8 +83,8 @@
 class SelectFileDialogHolder : public ui::SelectFileDialog::Listener {
  public:
   SelectFileDialogHolder(aura::Window* shell_surface_window,
-                         crosapi::mojom::SelectFileOptionsPtr options,
-                         crosapi::mojom::SelectFile::SelectCallback callback)
+                         mojom::SelectFileOptionsPtr options,
+                         mojom::SelectFile::SelectCallback callback)
       : select_callback_(std::move(callback)) {
     DCHECK(shell_surface_window);
     // Policy is null because showing the file-dialog-blocked infobar is handled
@@ -163,10 +163,9 @@
   // Invokes |select_callback_| with the list of files and deletes this object.
   void OnSelected(const std::vector<ui::SelectedFileInfo>& files,
                   int file_type_index) {
-    std::vector<crosapi::mojom::SelectedFileInfoPtr> mojo_files;
+    std::vector<mojom::SelectedFileInfoPtr> mojo_files;
     for (const ui::SelectedFileInfo& file : files) {
-      crosapi::mojom::SelectedFileInfoPtr mojo_file =
-          crosapi::mojom::SelectedFileInfo::New();
+      mojom::SelectedFileInfoPtr mojo_file = mojom::SelectedFileInfo::New();
       mojo_file->file_path = file.file_path;
       mojo_file->local_path = file.local_path;
       mojo_file->display_name = file.display_name;
@@ -174,13 +173,13 @@
       mojo_files.push_back(std::move(mojo_file));
     }
     std::move(select_callback_)
-        .Run(crosapi::mojom::SelectFileResult::kSuccess, std::move(mojo_files),
+        .Run(mojom::SelectFileResult::kSuccess, std::move(mojo_files),
              file_type_index);
     delete this;
   }
 
   // Callback run after files are selected or the dialog is canceled.
-  crosapi::mojom::SelectFile::SelectCallback select_callback_;
+  mojom::SelectFile::SelectCallback select_callback_;
 
   // The file select dialog.
   scoped_refptr<SelectFileDialogExtension> select_file_dialog_;
@@ -192,23 +191,24 @@
 }  // namespace
 
 // TODO(https://crbug.com/1090587): Connection error handling.
-SelectFileCrosapi::SelectFileCrosapi(
-    mojo::PendingReceiver<crosapi::mojom::SelectFile> receiver)
+SelectFileAsh::SelectFileAsh(mojo::PendingReceiver<mojom::SelectFile> receiver)
     : receiver_(this, std::move(receiver)) {}
 
-SelectFileCrosapi::~SelectFileCrosapi() = default;
+SelectFileAsh::~SelectFileAsh() = default;
 
-void SelectFileCrosapi::Select(crosapi::mojom::SelectFileOptionsPtr options,
-                               SelectCallback callback) {
+void SelectFileAsh::Select(mojom::SelectFileOptionsPtr options,
+                           SelectCallback callback) {
   aura::Window* shell_surface_window =
       GetShellSurfaceWindow(options->owning_shell_window_id);
   // Bail out if the shell surface doesn't exist any more.
   if (!shell_surface_window) {
-    std::move(callback).Run(
-        crosapi::mojom::SelectFileResult::kInvalidShellWindow, {}, 0);
+    std::move(callback).Run(mojom::SelectFileResult::kInvalidShellWindow, {},
+                            0);
     return;
   }
   // Deletes itself when the dialog closes.
   new SelectFileDialogHolder(shell_surface_window, std::move(options),
                              std::move(callback));
 }
+
+}  // namespace crosapi
diff --git a/chrome/browser/chromeos/crosapi/select_file_ash.h b/chrome/browser/chromeos/crosapi/select_file_ash.h
new file mode 100644
index 0000000..28509dc
--- /dev/null
+++ b/chrome/browser/chromeos/crosapi/select_file_ash.h
@@ -0,0 +1,34 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_CROSAPI_SELECT_FILE_ASH_H_
+#define CHROME_BROWSER_CHROMEOS_CROSAPI_SELECT_FILE_ASH_H_
+
+#include "chromeos/crosapi/mojom/select_file.mojom.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+namespace crosapi {
+
+// Implements the SelectFile mojo interface for open/save dialogs. Wraps the
+// underlying Chrome OS SelectFileExtension implementation, which uses the WebUI
+// file manager to provide the dialogs. Lives on the UI thread.
+class SelectFileAsh : public mojom::SelectFile {
+ public:
+  explicit SelectFileAsh(mojo::PendingReceiver<mojom::SelectFile> receiver);
+  SelectFileAsh(const SelectFileAsh&) = delete;
+  SelectFileAsh& operator=(const SelectFileAsh&) = delete;
+  ~SelectFileAsh() override;
+
+  // crosapi::mojom::SelectFile:
+  void Select(mojom::SelectFileOptionsPtr options,
+              SelectCallback callback) override;
+
+ private:
+  mojo::Receiver<mojom::SelectFile> receiver_;
+};
+
+}  // namespace crosapi
+
+#endif  // CHROME_BROWSER_CHROMEOS_CROSAPI_SELECT_FILE_ASH_H_
diff --git a/chrome/browser/chromeos/crosapi/select_file_crosapi.h b/chrome/browser/chromeos/crosapi/select_file_crosapi.h
deleted file mode 100644
index aac243a..0000000
--- a/chrome/browser/chromeos/crosapi/select_file_crosapi.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_CHROMEOS_CROSAPI_SELECT_FILE_CROSAPI_H_
-#define CHROME_BROWSER_CHROMEOS_CROSAPI_SELECT_FILE_CROSAPI_H_
-
-#include "chromeos/crosapi/mojom/select_file.mojom.h"
-#include "mojo/public/cpp/bindings/pending_receiver.h"
-#include "mojo/public/cpp/bindings/receiver.h"
-
-// Implements the SelectFile mojo interface for open/save dialogs. Wraps the
-// underlying Chrome OS SelectFileExtension implementation, which uses the WebUI
-// file manager to provide the dialogs. Lives on the UI thread.
-class SelectFileCrosapi : public crosapi::mojom::SelectFile {
- public:
-  explicit SelectFileCrosapi(
-      mojo::PendingReceiver<crosapi::mojom::SelectFile> receiver);
-  SelectFileCrosapi(const SelectFileCrosapi&) = delete;
-  SelectFileCrosapi& operator=(const SelectFileCrosapi&) = delete;
-  ~SelectFileCrosapi() override;
-
-  // crosapi::mojom::SelectFile:
-  void Select(crosapi::mojom::SelectFileOptionsPtr options,
-              SelectCallback callback) override;
-
- private:
-  mojo::Receiver<crosapi::mojom::SelectFile> receiver_;
-};
-
-#endif  // CHROME_BROWSER_CHROMEOS_CROSAPI_SELECT_FILE_CROSAPI_H_
diff --git a/chrome/browser/chromeos/login/session/user_session_initializer.cc b/chrome/browser/chromeos/login/session/user_session_initializer.cc
index 5a63813..c902a93 100644
--- a/chrome/browser/chromeos/login/session/user_session_initializer.cc
+++ b/chrome/browser/chromeos/login/session/user_session_initializer.cc
@@ -15,6 +15,7 @@
 #include "chrome/browser/chromeos/arc/session/arc_service_launcher.h"
 #include "chrome/browser/chromeos/child_accounts/child_status_reporting_service_factory.h"
 #include "chrome/browser/chromeos/child_accounts/child_user_service_factory.h"
+#include "chrome/browser/chromeos/child_accounts/family_user_metrics_service_factory.h"
 #include "chrome/browser/chromeos/child_accounts/screen_time_controller_factory.h"
 #include "chrome/browser/chromeos/crostini/crostini_manager.h"
 #include "chrome/browser/chromeos/lock_screen_apps/state_controller.h"
@@ -99,6 +100,8 @@
     InitializeCRLSetFetcher(user);
     InitializeCertificateTransparencyComponents(user);
     InitializePrimaryProfileServices(profile, user);
+
+    FamilyUserMetricsServiceFactory::GetForBrowserContext(profile);
   }
 
   if (user->GetType() == user_manager::USER_TYPE_CHILD)
diff --git a/chrome/browser/chromeos/policy/minimum_version_policy_handler.cc b/chrome/browser/chromeos/policy/minimum_version_policy_handler.cc
index 8419616f..f390c54 100644
--- a/chrome/browser/chromeos/policy/minimum_version_policy_handler.cc
+++ b/chrome/browser/chromeos/policy/minimum_version_policy_handler.cc
@@ -4,12 +4,15 @@
 
 #include "chrome/browser/chromeos/policy/minimum_version_policy_handler.h"
 
-#include <cmath>
+#include <algorithm>
+#include <string>
+#include <utility>
 
 #include "ash/public/cpp/system_tray.h"
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/memory/ref_counted.h"
+#include "base/numerics/safe_conversions.h"
 #include "base/strings/string16.h"
 #include "base/time/default_clock.h"
 #include "base/time/time.h"
@@ -79,8 +82,8 @@
 }
 
 int GetDaysRounded(base::TimeDelta time) {
-  return std::lround(time.InSecondsF() /
-                     base::TimeDelta::FromDays(1).InSecondsF());
+  return base::ClampRound(time.InSecondsF() /
+                          base::TimeDelta::FromDays(1).InSecondsF());
 }
 
 chromeos::UpdateEngineClient* GetUpdateEngineClient() {
diff --git a/chrome/browser/chromeos/printing/printer_error_codes.cc b/chrome/browser/chromeos/printing/printer_error_codes.cc
index 936b41c..cfd96b1 100644
--- a/chrome/browser/chromeos/printing/printer_error_codes.cc
+++ b/chrome/browser/chromeos/printing/printer_error_codes.cc
@@ -59,38 +59,38 @@
     const ::printing::PrinterStatus& printer_status) {
   for (const auto& reason : printer_status.reasons) {
     switch (reason.reason) {
-      case PrinterReason::MEDIA_EMPTY:
-      case PrinterReason::MEDIA_NEEDED:
-      case PrinterReason::MEDIA_LOW:
+      case PrinterReason::Reason::MEDIA_EMPTY:
+      case PrinterReason::Reason::MEDIA_NEEDED:
+      case PrinterReason::Reason::MEDIA_LOW:
         return PrinterErrorCode::OUT_OF_PAPER;
-      case PrinterReason::MEDIA_JAM:
+      case PrinterReason::Reason::MEDIA_JAM:
         return PrinterErrorCode::PAPER_JAM;
-      case PrinterReason::TONER_EMPTY:
-      case PrinterReason::TONER_LOW:
-      case PrinterReason::DEVELOPER_EMPTY:
-      case PrinterReason::DEVELOPER_LOW:
-      case PrinterReason::MARKER_SUPPLY_EMPTY:
-      case PrinterReason::MARKER_SUPPLY_LOW:
-      case PrinterReason::MARKER_WASTE_FULL:
-      case PrinterReason::MARKER_WASTE_ALMOST_FULL:
+      case PrinterReason::Reason::TONER_EMPTY:
+      case PrinterReason::Reason::TONER_LOW:
+      case PrinterReason::Reason::DEVELOPER_EMPTY:
+      case PrinterReason::Reason::DEVELOPER_LOW:
+      case PrinterReason::Reason::MARKER_SUPPLY_EMPTY:
+      case PrinterReason::Reason::MARKER_SUPPLY_LOW:
+      case PrinterReason::Reason::MARKER_WASTE_FULL:
+      case PrinterReason::Reason::MARKER_WASTE_ALMOST_FULL:
         return PrinterErrorCode::OUT_OF_INK;
-      case PrinterReason::TIMED_OUT:
-      case PrinterReason::SHUTDOWN:
+      case PrinterReason::Reason::TIMED_OUT:
+      case PrinterReason::Reason::SHUTDOWN:
         return PrinterErrorCode::PRINTER_UNREACHABLE;
-      case PrinterReason::DOOR_OPEN:
-      case PrinterReason::COVER_OPEN:
-      case PrinterReason::INTERLOCK_OPEN:
+      case PrinterReason::Reason::DOOR_OPEN:
+      case PrinterReason::Reason::COVER_OPEN:
+      case PrinterReason::Reason::INTERLOCK_OPEN:
         return PrinterErrorCode::DOOR_OPEN;
-      case PrinterReason::INPUT_TRAY_MISSING:
-      case PrinterReason::OUTPUT_TRAY_MISSING:
+      case PrinterReason::Reason::INPUT_TRAY_MISSING:
+      case PrinterReason::Reason::OUTPUT_TRAY_MISSING:
         return PrinterErrorCode::TRAY_MISSING;
-      case PrinterReason::OUTPUT_AREA_FULL:
-      case PrinterReason::OUTPUT_AREA_ALMOST_FULL:
+      case PrinterReason::Reason::OUTPUT_AREA_FULL:
+      case PrinterReason::Reason::OUTPUT_AREA_ALMOST_FULL:
         return PrinterErrorCode::OUTPUT_FULL;
-      case PrinterReason::STOPPING:
-      case PrinterReason::STOPPED_PARTLY:
-      case PrinterReason::PAUSED:
-      case PrinterReason::MOVING_TO_PAUSED:
+      case PrinterReason::Reason::STOPPING:
+      case PrinterReason::Reason::STOPPED_PARTLY:
+      case PrinterReason::Reason::PAUSED:
+      case PrinterReason::Reason::MOVING_TO_PAUSED:
         return PrinterErrorCode::STOPPED;
       default:
         break;
diff --git a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
index e4c61bc..72290ac 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
@@ -875,6 +875,8 @@
 }  // namespace
 
 IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, DownloadExtensionTest_Open) {
+  platform_util::internal::DisableShellOperationsForTesting();
+
   LoadExtension("downloads_split");
   DownloadsOpenFunction* open_function = new DownloadsOpenFunction();
   open_function->set_user_gesture(true);
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 11b7846..180d1c3 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -652,6 +652,11 @@
     "expiry_milestone": 89
   },
   {
+    "name": "cpu-affinity-restrict-to-little-cores",
+    "owners": [ "eseckler", "skyostil" ],
+    "expiry_milestone": 92
+  },
+  {
     "name": "credit-card-scanner",
     "owners": [ "gambard", "javierrobles", "bling-flags" ],
     "expiry_milestone": 86
@@ -2075,8 +2080,8 @@
   },
   {
     "name": "enable-subresource-redirect",
-    "owners": [ "robertogden", "tbansal" ],
-    "expiry_milestone": 85
+    "owners": [ "rajendrant", "mcrouse", "tbansal" ],
+    "expiry_milestone": 87
   },
   {
     "name": "enable-suggested-files",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index d585e0c..1f94c5c 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2719,6 +2719,11 @@
     "Enables automatic translations of words on a page to be presented in the "
     "caption of the bottom bar.";
 
+const char kCpuAffinityRestrictToLittleCoresName[] = "Restrict to LITTLE cores";
+const char kCpuAffinityRestrictToLittleCoresDescription[] =
+    "Restricts Chrome threads to LITTLE cores on devices with big.LITTLE or "
+    "similar CPU architectures.";
+
 const char kDirectActionsName[] = "Direct actions";
 const char kDirectActionsDescription[] =
     "Enables direct actions (Android Q and more).";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 699886b..dd48c241 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1575,6 +1575,9 @@
 extern const char kContextualSearchTranslationsName[];
 extern const char kContextualSearchTranslationsDescription[];
 
+extern const char kCpuAffinityRestrictToLittleCoresName[];
+extern const char kCpuAffinityRestrictToLittleCoresDescription[];
+
 extern const char kDirectActionsName[];
 extern const char kDirectActionsDescription[];
 
diff --git a/chrome/browser/media/media_engagement_browsertest.cc b/chrome/browser/media/media_engagement_browsertest.cc
index b0cc20c..12b2891 100644
--- a/chrome/browser/media/media_engagement_browsertest.cc
+++ b/chrome/browser/media/media_engagement_browsertest.cc
@@ -524,7 +524,14 @@
   ExpectScores(1, 0);
 }
 
-IN_PROC_BROWSER_TEST_F(MediaEngagementBrowserTest, RecordVisitOnNewOrigin) {
+#if defined(OS_WIN) || defined(OS_LINUX)
+// Flaky: https://crbug.com/1115238
+#define MAYBE_RecordVisitOnNewOrigin DISABLED_RecordVisitOnNewOrigin
+#else
+#define MAYBE_RecordVisitOnNewOrigin RecordVisitOnNewOrigin
+#endif
+IN_PROC_BROWSER_TEST_F(MediaEngagementBrowserTest,
+                       MAYBE_RecordVisitOnNewOrigin) {
   LoadTestPageAndWaitForPlayAndAudible("engagement_test_small_frame_size.html",
                                        false);
   AdvanceMeaningfulPlaybackTime();
diff --git a/chrome/browser/metrics/power_metrics_provider_mac_unittest.cc b/chrome/browser/metrics/power_metrics_provider_mac_unittest.cc
index 6b41670..7f61ecf 100644
--- a/chrome/browser/metrics/power_metrics_provider_mac_unittest.cc
+++ b/chrome/browser/metrics/power_metrics_provider_mac_unittest.cc
@@ -139,9 +139,10 @@
 
   // The discharge rate is normalized to be representative over
   // |kMetricsCollectionInterval|.
-  int discharge = (kFirstReading - kSecondReading) *
-                  kMetricsCollectionInterval.InSecondsF() /
-                  (second_capture_time - first_capture_time).InSeconds();
+  int discharge =
+      base::ClampFloor((kFirstReading - kSecondReading) *
+                       kMetricsCollectionInterval.InSecondsF() /
+                       (second_capture_time - first_capture_time).InSeconds());
   histogram_tester_.ExpectUniqueSample(kHistogramName, discharge, 1);
 }
 
@@ -188,8 +189,9 @@
 
   // The discharge rate is normalized to be representative over
   // |kMetricsCollectionInterval|.
-  int discharge = (kFirstReading - kSecondReading) *
-                  kMetricsCollectionInterval.InSecondsF() /
-                  (second_capture_time - first_capture_time).InSeconds();
+  int discharge =
+      base::ClampFloor((kFirstReading - kSecondReading) *
+                       kMetricsCollectionInterval.InSecondsF() /
+                       (second_capture_time - first_capture_time).InSeconds());
   histogram_tester_.ExpectUniqueSample(kHistogramName, discharge, 1);
 }
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.cc
index 5644af1..9b7c645 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.cc
@@ -126,21 +126,18 @@
     return base::nullopt;
   }
 
-  // Note: Failure to decrypt the metadata key should not log an error. When
-  // another device advertises their encrypted metadata key, we do not know what
-  // public certificate that corresponds too. So, we will potentially be calling
-  // DecryptPublicCertificate() on all of our public certificates with the same
-  // encrypted metadata key until we find the correct one.
+  // Note: Failure to decrypt the metadata key or failure to confirm that the
+  // decrypted metadata key agrees with the key commitment tag should not log an
+  // error. When another device advertises their encrypted metadata key, we do
+  // not know what public certificate that corresponds to. So, we will
+  // potentially be calling DecryptPublicCertificate() on all of our public
+  // certificates with the same encrypted metadata key until we find the correct
+  // one.
   base::Optional<std::vector<uint8_t>> decrypted_metadata_key =
       DecryptMetadataKey(encrypted_metadata_key, secret_key.get());
-  if (!decrypted_metadata_key)
-    return base::nullopt;
-
-  // Confirm that the decrypted metadata key agrees with key commitment tag.
-  if (!VerifyMetadataEncryptionKeyTag(*decrypted_metadata_key,
+  if (!decrypted_metadata_key ||
+      !VerifyMetadataEncryptionKeyTag(*decrypted_metadata_key,
                                       metadata_encryption_key_tag)) {
-    NS_LOG(ERROR) << "Metadata decryption failed: Failed to verify metadata "
-                  << "encryption key tag.";
     return base::nullopt;
   }
 
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc
index eff074c..8ce8d8ed 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc
@@ -63,7 +63,7 @@
       proto_cert, GetNearbyShareTestEncryptedMetadataKey()));
 }
 
-TEST(NearbySharePublicCertificateTest, Verify) {
+TEST(NearbyShareDecryptedPublicCertificateTest, Verify) {
   base::Optional<NearbyShareDecryptedPublicCertificate> cert =
       NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
           GetNearbyShareTestPublicCertificate(),
diff --git a/chrome/browser/net/websocket_browsertest.cc b/chrome/browser/net/websocket_browsertest.cc
index 50abc6c..1d66865 100644
--- a/chrome/browser/net/websocket_browsertest.cc
+++ b/chrome/browser/net/websocket_browsertest.cc
@@ -194,7 +194,8 @@
   EXPECT_EQ("PASS", WaitAndGetTitle());
 }
 
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, SendCloseFrameWhenTabIsClosed) {
+IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest,
+                       DISABLED_SendCloseFrameWhenTabIsClosed) {
   // Launch a WebSocket server.
   ASSERT_TRUE(ws_server_.Start());
 
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_af.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_af.xtb
index 431d4ef..2c23fb0 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_af.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_af.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Herbegin wagwoordkontrole</translation>
 <translation id="2775140325783767197">Chrome kan nie jou wagwoorde nagaan nie. Probeer om jou internetverbinding na te gaan.</translation>
 <translation id="3533694711092285624">Geen gestoorde wagwoorde nie. Chrome kan jou wagwoorde nagaan wanneer jy hulle stoor.</translation>
+<translation id="543338862236136125">Wysig wagwoord</translation>
 <translation id="5539342724706569402">Op 'n misleidende werf ingevoer</translation>
 <translation id="6342069812937806050">Nou net</translation>
 <translation id="6407955178761087876">Laat Google Assistent jou help om jou wagwoord te verander</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_am.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_am.xtb
index 3e58c41..b1d58f4f 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_am.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_am.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">የይለፍ ቃል ፍተሻን እንደገና ያስጀምሩ</translation>
 <translation id="2775140325783767197">Chrome የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። የበይነመረብ ግንኙነትዎን ለመፈተሽ ይሞክሩ።</translation>
 <translation id="3533694711092285624">ምንም የተቀመጡ የይለፍ ቃላት የሉም። Chrome እርስዎ ሲያስቀምጧቸው የእርስዎን የይለፍ ቃላት መፈተሽ ይችላል።</translation>
+<translation id="543338862236136125">የይለፍ ቃል አርትዕ</translation>
 <translation id="5539342724706569402">በአታላይ ጣቢያ ላይ ገብቷል</translation>
 <translation id="6342069812937806050">ልክ አሁን</translation>
 <translation id="6407955178761087876">Google ረዳት የይለፍ ቃልዎን እንዲቀይሩ ያግዘዎት</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ar.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ar.xtb
index 97772f5..e29b5e9a 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ar.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ar.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">إعادة التحقُّق من كلمة المرور</translation>
 <translation id="2775140325783767197">‏يتعذّر على Chrome التحقّق من كلمات المرور. يُرجى التحقّق من اتصال الإنترنت.</translation>
 <translation id="3533694711092285624">‏ما مِن كلمات مرور محفوظة. لا يستطيع متصفّح Chrome التحقّق من كلمات المرور إلا عند حفظها.</translation>
+<translation id="543338862236136125">تعديل كلمة المرور</translation>
 <translation id="5539342724706569402">تم إدخال كلمة المرور على موقع إلكتروني مريب.</translation>
 <translation id="6342069812937806050">الآن</translation>
 <translation id="6407955178761087876">‏يمكنك السماح لتطبيق "مساعد Google" بمساعدتك في تغيير كلمة مرورك.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_as.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_as.xtb
index 49ea4148..34df164 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_as.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_as.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">পাছৱৰ্ড পৰীক্ষা কৰাটো ৰিষ্টাৰ্ট কৰক</translation>
 <translation id="2775140325783767197">Chromeএ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব নোৱাৰে। আপোনাৰ ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰি চাওক।</translation>
 <translation id="3533694711092285624">ছেভ কৰা কোনো পাছৱৰ্ড নাই। আপুনি আপোনাৰ পাছৱর্ডসমূহ ছেভ কৰিলে Chromeএ সেইবোৰ পৰীক্ষা কৰিব পাৰে।</translation>
+<translation id="543338862236136125">পাছৱৰ্ড সম্পাদনা কৰক</translation>
 <translation id="5539342724706569402">এটা প্ৰতাৰণামূলক ছাইটত দিয়া হৈছিল</translation>
 <translation id="6342069812937806050">খন্তেক পূর্বে</translation>
 <translation id="6407955178761087876">Google Assistantক আপোনাক নিজৰ পাছৱৰ্ড সলনি কৰাত সহায় কৰিবলৈ দিয়ক</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_az.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_az.xtb
index 79acce5..6129212 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_az.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_az.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Parol yoxlamasını yenidən başladın</translation>
 <translation id="2775140325783767197">Chrome parollarınızı yoxlaya bilmir. İnternet bağlantınızı yoxlamağa cəhd edin.</translation>
 <translation id="3533694711092285624">Yadda saxlanmış parol yoxdur. Parollarınızı yadda saxladıqda Chrome onları yoxlaya bilər.</translation>
+<translation id="543338862236136125">Parolu redaktə edin</translation>
 <translation id="5539342724706569402">Aldadıcı saytda daxil edilib</translation>
 <translation id="6342069812937806050">İndicə</translation>
 <translation id="6407955178761087876">Google Assistentin parolu dəyişməkdə sizə kömək etməsinə icazə verin</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb
index 3093d44..5167d5a 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Перазапусціць праверку пароляў</translation>
 <translation id="2775140325783767197">Браўзеру Chrome не ўдаецца праверыць паролі. Паспрабуйце праверыць падключэнне да інтэрнэту.</translation>
 <translation id="3533694711092285624">Няма захаваных пароляў. Chrome можа правяраць толькі захаваныя паролі.</translation>
+<translation id="543338862236136125">Змяніць пароль</translation>
 <translation id="5539342724706569402">Даныя ўведзены на сайце, вядомым падманнымі паводзінамі</translation>
 <translation id="6342069812937806050">Толькі што</translation>
 <translation id="6407955178761087876">Дазвольце Памочніку Google дапамагчы вам змяніць пароль</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bg.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bg.xtb
index 280fc3de..bb0e827 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bg.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bg.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Рестартиране на проверката на паролите</translation>
 <translation id="2775140325783767197">Chrome не може да провери паролите ви. Проверете връзката си с интернет.</translation>
 <translation id="3533694711092285624">Няма запазени пароли. Chrome може да проверява паролите ви, когато ги запазите.</translation>
+<translation id="543338862236136125">Редактиране на паролата</translation>
 <translation id="5539342724706569402">Въведена в измамнически сайт</translation>
 <translation id="6342069812937806050">Току-що</translation>
 <translation id="6407955178761087876">Позволете на Google Асистент да ви помогне да промените паролата си</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb
index a2f4b40..206fca36 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">পাসওয়ার্ড চেক করার কাজ রিস্টার্ট করুন</translation>
 <translation id="2775140325783767197">আপনার পাসওয়ার্ড Chrome চেক করে দেখতে পারছে না। আপনার ইন্টারনেট কানেকশন চেক করে দেখে নিন।</translation>
 <translation id="3533694711092285624">কোনও পাসওয়ার্ড সেভ করা নেই। আপনি পাসওয়ার্ড সেভ করলে Chrome সেটি চেক করতে পারবে।</translation>
+<translation id="543338862236136125">পাসওয়ার্ড এডিট করুন</translation>
 <translation id="5539342724706569402">প্রতারণামূলক সাইটে পাসওয়ার্ডটি লিখেছেন</translation>
 <translation id="6342069812937806050">এখনই</translation>
 <translation id="6407955178761087876">আপনার পাসওয়ার্ড পরিবর্তন করতে Google Assistant-এর সাহায্য নিন</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bs.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bs.xtb
index 102d93b6..3dc1d7f 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bs.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bs.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Ponovno pokretanje provjere lozinki</translation>
 <translation id="2775140325783767197">Chrome ne može provjeravati vaše lozinke. Predlažemo da provjerite internetsku vezu.</translation>
 <translation id="3533694711092285624">Nema sačuvanih lozinki. Chrome može provjeravati vaše lozinke kada ih sačuvate.</translation>
+<translation id="543338862236136125">Uredite lozinku</translation>
 <translation id="5539342724706569402">Uneseno na obmanujućoj web lokaciji</translation>
 <translation id="6342069812937806050">Upravo</translation>
 <translation id="6407955178761087876">Dozvolite Google Asistentu da vam pomogne da promijenite lozinku</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ca.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ca.xtb
index 20e54fde6..24cea58 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ca.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ca.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Reinicia la comprovació de contrasenyes</translation>
 <translation id="2775140325783767197">Chrome no pot comprovar les teves contrasenyes. Comprova la connexió a Internet.</translation>
 <translation id="3533694711092285624">No hi ha cap contrasenya desada. Chrome pot comprovar les teves contrasenyes quan les deses.</translation>
+<translation id="543338862236136125">Edita la contrasenya</translation>
 <translation id="5539342724706569402">S'ha introduït en un lloc web enganyós</translation>
 <translation id="6342069812937806050">Ara mateix</translation>
 <translation id="6407955178761087876">Permet que l'Assistent de Google t'ajudi a canviar la contrasenya</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_cs.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_cs.xtb
index b3263772..f2520c3 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_cs.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_cs.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Restartovat kontrolu hesel</translation>
 <translation id="2775140325783767197">Chrome nemůže zkontrolovat vaše hesla. Zkuste zkontrolovat připojení k internetu.</translation>
 <translation id="3533694711092285624">Nemáte žádná uložená hesla. Chrome může hesla zkontrolovat, pouze když si je uložíte.</translation>
+<translation id="543338862236136125">Upravit heslo</translation>
 <translation id="5539342724706569402">Zadáno na klamavém webu</translation>
 <translation id="6342069812937806050">Právě teď</translation>
 <translation id="6407955178761087876">Asistent Google vám se změnou hesla pomůže</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_da.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_da.xtb
index 88d0688..b2d8bee 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_da.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_da.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Genstart adgangskodetjek</translation>
 <translation id="2775140325783767197">Chrome kan ikke tjekke dine adgangskoder. Prøv at tjekke din internetforbindelse.</translation>
 <translation id="3533694711092285624">Der er ingen gemte adgangskoder. Chrome kan tjekke dine adgangskoder, når du gemmer dem.</translation>
+<translation id="543338862236136125">Rediger adgangskode</translation>
 <translation id="5539342724706569402">Angivet på et vildledende website</translation>
 <translation id="6342069812937806050">Lige nu</translation>
 <translation id="6407955178761087876">Lad Google-assistenten hjælpe dig med at skifte adgangskode</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_de.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_de.xtb
index 631ba752e5..1693087 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_de.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_de.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Passwortüberprüfung neu starten</translation>
 <translation id="2775140325783767197">Chrome kann Ihre Passwörter nicht prüfen. Überprüfen Sie Ihre Internetverbindung.</translation>
 <translation id="3533694711092285624">Keine gespeicherten Passwörter. Chrome kann Ihre Passwörter prüfen, wenn Sie sie speichern.</translation>
+<translation id="543338862236136125">Passwort ändern</translation>
 <translation id="5539342724706569402">Auf verdächtiger Website eingegeben</translation>
 <translation id="6342069812937806050">Gerade eben</translation>
 <translation id="6407955178761087876">Google Assistant kann Ihnen helfen, Ihr Passwort zu ändern</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_el.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_el.xtb
index 18780c5..a441a4cc6 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_el.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_el.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Επανεκκίνηση ελέγχου κωδικού πρόσβασης</translation>
 <translation id="2775140325783767197">Το Chrome δεν μπορεί να ελέγξει τους κωδικούς πρόσβασής σας. Δοκιμάστε να ελέγξετε τη σύνδεσή σας στο διαδίκτυο.</translation>
 <translation id="3533694711092285624">Δεν υπάρχουν αποθηκευμένοι κωδικοί πρόσβασης. Το Chrome μπορεί να ελέγξει τους κωδικούς πρόσβασής σας όταν τους αποθηκεύσετε.</translation>
+<translation id="543338862236136125">Επεξεργασία κωδικού πρόσβασης</translation>
 <translation id="5539342724706569402">Εισήχθη σε παραπλανητικό ιστότοπο</translation>
 <translation id="6342069812937806050">Πριν λίγο</translation>
 <translation id="6407955178761087876">Επιτρέψτε στον Βοηθό Google να σας βοηθήσει να αλλάξετε τον κωδικό πρόσβασής σας</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_en-GB.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_en-GB.xtb
index a32b1a5..b8afa675 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_en-GB.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_en-GB.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Restart password check</translation>
 <translation id="2775140325783767197">Chrome can't check your passwords. Try checking your Internet connection.</translation>
 <translation id="3533694711092285624">No saved passwords. Chrome can check your passwords when you save them.</translation>
+<translation id="543338862236136125">Edit password</translation>
 <translation id="5539342724706569402">Entered on a deceptive site</translation>
 <translation id="6342069812937806050">Just now</translation>
 <translation id="6407955178761087876">Let Google Assistant help you change your password</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es-419.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es-419.xtb
index d6ce661..ed9de5e3 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es-419.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es-419.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Reiniciar la verificación de contraseñas</translation>
 <translation id="2775140325783767197">Chrome no puede revisar las contraseñas. Revisa la conexión a Internet.</translation>
 <translation id="3533694711092285624">No hay contraseñas guardadas. Chrome puede revisar las contraseñas cuando las guardas.</translation>
+<translation id="543338862236136125">Editar la contraseña</translation>
 <translation id="5539342724706569402">Se ingresó en un sitio engañoso</translation>
 <translation id="6342069812937806050">Recién</translation>
 <translation id="6407955178761087876">Permite que el Asistente de Google te ayude a cambiar la contraseña</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es.xtb
index fb49210..122cc97 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_es.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Reiniciar comprobación de contraseña</translation>
 <translation id="2775140325783767197">Chrome no puede comprobar tus contraseñas. Revisa tu conexión a Internet.</translation>
 <translation id="3533694711092285624">No hay ninguna contraseña guardada. Chrome puede comprobar tus contraseñas cuando las guardas.</translation>
+<translation id="543338862236136125">Cambiar contraseña</translation>
 <translation id="5539342724706569402">Introducida en un sitio web engañoso</translation>
 <translation id="6342069812937806050">Ahora</translation>
 <translation id="6407955178761087876">El Asistente de Google puede ayudarte a cambiar la contraseña</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_et.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_et.xtb
index 21f81a0..3aaf508a 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_et.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_et.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Paroolikontrolli lähtestamine</translation>
 <translation id="2775140325783767197">Chrome ei saa teie paroole kontrollida. Kontrollige internetiühendust.</translation>
 <translation id="3533694711092285624">Salvestatud paroole ei ole. Chrome saab teie paroole kontrollida, kui olete need salvestanud.</translation>
+<translation id="543338862236136125">Muuda parooli</translation>
 <translation id="5539342724706569402">Siseneti petlikule saidile</translation>
 <translation id="6342069812937806050">Äsja</translation>
 <translation id="6407955178761087876">Luba Google'i assistendil aidata paroole muuta</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_eu.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_eu.xtb
index 3bdd8e06..235ff5c 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_eu.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_eu.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Berrabiarazi pasahitzaren egiaztapena</translation>
 <translation id="2775140325783767197">Chrome-k ezin ditu egiaztatu pasahitzak. Egiaztatu Internetera konektatuta zaudela.</translation>
 <translation id="3533694711092285624">Ez dago pasahitzik gordeta. Chrome-k pasahitzak egiazta ditzake gorde ondoren.</translation>
+<translation id="543338862236136125">Editatu pasahitza</translation>
 <translation id="5539342724706569402">Webgune engainagarri batean idatzi duzu</translation>
 <translation id="6342069812937806050">Oraintxe</translation>
 <translation id="6407955178761087876">Utzi Google-ren Laguntzailea eginbideari pasahitza aldatzen</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fa.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fa.xtb
index 5fd9a694..a2973f56 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fa.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fa.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">بازراه‌اندازی بررسی گذرواژه</translation>
 <translation id="2775140325783767197">‏Chrome نمی‌تواند گذرواژه‌هایتان را بررسی کند. اتصال اینترنت را بررسی کنید.</translation>
 <translation id="3533694711092285624">‏گذرواژه ذخیره‌شده‌ای وجود ندارد. Chrome زمانی می‌تواند گذرواژه‌هایتان را بررسی کند که آن‌ها را ذخیره کرده باشید.</translation>
+<translation id="543338862236136125">ویرایش گذرواژه</translation>
 <translation id="5539342724706569402">به سایت فریب‌دهنده‌ای وارد شده است</translation>
 <translation id="6342069812937806050">فقط اکنون</translation>
 <translation id="6407955178761087876">‏به «دستیار Google» اجازه دهید در تغییر گذرواژه به شما کمک کند</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fi.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fi.xtb
index d44fbab..2904276c 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fi.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fi.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Aloita salasanojen tarkistus uudelleen</translation>
 <translation id="2775140325783767197">Chrome ei voi tarkistaa salasanojasi. Tarkista internetyhteytesi.</translation>
 <translation id="3533694711092285624">Ei tallennettuja salasanoja. Chrome voi tarkistaa salasanasi, kun tallennat niitä.</translation>
+<translation id="543338862236136125">Muokkaa salasanaa</translation>
 <translation id="5539342724706569402">Käytetty petollisella sivustolla</translation>
 <translation id="6342069812937806050">Valmistui juuri</translation>
 <translation id="6407955178761087876">Anna Google Assistantin auttaa salasanan vaihdossa</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fil.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fil.xtb
index 6618601..d9b070c 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fil.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fil.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">I-restart ang pagsusuri sa password</translation>
 <translation id="2775140325783767197">Hindi masuri ng Chrome ang iyong mga password. Subukang tingnan ang iyong koneksyon sa internet.</translation>
 <translation id="3533694711092285624">Walang naka-save na password. Masusuri ng Chrome ang iyong mga password kapag na-save mo ang mga ito.</translation>
+<translation id="543338862236136125">I-edit ang password</translation>
 <translation id="5539342724706569402">Nailagay sa isang mapanlinlang na site</translation>
 <translation id="6342069812937806050">Ngayon lang</translation>
 <translation id="6407955178761087876">Hayaan ang Google Assistant na tulungan kang palitan ang iyong password</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr-CA.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr-CA.xtb
index 5f2ee7c1..00665e67 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr-CA.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr-CA.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Redémarrer la vérification des mots de passe</translation>
 <translation id="2775140325783767197">Chrome ne peut pas vérifier vos mots de passe. Essayez de vérifier votre connexion Internet.</translation>
 <translation id="3533694711092285624">Aucun mot de passe enregistré. Chrome ne peut vérifier vos mots de passe que si vous les enregistrez.</translation>
+<translation id="543338862236136125">Modifier le mot de passe</translation>
 <translation id="5539342724706569402">Entré sur un site trompeur</translation>
 <translation id="6342069812937806050">À l'instant</translation>
 <translation id="6407955178761087876">Permettre à l'Assistant Google de vous aider à changer votre mot de passe</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb
index 5eedbc7..06e4ee5 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Relancer la vérification des mots de passe</translation>
 <translation id="2775140325783767197">Chrome ne parvient pas à vérifier vos mots de passe. Vérifiez votre connexion Internet.</translation>
 <translation id="3533694711092285624">Aucun mot de passe enregistré. Chrome ne peut vérifier vos mots de passe que si vous les enregistrez.</translation>
+<translation id="543338862236136125">Modifier le mot de passe</translation>
 <translation id="5539342724706569402">a accédé à un site trompeur</translation>
 <translation id="6342069812937806050">À l'instant</translation>
 <translation id="6407955178761087876">Autorisez l'Assistant Google à vous aider à changer de mot de passe</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb
index d81177c..1d5305d2 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Reinicia a comprobación do contrasinal</translation>
 <translation id="2775140325783767197">Chrome non puido comprobar os teus contrasinais. Verifica a conexión a Internet.</translation>
 <translation id="3533694711092285624">Non hai contrasinais gardados. Chrome pode comprobar os teus contrasinais cando os gardes.</translation>
+<translation id="543338862236136125">Editar contrasinal</translation>
 <translation id="5539342724706569402">O contrasinal utilizouse nun sitio enganoso</translation>
 <translation id="6342069812937806050">Só agora</translation>
 <translation id="6407955178761087876">Permite que o Asistente de Google che axude a cambiar o contrasinal</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb
index 3c2cb48..d75c80ad 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">પાસવર્ડ ચેક કરવાની સુવિધા ફરી શરૂ કરો</translation>
 <translation id="2775140325783767197">Chrome તમારા પાસવર્ડ ચેક કરી શકતું નથી. તમારું ઇન્ટરનેટ કનેક્શન ચેક કરવાનો પ્રયાસ કરો.</translation>
 <translation id="3533694711092285624">કોઈ સાચવેલો પાસવર્ડ નથી. જ્યારે તમે તમારા પાસવર્ડ સાચવો ત્યારે Chrome તેને ચેક કરી શકે છે.</translation>
+<translation id="543338862236136125">પાસવર્ડમાં ફેરફાર કરો</translation>
 <translation id="5539342724706569402">છેતરામણી સાઇટ પર લૉગ ઇન વિગત દાખલ કરી</translation>
 <translation id="6342069812937806050">હમણાં જ</translation>
 <translation id="6407955178761087876">Google Assistantને તમારો પાસવર્ડ બદલવામાં તમારી સહાય કરવા દો</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hi.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hi.xtb
index 6274cd0..62c79e8 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hi.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hi.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">पासवर्ड की जांच फिर से करें</translation>
 <translation id="2775140325783767197">Chrome आपके पासवर्ड की जांच नहीं कर सकता. अपने इंटरनेट कनेक्शन की जांच करें.</translation>
 <translation id="3533694711092285624">सेव किया हुआ कोई भी पासवर्ड नहीं है. Chrome आपके पासवर्ड की जांच तब कर सकता है, जब आप उन्हें सेव करें.</translation>
+<translation id="543338862236136125">पासवर्ड में बदलाव करें</translation>
 <translation id="5539342724706569402">आपके क्रेडेंशियल धोखाधड़ी वाली साइट पर डाले गए थे</translation>
 <translation id="6342069812937806050">अभी</translation>
 <translation id="6407955178761087876">आपका पासवर्ड बदलने में, Google Assistant को आपकी मदद करने दें</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hr.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hr.xtb
index aa0717f4..5fa043b 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hr.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hr.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Ponovno pokretanje provjere zaporki</translation>
 <translation id="2775140325783767197">Chrome ne može provjeriti vaše zaporke. Provjerite internetsku vezu.</translation>
 <translation id="3533694711092285624">Nema nijedne spremljene zaporke. Chrome može provjeriti vaše zaporke kad ih spremite.</translation>
+<translation id="543338862236136125">Uredite zaporku</translation>
 <translation id="5539342724706569402">Uneseno na obmanjujućoj web-lokaciji</translation>
 <translation id="6342069812937806050">Samo sad</translation>
 <translation id="6407955178761087876">Neka vam Google asistent pomogne promijeniti zaporku</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hu.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hu.xtb
index 60d4dfb2..788f379 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hu.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hu.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Jelszóellenőrzés újraindítása</translation>
 <translation id="2775140325783767197">A Chrome nem tudja ellenőrizni a jelszavakat. Ellenőrizze az internetkapcsolatot.</translation>
 <translation id="3533694711092285624">Nincsenek mentett jelszavak. A Chrome képes a jelszavak ellenőrzésére, amikor Ön menti őket.</translation>
+<translation id="543338862236136125">Jelszó módosítása</translation>
 <translation id="5539342724706569402">Megtévesztő webhelyen lett megadva</translation>
 <translation id="6342069812937806050">Éppen most</translation>
 <translation id="6407955178761087876">A Google Segéd segíthet a jelszó módosításában</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hy.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hy.xtb
index 3a8ad1b7..be020b2d 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hy.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_hy.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Վերագործարկել գաղտնաբառերի ստուգումը</translation>
 <translation id="2775140325783767197">Chrome-ը չի կարող ստուգել ձեր գաղտնաբառերը։ Ստուգեք ինտերնետ կապը։</translation>
 <translation id="3533694711092285624">Պահված գաղտնաբառեր չկան։ Chrome-ը կարող է ստուգել ձեր գաղտնաբառերը, երբ պահում եք դրանք։</translation>
+<translation id="543338862236136125">Փոխել գաղտնաբառը</translation>
 <translation id="5539342724706569402">Բացվել է կասկածելի կայք</translation>
 <translation id="6342069812937806050">Հենց նոր</translation>
 <translation id="6407955178761087876">Թույլատրեք Google Օգնականին օգնել ձեզ փոխել գաղտնաբառը</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_id.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_id.xtb
index a07a788..9953c207 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_id.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_id.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Mulai ulang pemeriksaan sandi</translation>
 <translation id="2775140325783767197">Chrome tidak dapat memeriksa sandi Anda. Coba periksa koneksi internet Anda.</translation>
 <translation id="3533694711092285624">Tidak ada sandi yang tersimpan. Chrome dapat memeriksa sandi Anda saat menyimpannya.</translation>
+<translation id="543338862236136125">Edit sandi</translation>
 <translation id="5539342724706569402">Dimasukkan pada situs penipuan</translation>
 <translation id="6342069812937806050">Baru saja</translation>
 <translation id="6407955178761087876">Izinkan Asisten Google membantu Anda mengubah sandi</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_is.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_is.xtb
index e3ca082..5d2d8c8 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_is.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_is.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Endurræsa athugun aðgangsorðs</translation>
 <translation id="2775140325783767197">Chrome getur ekki athugað aðgangsorðin þín. Athugaðu nettenginguna þína.</translation>
 <translation id="3533694711092285624">Engin vistuð aðgangsorð. Chrome getur athugað aðgangsorðin þín þegar þú vistar þau.</translation>
+<translation id="543338862236136125">Breyta aðgangsorði</translation>
 <translation id="5539342724706569402">Fært inn á villandi vefsvæði</translation>
 <translation id="6342069812937806050">Rétt í þessu</translation>
 <translation id="6407955178761087876">Leyfðu Google hjálparanum að aðstoða þig við að skipta um aðgangsorð</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb
index b5258c39..005e38d 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Riavvia il controllo delle password</translation>
 <translation id="2775140325783767197">Chrome non può controllare le tue password. Prova a controllare la connessione a Internet.</translation>
 <translation id="3533694711092285624">Nessuna password salvata. Chrome può controllare le password quando le salvi.</translation>
+<translation id="543338862236136125">Modifica password</translation>
 <translation id="5539342724706569402">Hai raggiunto un sito ingannevole</translation>
 <translation id="6342069812937806050">In questo momento</translation>
 <translation id="6407955178761087876">Consenti all'Assistente Google di aiutarti a cambiare la password</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_iw.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_iw.xtb
index ac8380e..03a56554 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_iw.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_iw.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">הפעלה מחדש של בדיקת הסיסמאות</translation>
 <translation id="2775140325783767197">‏Chrome לא יכול לבדוק את הסיסמאות שלך. יש לבדוק את החיבור לאינטרנט.</translation>
 <translation id="3533694711092285624">‏אין סיסמאות שמורות. Chrome יכול לבדוק את הסיסמאות שלך רק אם שמרת אותן.</translation>
+<translation id="543338862236136125">עריכת סיסמה</translation>
 <translation id="5539342724706569402">פרטי הכניסה האלה הוזנו באתר מטעה</translation>
 <translation id="6342069812937806050">זה עתה</translation>
 <translation id="6407955178761087876">‏Google Assistant יעזור לך להחליף סיסמה</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ja.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ja.xtb
index 75798b0..c18b8c86 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ja.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ja.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">パスワードの確認を再開</translation>
 <translation id="2775140325783767197">Chrome がパスワードを確認できません。インターネット接続を確認してみてください。</translation>
 <translation id="3533694711092285624">保存されているパスワードがありません。パスワードを保存すると Chrome で確認できるようになります。</translation>
+<translation id="543338862236136125">パスワードを編集</translation>
 <translation id="5539342724706569402">不正なサイトで入力されました</translation>
 <translation id="6342069812937806050">たった今</translation>
 <translation id="6407955178761087876">Google アシスタントがパスワードの変更をサポートします</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ka.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ka.xtb
index 43cd87c3..1380199 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ka.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ka.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">პაროლების შემოწმების ხელახლა დაწყება</translation>
 <translation id="2775140325783767197">Chrome ვერ ახერხებს პაროლების შემოწმებას. შეამოწმეთ კავშირი ინტერნეტთან.</translation>
 <translation id="3533694711092285624">შენახული პაროლები არ არის. პაროლების შემოწმებას Chrome მოახერხებს მათი შენახვის შემდეგ.</translation>
+<translation id="543338862236136125">პაროლის რედაქტირება</translation>
 <translation id="5539342724706569402">შეყვანილია შეცდომაში შემყვან საიტზე</translation>
 <translation id="6342069812937806050">ახლახან</translation>
 <translation id="6407955178761087876">დაიხმარეთ Google ასისტენტი პაროლის შეცვლაში</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kk.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kk.xtb
index c9303186..3bc4909 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kk.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kk.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Құпия сөз тексеруді қайта қосу</translation>
 <translation id="2775140325783767197">Chrome сіздің құпия сөздеріңізді тексере алмайды. Интернет байланысын тексеріп көріңіз.</translation>
 <translation id="3533694711092285624">Ешқандай құпия сөз сақталмаған. Құпия сөздер сақталған кезде, Chrome оларды тексере алады.</translation>
+<translation id="543338862236136125">Құпия сөзді өзгерту</translation>
 <translation id="5539342724706569402">Жалған сайтта енгізілген.</translation>
 <translation id="6342069812937806050">Қазір ғана</translation>
 <translation id="6407955178761087876">Google Assistant көмегімен құпия сөзіңізді өзгертіңіз.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_km.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_km.xtb
index 28396a6..0d3ad8c 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_km.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_km.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">ចាប់ផ្ដើម​ការពិនិត្យពាក្យសម្ងាត់​ឡើងវិញ</translation>
 <translation id="2775140325783767197">Chrome មិន​អាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមសាកល្បងពិនិត្យ​ការតភ្ជាប់អ៊ីនធឺណិត​របស់អ្នក។</translation>
 <translation id="3533694711092285624">គ្មានពាក្យសម្ងាត់ដែលបានរក្សាទុកទេ។ Chrome អាចពិនិត្យពាក្យសម្ងាត់របស់អ្នក នៅពេលអ្នករក្សាទុកពាក្យសម្ងាត់ទាំងនោះ។</translation>
+<translation id="543338862236136125">កែពាក្យ​សម្ងាត់</translation>
 <translation id="5539342724706569402">បានបញ្ចូលនៅលើគេហទំព័របញ្ឆោត</translation>
 <translation id="6342069812937806050">អំបាញ់មិញនេះ</translation>
 <translation id="6407955178761087876">អនុញ្ញាតឱ្យ Google ជំនួយការ​ជួយអ្នក​ក្នុងការប្ដូរពាក្យសម្ងាត់របស់អ្នក</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb
index 7711448..942f7137 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">ಪಾಸ್‌ವರ್ಡ್ ಪರಿಶೀಲನೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="2775140325783767197">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ನೋಡಿ.</translation>
 <translation id="3533694711092285624">ಉಳಿಸಿರುವ ಯಾವುದೇ ಪಾಸ್‍‍ವರ್ಡ್‍ಗಳಿಲ್ಲ. ನೀವು ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಿದಾಗ, Chrome ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.</translation>
+<translation id="543338862236136125">ಪಾಸ್‌ವರ್ಡ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="5539342724706569402">ವಂಚಕ ಸೈಟ್‌ ಒಂದರಲ್ಲಿ ನಮೂದಿಸಲಾಗಿದೆ</translation>
 <translation id="6342069812937806050">ಇದೀಗ</translation>
 <translation id="6407955178761087876">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಿಸುವುದಕ್ಕೆ ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು Google Assistant ಗೆ ಅನುಮತಿ ನೀಡಿ</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ko.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ko.xtb
index 4a101918..100821f2 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ko.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ko.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">비밀번호 확인 다시 시작</translation>
 <translation id="2775140325783767197">Chrome에서 비밀번호를 확인할 수 없습니다. 인터넷 연결 상태를 확인하세요.</translation>
 <translation id="3533694711092285624">저장된 비밀번호가 없습니다. 비밀번호를 저장하면 Chrome에서 확인할 수 있습니다.</translation>
+<translation id="543338862236136125">비밀번호 수정</translation>
 <translation id="5539342724706569402">사기성 사이트에 입력됨</translation>
 <translation id="6342069812937806050">완료됨</translation>
 <translation id="6407955178761087876">Google 어시스턴트를 통해 비밀번호를 변경합니다.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ky.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ky.xtb
index ad57b55c..aaf9531 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ky.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ky.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Сырсөздөрдү кайра текшерүү</translation>
 <translation id="2775140325783767197">Chrome сырсөздөрүңүздү текшере албай жатат. Интернет байланышын текшерип көрүңүз.</translation>
 <translation id="3533694711092285624">Сакталган сырсөздөр жок. Сырсөздөрүңүздү сактаганда Chrome аларды текшере алат.</translation>
+<translation id="543338862236136125">Сырсөздү түзөтүү</translation>
 <translation id="5539342724706569402">Жалган сайтка киргизилди</translation>
 <translation id="6342069812937806050">Жаңы эле</translation>
 <translation id="6407955178761087876">Google Жардамчыга сырсөздү өзгөртүүгө уруксат бериңиз</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lo.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lo.xtb
index a94d1cd..5a8e097 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lo.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lo.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">ຣິສະຕາດການກວດລະຫັດຜ່ານ</translation>
 <translation id="2775140325783767197">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານ.</translation>
 <translation id="3533694711092285624">ບໍ່ມີລະຫັດຜ່ານທີ່ບັນທຶກໄວ້. Chrome ສາມາດກວດເບິ່ງລະຫັດຜ່ານຂອງທ່ານເມື່ອທ່ານບັນທຶກພວກມັນໄວ້.</translation>
+<translation id="543338862236136125">ແກ້ໄຂລະຫັດຜ່ານ</translation>
 <translation id="5539342724706569402">ປ້ອນໃສ່ໃນເວັບໄຊຫຼອກລວງ</translation>
 <translation id="6342069812937806050">ດຽວນີ້ເອງ</translation>
 <translation id="6407955178761087876">ອະນຸຍາດໃຫ້ຜູ້ຊ່ວຍ Google ຊ່ວຍທ່ານປ່ຽນລະຫັດຜ່ານຂອງທ່ານ</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lt.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lt.xtb
index f9306da..524eb250 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lt.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lt.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Iš naujo paleisti slaptažodžių patikrą</translation>
 <translation id="2775140325783767197">„Chrome“ negali patikrinti jūsų slaptažodžių. Pabandykite patikrinti interneto ryšį.</translation>
 <translation id="3533694711092285624">Nėra išsaugotų slaptažodžių. „Chrome“ gali tikrinti jūsų slaptažodžius, kai juos išsaugote.</translation>
+<translation id="543338862236136125">Redaguoti slaptažodį</translation>
 <translation id="5539342724706569402">Įvesta apgaulingoje svetainėje</translation>
 <translation id="6342069812937806050">Ką tik</translation>
 <translation id="6407955178761087876">Leiskite „Google“ padėjėjui padėti jums pakeisti slaptažodį</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lv.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lv.xtb
index e2c898b..93b6e1c 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lv.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_lv.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Vēlreiz palaist paroļu pārbaudi</translation>
 <translation id="2775140325783767197">Pārlūkprogrammā Chrome nevar pārbaudīt jūsu paroles. Pārbaudiet interneta savienojumu.</translation>
 <translation id="3533694711092285624">Nav saglabātu paroļu. Pārlūkprogrammā Chrome var pārbaudīt jūsu paroles, ja jūs tās saglabājat.</translation>
+<translation id="543338862236136125">Rediģēt paroli</translation>
 <translation id="5539342724706569402">Dati tika ievadīti maldinošā vietnē.</translation>
 <translation id="6342069812937806050">Tikko</translation>
 <translation id="6407955178761087876">Atļaujiet Google asistentam palīdzēt nomainīt paroli</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mk.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mk.xtb
index bb5e73c..6b14f97df 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mk.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mk.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Рестартирај проверка на лозинка</translation>
 <translation id="2775140325783767197">Chrome не може да ги провери вашите лозинки. Проверете ја интернет-врската.</translation>
 <translation id="3533694711092285624">Нема зачувани лозинки. Chrome може да ги проверува вашите лозинки кога ги зачувувате.</translation>
+<translation id="543338862236136125">Измени ја лозинката</translation>
 <translation id="5539342724706569402">Внесена на измамнички сајт</translation>
 <translation id="6342069812937806050">Пред малку</translation>
 <translation id="6407955178761087876">Дозволете „Помошникот на Google“ да ви помогне да ја смените лозинката</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ml.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ml.xtb
index fde111a..009fb5f9 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ml.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ml.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">പാസ്‌വേഡ് പരിശോധന റീസ്റ്റാർട്ട് ചെയ്യുക</translation>
 <translation id="2775140325783767197">Chrome-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവില്ല. നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ പരിശോധിക്കുക.</translation>
 <translation id="3533694711092285624">സംരക്ഷിച്ച പാസ്‌വേഡുകളൊന്നുമില്ല. നിങ്ങളുടെ പാസ്‌വേഡുകൾ സംരക്ഷിക്കുകയാണങ്കിൽ, Chrome-ന് അവ പരിശോധിക്കാനാവും.</translation>
+<translation id="543338862236136125">പാസ്‌വേഡ് എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="5539342724706569402">വഞ്ചനാപരമായ സൈറ്റിൽ പ്രവേശിച്ചു</translation>
 <translation id="6342069812937806050">ഇപ്പോള്‍‌</translation>
 <translation id="6407955178761087876">നിങ്ങളുടെ പാസ്‍വേഡ് മാറ്റാൻ സഹായിക്കുന്നതിന് Google Assistant-നെ അനുവദിക്കൂ</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mn.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mn.xtb
index 816b337..61bc7d2 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mn.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mn.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Нууц үг шалгах үйлдлийг дахин эхлүүлэх</translation>
 <translation id="2775140325783767197">Chrome таны нууц үгсийг шалгах боломжгүй байна. Интернэт холболтоо шалгаж үзнэ үү.</translation>
 <translation id="3533694711092285624">Хадгалсан ямар ч нууц үг байхгүй байна. Таныг нууц үгсээ хадгалах үед Chrome тэднийг шалгах боломжтой.</translation>
+<translation id="543338862236136125">Нууц үг засах</translation>
 <translation id="5539342724706569402">Сэжигтэй сайтад оруулсан</translation>
 <translation id="6342069812937806050">Яг одоо</translation>
 <translation id="6407955178761087876">Нууц үг өөрчлөхөд тань туслах боломжийг Google Туслахад олгоно уу</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mr.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mr.xtb
index 0fbbe0a..da2ad059 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mr.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_mr.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">पासवर्ड तपासणी रीस्टार्ट करा</translation>
 <translation id="2775140325783767197">Chrome तुमचे पासवर्ड तपासू शकत नाही. तुमचे इंटरनेट कनेक्शन तपासून पहा.</translation>
 <translation id="3533694711092285624">सेव्ह केलेले पासवर्ड नाहीत. तुम्ही तुमचे पासवर्ड सेव्ह केल्यावर Chrome ते तपासू शकते.</translation>
+<translation id="543338862236136125">पासवर्ड संपादित करा</translation>
 <translation id="5539342724706569402">फसव्या साइटवर एंटर केला</translation>
 <translation id="6342069812937806050">आत्ताच</translation>
 <translation id="6407955178761087876">Google Assistant ला तुमचा पासवर्ड बदलण्यात तुम्हाला मदत करू द्या</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ms.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ms.xtb
index c01a0e99..d8660e53 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ms.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ms.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Mulakan semula semakan kata laluan</translation>
 <translation id="2775140325783767197">Chrome tidak dapat menyemak kata laluan anda. Cuba periksa sambungan Internet anda.</translation>
 <translation id="3533694711092285624">Tiada kata laluan yang disimpan. Chrome boleh menyemak kata laluan anda yang disimpan.</translation>
+<translation id="543338862236136125">Edit kata laluan</translation>
 <translation id="5539342724706569402">Dimasukkan pada tapak penipuan</translation>
 <translation id="6342069812937806050">Sebentar tadi</translation>
 <translation id="6407955178761087876">Benarkan Google Assistant membantu anda menukar kata laluan anda</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_my.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_my.xtb
index a456e32..88fdef2 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_my.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_my.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">စကားဝှက်စစ်ဆေးမှု ပြန်စရန်</translation>
 <translation id="2775140325783767197">Chrome က သင့်စကားဝှက်များကို စစ်ဆေး၍မရပါ။ သင့်အင်တာနက် ချိတ်ဆက်မှုကို စစ်ဆေးပါ။</translation>
 <translation id="3533694711092285624">သိမ်းထားသော စကားဝှက် မရှိပါ။ သင်စကားဝှက်များကို သိမ်းသည့်အခါ Chrome က ၎င်းတို့ကို စစ်ဆေးနိုင်သည်။</translation>
+<translation id="543338862236136125">စကားဝှက်ကို တည်းဖြတ်ခြင်း</translation>
 <translation id="5539342724706569402">လှည့်ဖြားတတ်သော ဝဘ်ဆိုက်တွင် ထည့်သွင်းခဲ့သည်</translation>
 <translation id="6342069812937806050">ယခုပင်</translation>
 <translation id="6407955178761087876">Google Assistant ကို သင့်စကားဝှက် ကူညီပြောင်းခွင့်ပေးပါ</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb
index d3a95d5..323b1b4 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">पासवर्ड जाँच गर्ने प्रक्रिया पुनः सुरु गर्नुहोस्</translation>
 <translation id="2775140325783767197">Chrome ले तपाईंका पासवर्डहरूको जाँच गर्न सकेन। आफ्नो इन्टरनेट जडान जाँच गरी हेर्नुहोस्।</translation>
 <translation id="3533694711092285624">कुनै पनि सुरक्षित गरिएको पासवर्ड छैन। तपाईंले आफ्ना पासवर्डहरू सुरक्षित गर्नुभएको छ भने मात्र Chrome ले तिनको जाँच गर्न सक्छ।</translation>
+<translation id="543338862236136125">पासवर्ड सम्पादन गर्नुहोस्</translation>
 <translation id="5539342724706569402">भ्रामक साइटमा प्रविष्टि गरिएको</translation>
 <translation id="6342069812937806050">अहिले भर्खर</translation>
 <translation id="6407955178761087876">Google सहायकलाई तपाईंको पासवर्ड परिवर्तन गर्न मद्दत गर्न दिनुहोस्</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_nl.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_nl.xtb
index 8963cb5..8d8bc8c 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_nl.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_nl.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Wachtwoordcheck opnieuw opstarten</translation>
 <translation id="2775140325783767197">Chrome kan je wachtwoorden niet checken. Check de internetverbinding.</translation>
 <translation id="3533694711092285624">Geen opgeslagen wachtwoorden. Chrome kan je wachtwoorden controleren als je deze hebt opgeslagen.</translation>
+<translation id="543338862236136125">Wachtwoord bewerken</translation>
 <translation id="5539342724706569402">Ingevoerd op een misleidende site</translation>
 <translation id="6342069812937806050">Zojuist</translation>
 <translation id="6407955178761087876">Laat de Google Assistent je helpen je wachtwoord te wijzigen</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_no.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_no.xtb
index c98625a..98ee042 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_no.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_no.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Start passordsjekken på nytt</translation>
 <translation id="2775140325783767197">Chrome kan ikke sjekke passordene dine. Prøv å kontrollere internettilkoblingen.</translation>
 <translation id="3533694711092285624">Ingen lagrede passord. Chrome kan sjekke passordene dine når du lagrer dem.</translation>
+<translation id="543338862236136125">Endre passordet</translation>
 <translation id="5539342724706569402">Skrevet inn på et villedende nettsted</translation>
 <translation id="6342069812937806050">Akkurat nå</translation>
 <translation id="6407955178761087876">La Google-assistenten hjelpe deg med å endre passordet</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb
index 349eedc..10fd43f 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">ପାସୱାର୍ଡ ଯାଞ୍ଚ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ</translation>
 <translation id="2775140325783767197">Chrome ଆପଣଙ୍କର ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ ନାହିଁ। ଆପଣଙ୍କର ଇଣ୍ଟର୍ନେଟ୍ ସଂଯୋଗ ଯାଞ୍ଚ କରି ଦେଖନ୍ତୁ।</translation>
 <translation id="3533694711092285624">ସେଭ୍ କରାଯାଇଥିବା କୌଣସି ପାସୱାର୍ଡ ନାହିଁ। ଆପଣ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ସେଭ୍ କଲେ Chrome ସେଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ।</translation>
+<translation id="543338862236136125">ପାସ୍‍ୱାର୍ଡ ସମ୍ପାଦନ କରନ୍ତୁ</translation>
 <translation id="5539342724706569402">ପ୍ରତାରଣାମୂଳକ ସାଇଟରେ ଲେଖାଯାଇଥିଲା</translation>
 <translation id="6342069812937806050">ଏହିକ୍ଷଣି</translation>
 <translation id="6407955178761087876">Google Assistantକୁ ଆପଣଙ୍କ ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରିବାରେ ସାହାଯ୍ୟ କରିବାକୁ ଦିଅନ୍ତୁ</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pa.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pa.xtb
index 8ae1fcc..d8fd7585 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pa.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pa.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">ਪਾਸਵਰਡ ਦੀ ਜਾਂਚ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ</translation>
 <translation id="2775140325783767197">Chrome ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਆਪਣੇ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਕੇ ਦੇਖੋ।</translation>
 <translation id="3533694711092285624">ਕੋਈ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਨਹੀਂ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਪਣੇ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨ 'ਤੇ Chrome ਉਹਨਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ।</translation>
+<translation id="543338862236136125">ਪਾਸਵਰਡ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
 <translation id="5539342724706569402">ਧੋਖੇਬਾਜ਼ ਸਾਈਟ 'ਤੇ ਦਾਖਲ ਕੀਤਾ</translation>
 <translation id="6342069812937806050">ਬਿਲਕੁਲ ਹੁਣੇ</translation>
 <translation id="6407955178761087876">Google Assistant ਨੂੰ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਨ ਦਿਓ</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pl.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pl.xtb
index e60dcad..6115e89 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pl.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pl.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Ponownie uruchom sprawdzanie haseł</translation>
 <translation id="2775140325783767197">Chrome nie może sprawdzić Twoich haseł. Sprawdź połączenie z internetem.</translation>
 <translation id="3533694711092285624">Brak zapisanych haseł. Chrome może sprawdzać Twoje hasła, gdy je zapiszesz.</translation>
+<translation id="543338862236136125">Edytuj hasło</translation>
 <translation id="5539342724706569402">Wpisano na stronie wprowadzającej w błąd</translation>
 <translation id="6342069812937806050">Przed momentem</translation>
 <translation id="6407955178761087876">Pozwól, by Asystent Google pomógł Ci zmienić hasło</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-BR.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-BR.xtb
index 5190111..ae87ffbb 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-BR.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-BR.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Reiniciar a verificação de senhas</translation>
 <translation id="2775140325783767197">O Chrome não pode verificar suas senhas. Verifique sua conexão com a Internet.</translation>
 <translation id="3533694711092285624">Nenhuma senha salva. O Chrome poderá verificar suas senhas quando elas forem salvas.</translation>
+<translation id="543338862236136125">Editar senha</translation>
 <translation id="5539342724706569402">Inserida em um site enganoso</translation>
 <translation id="6342069812937806050">Neste instante</translation>
 <translation id="6407955178761087876">Permita que o Google Assistente ajude você a mudar sua senha</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-PT.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-PT.xtb
index 8632d4fe..f9a97ec 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-PT.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_pt-PT.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Reinicie a verificação da palavra-passe</translation>
 <translation id="2775140325783767197">O Chrome não consegue verificar as suas palavras-passe. Experimente verificar a sua ligação à Internet.</translation>
 <translation id="3533694711092285624">Não existem palavras-passe guardadas. O Chrome consegue verificar as suas palavras-passe quando as guarda.</translation>
+<translation id="543338862236136125">Editar palavra-passe</translation>
 <translation id="5539342724706569402">Introduzida num site fraudulento.</translation>
 <translation id="6342069812937806050">Mesmo agora</translation>
 <translation id="6407955178761087876">Permita que o Assistente Google ajude a alterar a sua palavra-passe.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ro.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ro.xtb
index 45caf27..24fd1d9 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ro.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ro.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Repornește verificarea parolelor</translation>
 <translation id="2775140325783767197">Chrome nu îți poate verifica parolele. Verifică-ți conexiunea la internet.</translation>
 <translation id="3533694711092285624">Nu există parole salvate. Chrome îți poate verifica parolele dacă le salvezi.</translation>
+<translation id="543338862236136125">Editează parola</translation>
 <translation id="5539342724706569402">A fost introdusă pe un site înșelător</translation>
 <translation id="6342069812937806050">Adineauri</translation>
 <translation id="6407955178761087876">Schimbă parola cu ajutorul Asistentului Google</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb
index 6c9c79d7..776ea4d 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Начать проверку паролей заново</translation>
 <translation id="2775140325783767197">Не удается запустить проверку паролей в Chrome. Проверьте подключение к Интернету.</translation>
 <translation id="3533694711092285624">Сохраненных паролей нет. Чтобы браузер Chrome мог проверять пароли, сохраните их.</translation>
+<translation id="543338862236136125">Изменить пароль</translation>
 <translation id="5539342724706569402">Введен на поддельном сайте</translation>
 <translation id="6342069812937806050">только что</translation>
 <translation id="6407955178761087876">Позвольте Google Ассистенту помочь вам изменить пароль.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_si.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_si.xtb
index 01ce6420..102b7d7 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_si.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_si.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">මුරපදය පරීක්ෂාව යළි ආරම්භ කරන්න</translation>
 <translation id="2775140325783767197">Chrome හට ඔබේ මුරපද පරීක්‍ෂා කළ නොහැක. ඔබේ අන්තර්ජාල සම්බන්ධතාව පරීක්‍ෂා කිරීමට උත්සාහ කරන්න.</translation>
 <translation id="3533694711092285624">සුරැකි මුරපද නැත. ඔබ ඔබේ මුරපද පරීක්‍ෂා කරන විට Chrome හට ඒවා පරීක්‍ෂා කළ හැක.</translation>
+<translation id="543338862236136125">මුරපදය සංස්කරණ කරන්න</translation>
 <translation id="5539342724706569402">රැවටිලිකාර අඩවියක ඇතුළත් කරන ලදි</translation>
 <translation id="6342069812937806050">මේ දැන්</translation>
 <translation id="6407955178761087876">Google සහායකට ඔබට ඔබගේ මුරපදය වෙනස් කිරීමට උදව් වීමට ඉඩ දෙන්න</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sk.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sk.xtb
index ccb493c..dfbe7386 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sk.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sk.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Reštartovať kontrolu hesla</translation>
 <translation id="2775140325783767197">Chrome nemôže skontrolovať heslá. Skontrolujte internetové pripojenie.</translation>
 <translation id="3533694711092285624">Žiadne uložené heslá. Chrome môže skontrolovať heslá, keď ich uložíte.</translation>
+<translation id="543338862236136125">Upraviť heslo</translation>
 <translation id="5539342724706569402">Zadané na klamlivom webe</translation>
 <translation id="6342069812937806050">Práve teraz</translation>
 <translation id="6407955178761087876">Umožnite Asistentovi Google, aby vám pomohol zmeniť heslo</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sl.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sl.xtb
index 374c3dd..857ea9e 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sl.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sl.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Vnovičen zagon preverjanja gesla</translation>
 <translation id="2775140325783767197">Chrome ne more preveriti vaših gesel. Poskusite preveriti internetno povezavo.</translation>
 <translation id="3533694711092285624">Ni shranjenih gesel. Chrome lahko preveri gesla, če jih shranite.</translation>
+<translation id="543338862236136125">Uredi geslo</translation>
 <translation id="5539342724706569402">Vneseno na zavajajočem spletnem mestu</translation>
 <translation id="6342069812937806050">Pravkar</translation>
 <translation id="6407955178761087876">Dovolite, da vam Pomočnik Google pomaga spremeniti geslo</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sq.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sq.xtb
index 6924039e..2d1c0ae 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sq.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sq.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Rinis kontrollin e fjalëkalimit</translation>
 <translation id="2775140325783767197">Chrome nuk mund t'i kontrollojë fjalëkalimet e tua. Provo të kontrollosh lidhjen e internetit.</translation>
 <translation id="3533694711092285624">Nuk ka asnjë fjalëkalim të ruajtur. Chrome mund t'i kontrollojë fjalëkalimet e tua kur ti i ruan ato.</translation>
+<translation id="543338862236136125">Redakto fjalëkalimin</translation>
 <translation id="5539342724706569402">Është futur në një sajt mashtrues</translation>
 <translation id="6342069812937806050">Vetëm tani</translation>
 <translation id="6407955178761087876">Lejo që "Asistenti i Google" të të ndihmojë të ndryshosh fjalëkalimin</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr-Latn.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr-Latn.xtb
index 440aee2..4ca87822 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr-Latn.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr-Latn.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Restartuj proveru lozinke</translation>
 <translation id="2775140325783767197">Chrome ne može da vam proverava lozinke. Proverite internet vezu.</translation>
 <translation id="3533694711092285624">Nema sačuvanih lozinki. Chrome može da proverava lozinke kada ih sačuvate.</translation>
+<translation id="543338862236136125">Izmenite lozinku</translation>
 <translation id="5539342724706569402">Otvoren je obmanjujuć sajt</translation>
 <translation id="6342069812937806050">Malopre</translation>
 <translation id="6407955178761087876">Dozvolite Google pomoćniku da vam pomogne u promeni lozinke</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr.xtb
index 2cc699c..ee5ea26 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sr.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Рестартуј проверу лозинке</translation>
 <translation id="2775140325783767197">Chrome не може да вам проверава лозинке. Проверите интернет везу.</translation>
 <translation id="3533694711092285624">Нема сачуваних лозинки. Chrome може да проверава лозинке када их сачувате.</translation>
+<translation id="543338862236136125">Измените лозинку</translation>
 <translation id="5539342724706569402">Отворен је обмањујућ сајт</translation>
 <translation id="6342069812937806050">Малопре</translation>
 <translation id="6407955178761087876">Дозволите Google помоћнику да вам помогне у промени лозинке</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sv.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sv.xtb
index e7e7cab4..250efb67 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sv.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sv.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Starta om lösenordskontrollen</translation>
 <translation id="2775140325783767197">Chrome kan inte kontrollera dina lösenord. Testa att kontrollera internetanslutningen.</translation>
 <translation id="3533694711092285624">Det finns inga sparade lösenord. Chrome kan bara kontrollera dina lösenord om du sparar dem.</translation>
+<translation id="543338862236136125">Redigera lösenord</translation>
 <translation id="5539342724706569402">Har angetts på en bedräglig webbplats</translation>
 <translation id="6342069812937806050">Alldeles nyss</translation>
 <translation id="6407955178761087876">Tillåt att Google-assistenten hjälper dig att byta lösenord</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sw.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sw.xtb
index f85fca0..6dab8ac 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sw.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_sw.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Anzisha upya ukaguzi wa manenosiri</translation>
 <translation id="2775140325783767197">Chrome imeshindwa kukagua manenosiri yako. Jaribu kuangalia muunganisho wako wa Intaneti.</translation>
 <translation id="3533694711092285624">Hakuna manenosiri yaliyohifadhiwa. Chrome inaweza kukagua manenosiri yako unapoyahifadhi.</translation>
+<translation id="543338862236136125">Badilisha nenosiri</translation>
 <translation id="5539342724706569402">Limewekwa kwenye tovuti inayopotosha</translation>
 <translation id="6342069812937806050">Sasa hivi tu</translation>
 <translation id="6407955178761087876">Ruhusu programu ya Mratibu wa Google ikusaidie kubadilisha nenosiri lako</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb
index 5f99d31..93b0472 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">கடவுச்சொல் சரிபார்ப்பை மீண்டும் தொடங்கும் பட்டன்</translation>
 <translation id="2775140325783767197">Chromeமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை. உங்கள் இணைய இணைப்பைச் சரிபார்க்க முயலவும்.</translation>
 <translation id="3533694711092285624">சேமித்த கடவுச்சொற்கள் எதுவும் இல்லை. நீங்கள் அவற்றைச் சேமிக்கும்போது Chromeமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியும்.</translation>
+<translation id="543338862236136125">கடவுச்சொல்லை மாற்று</translation>
 <translation id="5539342724706569402">ஏமாற்றக்கூடிய தளத்தில் கடவுச்சொல்லை உள்ளிட்டுள்ளீர்கள்</translation>
 <translation id="6342069812937806050">இப்போது</translation>
 <translation id="6407955178761087876">உங்கள் கடவுச்சொல்லை மாற்ற உதவுவதற்கு Google Assistantடை அனுமதியுங்கள்</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb
index f09b30e..c3e0e08 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">పాస్‌వర్డ్ తనిఖీని రీస్టార్ట్ చేయండి</translation>
 <translation id="2775140325783767197">Chrome మీ పాస్‌వర్డ్‌లను చెక్ చేయలేకపోయింది. మీ ఇంటర్నెట్ కనెక్షన్ సరిచూసుకుని, తర్వాత ట్రై చేయండి.</translation>
 <translation id="3533694711092285624">సేవ్ చేసిన పాస్‌వర్డ్‌లు లేవు. మీరు మీ పాస్‌వర్డ్‌లను సేవ్ చేసినప్పుడు Chrome వాటిని చెక్ చేయగలదు.</translation>
+<translation id="543338862236136125">పాస్‌వర్డ్‌ను సవరించు</translation>
 <translation id="5539342724706569402">మోసపూరిత సైట్‌లోకి ప్రవేశించారు</translation>
 <translation id="6342069812937806050">ఇప్పుడే</translation>
 <translation id="6407955178761087876">మీ పాస్‌వర్డ్‌ను మార్చడంలో Google Assistantను మీకు సహాయం చేయనివ్వండి</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_th.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_th.xtb
index 295f3e8..2934928 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_th.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_th.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">รีสตาร์ทการตรวจสอบรหัสผ่าน</translation>
 <translation id="2775140325783767197">Chrome ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดลองตรวจสอบการเชื่อมต่ออินเทอร์เน็ต</translation>
 <translation id="3533694711092285624">ไม่มีรหัสผ่านที่บันทึกไว้ Chrome จะตรวจสอบรหัสผ่านได้เมื่อคุณบันทึกรหัสผ่านไว้</translation>
+<translation id="543338862236136125">แก้ไขรหัสผ่าน</translation>
 <translation id="5539342724706569402">มีการป้อนในเว็บไซต์ที่หลอกลวง</translation>
 <translation id="6342069812937806050">เพิ่งเสร็จ</translation>
 <translation id="6407955178761087876">ให้ Google Assistant ช่วยคุณเปลี่ยนรหัสผ่าน</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_tr.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_tr.xtb
index e6c0c5a..ba36f6b 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_tr.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_tr.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Şifre kontrolünü yeniden başlat</translation>
 <translation id="2775140325783767197">Chrome, şifrelerinizi kontrol edemiyor. İnternet bağlantınızı kontrol etmeyi deneyin.</translation>
 <translation id="3533694711092285624">Kaydedilen şifre yok. Kaydetmeniz halinde Chrome, şifrelerinizi kontrol edebilir.</translation>
+<translation id="543338862236136125">Şifreyi düzenle</translation>
 <translation id="5539342724706569402">Yanıltıcı bir sitede girildi</translation>
 <translation id="6342069812937806050">Az önce</translation>
 <translation id="6407955178761087876">Google Asistan'ın şifrenizi değiştirmenize yardımcı olmasına izin verin</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uk.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uk.xtb
index 2191c152..dc32545 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uk.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uk.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Перезапустити перевірку пароля</translation>
 <translation id="2775140325783767197">Chrome не може перевірити паролі. Перевірте інтернет-з'єднання.</translation>
 <translation id="3533694711092285624">Немає збережених паролів. Chrome зможе перевірити ваші паролі, коли ви їх збережете.</translation>
+<translation id="543338862236136125">Змінити пароль</translation>
 <translation id="5539342724706569402">Введено на оманливому сайті</translation>
 <translation id="6342069812937806050">Лише зараз</translation>
 <translation id="6407955178761087876">Google Асистент може допомогти вам змінити пароль</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ur.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ur.xtb
index 3bf28258..64202ce3 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ur.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ur.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">پاس ورڈ چیک کو ری سٹارٹ کریں</translation>
 <translation id="2775140325783767197">‏Chrome آپ کے پاس ورڈز چیک نہیں کر سکتا ہے۔ اپنا انٹرنیٹ کنکشن چیک کرنے کی کوشش کریں۔</translation>
 <translation id="3533694711092285624">‏کوئی محفوظ کردہ پاس ورڈز نہیں۔ جب آپ پاس ورڈز کو محفوظ کرتے ہیں تو Chrome انہیں چیک کر سکتا ہے۔</translation>
+<translation id="543338862236136125">پاس ورڈ میں ترمیم کریں</translation>
 <translation id="5539342724706569402">ایک فریب کار سائٹ میں داخل ہو گئے</translation>
 <translation id="6342069812937806050">ابھی ابھی</translation>
 <translation id="6407955178761087876">‏Google اسسٹنٹ کو اپنا پاس ورڈ تبدیل کرنے میں آپ کی مدد کرنے دیں</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uz.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uz.xtb
index 5d65d03..fd909da 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uz.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_uz.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Parollar tekshiruvini qayta ishga tushirish</translation>
 <translation id="2775140325783767197">Chrome parollaringizni tekshira olmadi. Internet aloqasini tekshiring.</translation>
 <translation id="3533694711092285624">Hech qanday parol saqlanmagan. Chrome faqat saqlangan parollaringizni tekshira oladi.</translation>
+<translation id="543338862236136125">Parolni almashtirish</translation>
 <translation id="5539342724706569402">Qalbaki saytga kiritilgan</translation>
 <translation id="6342069812937806050">Hozirgina</translation>
 <translation id="6407955178761087876">Parolingizni Google Assistent almashtirishiga ruxsat bering</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_vi.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_vi.xtb
index e4b0c79e..98476207 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_vi.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_vi.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Bắt đầu lại quá trình kiểm tra mật khẩu</translation>
 <translation id="2775140325783767197">Chrome không thể kiểm tra mật khẩu của bạn. Hãy thử kiểm tra kết nối Internet.</translation>
 <translation id="3533694711092285624">Bạn chưa lưu mật khẩu nào. Chrome có thể kiểm tra các mật khẩu của bạn khi bạn lưu các mật khẩu đó.</translation>
+<translation id="543338862236136125">Chỉnh sửa mật khẩu</translation>
 <translation id="5539342724706569402">Đã được nhập trên một trang web lừa đảo</translation>
 <translation id="6342069812937806050">Vừa mới</translation>
 <translation id="6407955178761087876">Cho phép Trợ lý Google giúp bạn đổi mật khẩu</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb
index f185a11..b1beb0c 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">重启密码检查</translation>
 <translation id="2775140325783767197">Chrome 无法检查您的密码。请检查您的互联网连接。</translation>
 <translation id="3533694711092285624">尚未保存任何密码。您需要先保存密码才能使用 Chrome 的密码检查功能。</translation>
+<translation id="543338862236136125">修改密码</translation>
 <translation id="5539342724706569402">在诈骗网站上输入过</translation>
 <translation id="6342069812937806050">刚刚</translation>
 <translation id="6407955178761087876">让 Google 助理帮您更改密码</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-HK.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-HK.xtb
index 32d2477..d96e650d 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-HK.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-HK.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">重新開始密碼檢查</translation>
 <translation id="2775140325783767197">Chrome 無法檢查密碼,請檢查互聯網連線。</translation>
 <translation id="3533694711092285624">沒有已儲存的密碼。儲存密碼時,Chrome 可檢查您的密碼。</translation>
+<translation id="543338862236136125">修改密碼</translation>
 <translation id="5539342724706569402">已在欺詐網站上輸入</translation>
 <translation id="6342069812937806050">剛剛完成</translation>
 <translation id="6407955178761087876">讓「Google 助理」助您變更密碼</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-TW.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-TW.xtb
index c48f435..6d97ba2 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-TW.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-TW.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">重新啟動密碼檢查流程</translation>
 <translation id="2775140325783767197">Chrome 無法檢查你的密碼,請查看你的網際網路連線狀態。</translation>
 <translation id="3533694711092285624">未儲存任何密碼。你必須先儲存密碼,才能使用 Chrome 的密碼檢查功能。</translation>
+<translation id="543338862236136125">修改密碼</translation>
 <translation id="5539342724706569402">已在詐騙網站上輸入</translation>
 <translation id="6342069812937806050">剛剛</translation>
 <translation id="6407955178761087876">讓 Google 助理協助你變更密碼</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zu.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zu.xtb
index 0e23a886..de9eb5e 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zu.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zu.xtb
@@ -6,6 +6,7 @@
 <translation id="2670599755795384625">Qala kabusha ukuhlola iphasiwedi</translation>
 <translation id="2775140325783767197">I-Chrome ayikwazi ukuhlola amaphasiwedi akho. Zama ukuhlola ukuxhumeka kwakho ku-inthanethi.</translation>
 <translation id="3533694711092285624">Awekho amaphasiwedi alondoloziwe. I-Chrome ingahlola amaphasiwedi akho uma uwalondolozile.</translation>
+<translation id="543338862236136125">Hlela iphasiwedi</translation>
 <translation id="5539342724706569402">Kufakwe kusayithi ekhohlisayo</translation>
 <translation id="6342069812937806050">Khona manje</translation>
 <translation id="6407955178761087876">Vumela Umsizi we-Google akusize ngokushintsha iphasiwedi yakho</translation>
diff --git a/chrome/browser/policy/messaging_layer/encryption/decryption.cc b/chrome/browser/policy/messaging_layer/encryption/decryption.cc
new file mode 100644
index 0000000..38ba5c68
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/decryption.cc
@@ -0,0 +1,91 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <string>
+
+#include "base/hash/hash.h"
+#include "base/strings/strcat.h"
+#include "base/task/post_task.h"
+#include "base/task_runner.h"
+#include "chrome/browser/policy/messaging_layer/encryption/decryption.h"
+
+namespace reporting {
+
+DecryptorBase::Handle::Handle(scoped_refptr<DecryptorBase> decryptor)
+    : decryptor_(decryptor) {}
+
+DecryptorBase::Handle::~Handle() = default;
+
+DecryptorBase::DecryptorBase()
+    : keys_sequenced_task_runner_(base::ThreadPool::CreateSequencedTaskRunner(
+          {base::TaskPriority::BEST_EFFORT, base::MayBlock()})) {
+  DETACH_FROM_SEQUENCE(keys_sequence_checker_);
+}
+
+DecryptorBase::~DecryptorBase() = default;
+
+void DecryptorBase::RecordKeyPair(base::StringPiece private_key,
+                                  base::StringPiece public_key,
+                                  base::OnceCallback<void(Status)> cb) {
+  // Schedule key recording on the sequenced task runner.
+  keys_sequenced_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          [](std::string public_key, KeyInfo key_info,
+             base::OnceCallback<void(Status)> cb,
+             scoped_refptr<DecryptorBase> decryptor) {
+            DCHECK_CALLED_ON_VALID_SEQUENCE(decryptor->keys_sequence_checker_);
+            Status result;
+            if (!decryptor->keys_
+                     .emplace(base::PersistentHash(public_key.data(),
+                                                   public_key.size()),
+                              key_info)
+                     .second) {
+              result = Status(error::ALREADY_EXISTS,
+                              base::StrCat({"Public key='", public_key,
+                                            "' already recorded"}));
+            }
+            // Schedule response on a generic thread pool.
+            base::ThreadPool::PostTask(
+                FROM_HERE,
+                base::BindOnce([](base::OnceCallback<void(Status)> cb,
+                                  Status result) { std::move(cb).Run(result); },
+                               std::move(cb), result));
+          },
+          std::string(public_key),
+          KeyInfo{.private_key = std::string(private_key),
+                  .time_stamp = base::Time::Now()},
+          std::move(cb), base::WrapRefCounted(this)));
+}
+
+void DecryptorBase::RetrieveMatchingPrivateKey(
+    uint32_t public_key_id,
+    base::OnceCallback<void(StatusOr<std::string>)> cb) {
+  // Schedule key retrieval on the sequenced task runner.
+  keys_sequenced_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          [](uint32_t public_key_id,
+             base::OnceCallback<void(StatusOr<std::string>)> cb,
+             scoped_refptr<DecryptorBase> decryptor) {
+            DCHECK_CALLED_ON_VALID_SEQUENCE(decryptor->keys_sequence_checker_);
+            auto key_info_it = decryptor->keys_.find(public_key_id);
+            // Schedule response on a generic thread pool.
+            base::ThreadPool::PostTask(
+                FROM_HERE,
+                base::BindOnce(
+                    [](base::OnceCallback<void(StatusOr<std::string>)> cb,
+                       StatusOr<std::string> result) {
+                      std::move(cb).Run(result);
+                    },
+                    std::move(cb),
+                    key_info_it == decryptor->keys_.end()
+                        ? StatusOr<std::string>(Status(
+                              error::NOT_FOUND, "Matching key not found"))
+                        : key_info_it->second.private_key));
+          },
+          public_key_id, std::move(cb), base::WrapRefCounted(this)));
+}
+
+}  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/encryption/decryption.h b/chrome/browser/policy/messaging_layer/encryption/decryption.h
new file mode 100644
index 0000000..676e744
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/decryption.h
@@ -0,0 +1,109 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_DECRYPTION_H_
+#define CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_DECRYPTION_H_
+
+#include <string>
+
+#include "base/callback.h"
+#include "base/containers/flat_map.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/strings/string_piece.h"
+#include "base/threading/thread.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+
+namespace reporting {
+
+// Interface to the encryption.
+// Instantiated by an implementation-specific factory:
+//   StatusOr<scoped_refptr<DecryptorBase>> Create(
+//       implementation-specific parameters);
+// The implementation class should never be used directly by the server code.
+// Note: Production implementation should be written or enclosed in Java code
+// for the server to use.
+class DecryptorBase : public base::RefCountedThreadSafe<DecryptorBase> {
+ public:
+  // Decryption record handle, which is created by |OpenRecord| and can accept
+  // pieces of data to be decrypted as one record by calling |AddToRecord|
+  // multiple times. Resulting decrypted record is available once |CloseRecord|
+  // is called.
+  class Handle {
+   public:
+    // Adds piece of data to the record.
+    virtual void AddToRecord(base::StringPiece data,
+                             base::OnceCallback<void(Status)> cb) = 0;
+
+    // Closes and attempts to decrypt the record. Hands over the decrypted data
+    // to be processed by the server (or Status if unsuccessful). Accesses key
+    // store to attempt all private keys that are considered to be valid,
+    // starting with the one that matches the hash. Self-destructs after the
+    // callback.
+    virtual void CloseRecord(
+        base::OnceCallback<void(StatusOr<base::StringPiece>)> cb) = 0;
+
+   protected:
+    explicit Handle(scoped_refptr<DecryptorBase> decryptor);
+
+    // Destructor is non-public, because the object can only self-destruct by
+    // |CloseRecord|.
+    virtual ~Handle();
+
+    DecryptorBase* decryptor() const { return decryptor_.get(); }
+
+   private:
+    scoped_refptr<DecryptorBase> decryptor_;
+  };
+
+  // Factory method creates new record to collect data and decrypt them with the
+  // given encrypted key. Hands the handle raw pointer over to the callback, or
+  // error status (e.g., “decryption is not enabled yet”)
+  virtual void OpenRecord(base::StringPiece encrypted_key,
+                          base::OnceCallback<void(StatusOr<Handle*>)> cb) = 0;
+
+  // Decrypts symmetric key with asymmetric private key and returns unencrypted
+  // key or error status (e.g., “decryption is not enabled yet”)
+  virtual StatusOr<std::string> DecryptKey(base::StringPiece public_key,
+                                           base::StringPiece encrypted_key) = 0;
+
+  // Records a key pair (store only private key).
+  // Executes on a sequenced thread, returns with callback.
+  void RecordKeyPair(base::StringPiece private_key,
+                     base::StringPiece public_key,
+                     base::OnceCallback<void(Status)> cb);
+
+  // Retrieves private key matching the public key hash.
+  // Executes on a sequenced thread, returns with callback.
+  void RetrieveMatchingPrivateKey(
+      uint32_t public_key_id,
+      base::OnceCallback<void(StatusOr<std::string>)> cb);
+
+ protected:
+  DecryptorBase();
+  virtual ~DecryptorBase();
+
+ private:
+  friend base::RefCountedThreadSafe<DecryptorBase>;
+
+  // Map of hash(public_key)->{public key, private key, time stamp}
+  // Private key is located by the hash of a public key, sent together with the
+  // encrypted record. Keys older than pre-defined threshold are discarded.
+  struct KeyInfo {
+    std::string private_key;
+    base::Time time_stamp;
+  };
+  base::flat_map<uint32_t, KeyInfo> keys_;
+
+  // Sequential task runner for all keys_ activities: recording, lookup, purge.
+  scoped_refptr<base::SequencedTaskRunner> keys_sequenced_task_runner_;
+
+  SEQUENCE_CHECKER(keys_sequence_checker_);
+};
+
+}  // namespace reporting
+
+#endif  // CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_DECRYPTION_H_
diff --git a/chrome/browser/policy/messaging_layer/encryption/encryption.cc b/chrome/browser/policy/messaging_layer/encryption/encryption.cc
new file mode 100644
index 0000000..623ff6a
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/encryption.cc
@@ -0,0 +1,100 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <string>
+#include <utility>
+
+#include "base/hash/hash.h"
+#include "base/task/post_task.h"
+#include "base/task_runner.h"
+#include "chrome/browser/policy/messaging_layer/encryption/encryption.h"
+
+namespace reporting {
+
+EncryptorBase::Handle::Handle(scoped_refptr<EncryptorBase> encryptor)
+    : encryptor_(encryptor) {}
+
+EncryptorBase::Handle::~Handle() = default;
+
+EncryptorBase::EncryptorBase()
+    : asymmetric_key_sequenced_task_runner_(
+          base::ThreadPool::CreateSequencedTaskRunner(
+              {base::TaskPriority::BEST_EFFORT, base::MayBlock()})) {
+  DETACH_FROM_SEQUENCE(asymmetric_key_sequence_checker_);
+}
+
+EncryptorBase::~EncryptorBase() = default;
+
+void EncryptorBase::UpdateAsymmetricKey(
+    base::StringPiece new_key,
+    base::OnceCallback<void(Status)> response_cb) {
+  if (new_key.empty()) {
+    std::move(response_cb)
+        .Run(Status(error::INVALID_ARGUMENT, "Provided key is empty"));
+    return;
+  }
+
+  // Schedule key update on the sequenced task runner.
+  asymmetric_key_sequenced_task_runner_->PostTask(
+      FROM_HERE, base::BindOnce(
+                     [](base::StringPiece new_key,
+                        scoped_refptr<EncryptorBase> encryptor) {
+                       encryptor->asymmetric_key_ = std::string(new_key);
+                     },
+                     new_key, base::WrapRefCounted(this)));
+
+  // Response OK not waiting for the update.
+  std::move(response_cb).Run(Status::StatusOK());
+}
+
+void EncryptorBase::RetrieveAsymmetricKey(
+    base::OnceCallback<void(StatusOr<std::string>)> cb) {
+  // Schedule key retrueval on the sequenced task runner.
+  asymmetric_key_sequenced_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          [](base::OnceCallback<void(StatusOr<std::string>)> cb,
+             scoped_refptr<EncryptorBase> encryptor) {
+            DCHECK_CALLED_ON_VALID_SEQUENCE(
+                encryptor->asymmetric_key_sequence_checker_);
+            StatusOr<std::string> response;
+            // Schedule response on regular thread pool.
+            base::ThreadPool::PostTask(
+                FROM_HERE,
+                base::BindOnce(
+                    [](base::OnceCallback<void(StatusOr<std::string>)> cb,
+                       StatusOr<std::string> response) {
+                      std::move(cb).Run(response);
+                    },
+                    std::move(cb),
+                    !encryptor->asymmetric_key_.has_value()
+                        ? StatusOr<std::string>(Status(
+                              error::NOT_FOUND, "Asymmetric key not set"))
+                        : encryptor->asymmetric_key_.value()));
+          },
+          std::move(cb), base::WrapRefCounted(this)));
+}
+
+void EncryptorBase::EncryptKey(
+    base::StringPiece symmetric_key,
+    base::OnceCallback<void(StatusOr<std::pair<uint32_t, std::string>>)> cb) {
+  RetrieveAsymmetricKey(base::BindOnce(
+      [](base::StringPiece symmetric_key,
+         scoped_refptr<EncryptorBase> encryptor,
+         base::OnceCallback<void(StatusOr<std::pair<uint32_t, std::string>>)>
+             cb,
+         StatusOr<std::string> asymmetric_key_result) {
+        if (!asymmetric_key_result.ok()) {
+          std::move(cb).Run(asymmetric_key_result.status());
+          return;
+        }
+        const auto& asymmetric_key = asymmetric_key_result.ValueOrDie();
+        std::move(cb).Run(std::make_pair(
+            base::PersistentHash(asymmetric_key),
+            encryptor->EncryptSymmetricKey(symmetric_key, asymmetric_key)));
+      },
+      std::string(symmetric_key), base::WrapRefCounted(this), std::move(cb)));
+}
+
+}  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/encryption/encryption.h b/chrome/browser/policy/messaging_layer/encryption/encryption.h
new file mode 100644
index 0000000..fe1d55d4
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/encryption.h
@@ -0,0 +1,107 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_ENCRYPTION_H_
+#define CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_ENCRYPTION_H_
+
+#include <string>
+#include <utility>
+
+#include "base/callback.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/optional.h"
+#include "base/strings/string_piece.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+#include "components/policy/proto/record.pb.h"
+
+namespace reporting {
+
+// Interface to the encryption.
+// Instantiated by an implementation-specific factory:
+//   StatusOr<scoped_refptr<EncryptorBase>> Create(
+//       implementation-specific parameters);
+// The implementation class should never be used directly by the client code.
+class EncryptorBase : public base::RefCountedThreadSafe<EncryptorBase> {
+ public:
+  // Encryption record handle, which is created by |OpenRecord| and can accept
+  // pieces of data to be encrypted as one record by calling |AddToRecord|
+  // multiple times. Resulting encrypted record is available once |CloseRecord|
+  // is called.
+  class Handle {
+   public:
+    // Adds piece of data to the record.
+    virtual void AddToRecord(base::StringPiece data,
+                             base::OnceCallback<void(Status)> cb) = 0;
+
+    // Closes and encrypts the record, hands over the data (encrypted with
+    // symmetric key) and the key (encrypted with asymmetric key) to be recorded
+    // by the client (or Status if unsuccessful). Self-destructs after the
+    // callback.
+    virtual void CloseRecord(
+        base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb) = 0;
+
+   protected:
+    explicit Handle(scoped_refptr<EncryptorBase> encryptor);
+
+    // Destructor is non-public, because the object can only self-destruct by
+    // |CloseRecord|.
+    virtual ~Handle();
+
+    EncryptorBase* encryptor() const { return encryptor_.get(); }
+
+   private:
+    scoped_refptr<EncryptorBase> encryptor_;
+  };
+
+  // Delivers public asymmetric key to the implementation.
+  // To affect specific record, must happen before Handle::CloseRecord
+  // (it is OK to do it after OpenRecord and Handle::AddToRecord).
+  // Executes on a sequenced thread, returns with callback.
+  void UpdateAsymmetricKey(base::StringPiece new_key,
+                           base::OnceCallback<void(Status)> response_cb);
+
+  // Factory method creates new record to collect data and encrypt them.
+  // Hands the Handle raw pointer over to the callback, or error status
+  // (e.g., “encryption is not enabled yet”).
+  virtual void OpenRecord(base::OnceCallback<void(StatusOr<Handle*>)> cb) = 0;
+
+  // Encrypts symmetric key with asymmetric public key, returns encrypted key
+  // and the hash of the public key used or error status (e.g., “decryption is
+  // not enabled yet”)
+  void EncryptKey(
+      base::StringPiece key,
+      base::OnceCallback<void(StatusOr<std::pair<uint32_t, std::string>>)> cb);
+
+ protected:
+  EncryptorBase();
+  virtual ~EncryptorBase();
+
+ private:
+  friend class base::RefCountedThreadSafe<EncryptorBase>;
+
+  // Synchronously encrypts symmetric key with asymmetric.
+  // Called by |EncryptKey|.
+  virtual std::string EncryptSymmetricKey(base::StringPiece symmetric_key,
+                                          base::StringPiece asymmetric_key) = 0;
+
+  // Retrieves the current public key.
+  // Executes on a sequenced thread, returns with callback.
+  void RetrieveAsymmetricKey(
+      base::OnceCallback<void(StatusOr<std::string>)> cb);
+
+  // Public key used for asymmetric encryption of symmetric key.
+  base::Optional<std::string> asymmetric_key_;
+
+  // Sequential task runner for all asymmetric_key_ activities: update, read.
+  scoped_refptr<base::SequencedTaskRunner>
+      asymmetric_key_sequenced_task_runner_;
+
+  SEQUENCE_CHECKER(asymmetric_key_sequence_checker_);
+};
+
+}  // namespace reporting
+
+#endif  // CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_ENCRYPTION_H_
diff --git a/chrome/browser/policy/messaging_layer/encryption/fake_decryption.cc b/chrome/browser/policy/messaging_layer/encryption/fake_decryption.cc
new file mode 100644
index 0000000..637e395
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/fake_decryption.cc
@@ -0,0 +1,93 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/policy/messaging_layer/encryption/fake_decryption.h"
+
+#include "base/memory/ptr_util.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+
+namespace reporting {
+namespace test {
+
+namespace {
+// Decryption record handle for FakeDecryptor.
+class MockRecordHandle : public DecryptorBase::Handle {
+ public:
+  explicit MockRecordHandle(base::StringPiece symmetric_key,
+                            scoped_refptr<DecryptorBase> decryptor)
+      : Handle(decryptor), symmetric_key_(symmetric_key) {}
+
+  MockRecordHandle(const MockRecordHandle& other) = delete;
+  MockRecordHandle& operator=(const MockRecordHandle& other) = delete;
+
+  void AddToRecord(base::StringPiece data,
+                   base::OnceCallback<void(Status)> cb) override {
+    // Decrypt data by XORing every byte with the bytes of symmetric key and add
+    // to the record.
+    record_.reserve(record_.size() + data.size());
+    size_t key_i = 0;
+    for (const auto& data_byte : data) {
+      record_.push_back(data_byte ^ symmetric_key_[key_i++]);
+      if (key_i >= symmetric_key_.size()) {
+        key_i = 0;
+      }
+    }
+    std::move(cb).Run(Status::StatusOK());
+  }
+
+  void CloseRecord(
+      base::OnceCallback<void(StatusOr<base::StringPiece>)> cb) override {
+    std::move(cb).Run(record_);
+    delete this;
+  }
+
+ private:
+  // Symmetric key.
+  const std::string symmetric_key_;
+
+  // Accumulated decrypted data.
+  std::string record_;
+};
+
+}  // namespace
+
+StatusOr<scoped_refptr<DecryptorBase>> FakeDecryptor::Create() {
+  return base::WrapRefCounted(new FakeDecryptor());
+}
+
+FakeDecryptor::FakeDecryptor() = default;
+FakeDecryptor::~FakeDecryptor() = default;
+
+void FakeDecryptor::OpenRecord(base::StringPiece encrypted_key,
+                               base::OnceCallback<void(StatusOr<Handle*>)> cb) {
+  std::move(cb).Run(new MockRecordHandle(encrypted_key, this));
+}
+
+StatusOr<std::string> FakeDecryptor::DecryptKey(
+    base::StringPiece private_key,
+    base::StringPiece encrypted_key) {
+  if (private_key.empty()) {
+    return Status{error::FAILED_PRECONDITION, "Private key not provided"};
+  }
+  // Decrypt symmetric key.
+  // Private key is assumed to be a reverse string to the public key.
+  // If symmetric key was encrypted XORing bytes with a public key "012",
+  // decryption will use private key "210" and XOR will be from the last to the
+  // first bytes.
+  std::string unencrypted_key;
+  unencrypted_key.reserve(encrypted_key.size());
+  size_t key_i = 0;
+  for (const auto& key_byte : encrypted_key) {
+    unencrypted_key.push_back(key_byte ^
+                              private_key[private_key.size() - ++key_i]);
+    if (key_i >= private_key.size()) {
+      key_i = 0;
+    }
+  }
+  return unencrypted_key;
+}
+
+}  // namespace test
+}  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/encryption/fake_decryption.h b/chrome/browser/policy/messaging_layer/encryption/fake_decryption.h
new file mode 100644
index 0000000..5c5bd06
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/fake_decryption.h
@@ -0,0 +1,47 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_FAKE_DECRYPTION_H_
+#define CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_FAKE_DECRYPTION_H_
+
+#include <string>
+
+#include "base/callback.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/optional.h"
+#include "base/strings/string_piece.h"
+#include "chrome/browser/policy/messaging_layer/encryption/decryption.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+
+namespace reporting {
+namespace test {
+
+// Fake implementation of DecryptorBase, intended for use in tests of
+// reporting client.
+// Key decryption with asymmetric private key is done by per-byte XOR in reverse
+// order: public and private key are reverse, so if the encryption used XOR with
+// public key "012", decryption will use private key "210" and XOR will be from
+// the last to the first bytes.
+// Record decryption with symmetric key is done by per-byte XOR.
+class FakeDecryptor : public DecryptorBase {
+ public:
+  // Factory method
+  static StatusOr<scoped_refptr<DecryptorBase>> Create();
+
+  void OpenRecord(base::StringPiece encrypted_key,
+                  base::OnceCallback<void(StatusOr<Handle*>)> cb) override;
+
+  StatusOr<std::string> DecryptKey(base::StringPiece private_key,
+                                   base::StringPiece encrypted_key) override;
+
+ private:
+  FakeDecryptor();
+  ~FakeDecryptor() override;
+};
+
+}  // namespace test
+}  // namespace reporting
+
+#endif  // CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_FAKE_DECRYPTION_H_
diff --git a/chrome/browser/policy/messaging_layer/encryption/fake_encryption.cc b/chrome/browser/policy/messaging_layer/encryption/fake_encryption.cc
new file mode 100644
index 0000000..8b1bdaa
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/fake_encryption.cc
@@ -0,0 +1,113 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/policy/messaging_layer/encryption/fake_encryption.h"
+
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/hash/hash.h"
+#include "base/memory/ptr_util.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+#include "crypto/random.h"
+
+namespace reporting {
+namespace test {
+
+namespace {
+// Encryption record handle for FakeEncryptor.
+class MockRecordHandle : public EncryptorBase::Handle {
+ public:
+  explicit MockRecordHandle(base::StringPiece symmetric_key,
+                            scoped_refptr<EncryptorBase> encryptor)
+      : Handle(encryptor), symmetric_key_(symmetric_key) {}
+
+  MockRecordHandle(const MockRecordHandle& other) = delete;
+  MockRecordHandle& operator=(const MockRecordHandle& other) = delete;
+
+  void AddToRecord(base::StringPiece data,
+                   base::OnceCallback<void(Status)> cb) override {
+    // Encrypt new data by XORing every byte with the symmetric key and add to
+    // the encrypted record.
+    record_.reserve(record_.size() + data.size());
+    size_t key_i = 0;
+    for (const auto& data_byte : data) {
+      record_.push_back(data_byte ^ symmetric_key_[key_i++]);
+      if (key_i >= symmetric_key_.size()) {
+        key_i = 0;
+      }
+    }
+    std::move(cb).Run(Status::StatusOK());
+  }
+
+  void CloseRecord(
+      base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb) override {
+    encryptor()->EncryptKey(
+        symmetric_key_,
+        base::BindOnce(
+            [](MockRecordHandle* handle,
+               base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb,
+               StatusOr<std::pair<uint32_t, std::string>>
+                   encrypted_key_result) {
+              if (!encrypted_key_result.ok()) {
+                std::move(cb).Run(encrypted_key_result.status());
+              } else {
+                EncryptedRecord encrypted_record;
+                encrypted_record.mutable_encryption_info()->set_public_key_id(
+                    encrypted_key_result.ValueOrDie().first);
+                encrypted_record.mutable_encryption_info()->set_encryption_key(
+                    encrypted_key_result.ValueOrDie().second);
+                encrypted_record.set_encrypted_wrapped_record(handle->record_);
+                std::move(cb).Run(encrypted_record);
+              }
+              delete handle;
+            },
+            base::Unretained(this),  // will self-destruct.
+            std::move(cb)));
+  }
+
+ private:
+  // Symmetric key.
+  const std::string symmetric_key_;
+
+  // Accumulated encrypted data.
+  std::string record_;
+};
+
+}  // namespace
+
+StatusOr<scoped_refptr<EncryptorBase>> FakeEncryptor::Create() {
+  return base::WrapRefCounted(new FakeEncryptor());
+}
+
+FakeEncryptor::FakeEncryptor() = default;
+FakeEncryptor::~FakeEncryptor() = default;
+
+void FakeEncryptor::OpenRecord(base::OnceCallback<void(StatusOr<Handle*>)> cb) {
+  // For fake implementation just generate random byte string.
+  constexpr size_t symmetric_key_size = 8;
+  char symmetric_key[8];
+  crypto::RandBytes(symmetric_key, symmetric_key_size);
+  std::move(cb).Run(new MockRecordHandle(
+      std::string(symmetric_key, symmetric_key_size), this));
+}
+
+std::string FakeEncryptor::EncryptSymmetricKey(
+    base::StringPiece symmetric_key,
+    base::StringPiece asymmetric_key) {
+  // Encrypt symmetric key with public asymmetric one: XOR byte by byte.
+  std::string encrypted_key;
+  encrypted_key.reserve(symmetric_key.size());
+  size_t asymmetric_i = 0;
+  for (const auto& key_byte : symmetric_key) {
+    encrypted_key.push_back(key_byte ^ asymmetric_key[asymmetric_i++]);
+    if (asymmetric_i >= asymmetric_key.size()) {
+      asymmetric_i = 0;
+    }
+  }
+  return encrypted_key;
+}
+
+}  // namespace test
+}  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/encryption/fake_encryption.h b/chrome/browser/policy/messaging_layer/encryption/fake_encryption.h
new file mode 100644
index 0000000..dd5b262
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/fake_encryption.h
@@ -0,0 +1,43 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_FAKE_ENCRYPTION_H_
+#define CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_FAKE_ENCRYPTION_H_
+
+#include <string>
+
+#include "base/callback.h"
+#include "base/hash/hash.h"
+#include "base/memory/ref_counted.h"
+#include "base/strings/string_piece.h"
+#include "chrome/browser/policy/messaging_layer/encryption/encryption.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+
+namespace reporting {
+namespace test {
+
+// Fake implementation of EncryptorBase, intended for use in tests of
+// reporting client.
+// Record encryption with symmetric key is done by per-byte XOR.
+// Key encryption with asymmetric public key is also done by per-byte XOR.
+class FakeEncryptor : public EncryptorBase {
+ public:
+  // Factory method
+  static StatusOr<scoped_refptr<EncryptorBase>> Create();
+
+  void OpenRecord(base::OnceCallback<void(StatusOr<Handle*>)> cb) override;
+
+ private:
+  FakeEncryptor();
+  ~FakeEncryptor() override;
+
+  std::string EncryptSymmetricKey(base::StringPiece symmetric_key,
+                                  base::StringPiece asymmetric_key) override;
+};
+
+}  // namespace test
+}  // namespace reporting
+
+#endif  // CHROME_BROWSER_POLICY_MESSAGING_LAYER_ENCRYPTION_FAKE_ENCRYPTION_H_
diff --git a/chrome/browser/policy/messaging_layer/encryption/fake_encryption_unittest.cc b/chrome/browser/policy/messaging_layer/encryption/fake_encryption_unittest.cc
new file mode 100644
index 0000000..777497f
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/encryption/fake_encryption_unittest.cc
@@ -0,0 +1,599 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/policy/messaging_layer/encryption/fake_encryption.h"
+#include "base/bind.h"
+#include "base/containers/flat_map.h"
+#include "base/hash/hash.h"
+#include "base/rand_util.h"
+#include "base/strings/strcat.h"
+#include "base/synchronization/waitable_event.h"
+#include "base/test/task_environment.h"
+#include "base/time/time.h"
+#include "chrome/browser/policy/messaging_layer/encryption/fake_decryption.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/status_macros.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+#include "components/policy/proto/record.pb.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace reporting {
+namespace {
+
+// Usage (in tests only):
+//
+//   TestEvent<ResType> e;
+//   ... Do some async work passing e.cb() as a completion callback of
+//       base::OnceCallback<void(ResType* res)> type which also may perform
+//       some other action specified by |done| callback provided by the caller.
+//   ... = e.result();  // Will wait for e.cb() to be called and return the
+//                      // collected result.
+//
+// Or, when the callback is not expected to be invoked:
+//
+//   TestEvent<ResType> e(/*expected_to_complete=*/false);
+//   ... Start work passing e.cb() as a completion callback,
+//       which will not happen.
+//
+template <typename ResType>
+class TestEvent {
+ public:
+  explicit TestEvent(bool expected_to_complete = true)
+      : expected_to_complete_(expected_to_complete),
+        completed_(base::WaitableEvent::ResetPolicy::MANUAL,
+                   base::WaitableEvent::InitialState::NOT_SIGNALED) {}
+  ~TestEvent() {
+    if (expected_to_complete_) {
+      EXPECT_TRUE(completed_.IsSignaled()) << "Not responded";
+    } else {
+      EXPECT_FALSE(completed_.IsSignaled()) << "Responded";
+    }
+  }
+  TestEvent(const TestEvent& other) = delete;
+  TestEvent& operator=(const TestEvent& other) = delete;
+  ResType result() {
+    completed_.Wait();
+    return std::forward<ResType>(result_);
+  }
+
+  // Completion callback to hand over to the processing method.
+  base::OnceCallback<void(ResType res)> cb() {
+    DCHECK(!completed_.IsSignaled());
+    return base::BindOnce(
+        [](base::WaitableEvent* completed, ResType* result, ResType res) {
+          *result = std::forward<ResType>(res);
+          completed->Signal();
+        },
+        base::Unretained(&completed_), base::Unretained(&result_));
+  }
+
+ private:
+  bool expected_to_complete_;
+  base::WaitableEvent completed_;
+  ResType result_;
+};
+
+class FakeEncryptionTest : public ::testing::Test {
+ protected:
+  FakeEncryptionTest() = default;
+
+  void SetUp() override {
+    auto encryptor_result = test::FakeEncryptor::Create();
+    ASSERT_OK(encryptor_result.status()) << encryptor_result.status();
+    encryptor_ = std::move(encryptor_result.ValueOrDie());
+
+    auto decryptor_result = test::FakeDecryptor::Create();
+    ASSERT_OK(decryptor_result.status()) << decryptor_result.status();
+    decryptor_ = std::move(decryptor_result.ValueOrDie());
+  }
+
+  StatusOr<EncryptedRecord> EncryptSync(base::StringPiece data) {
+    TestEvent<StatusOr<EncryptorBase::Handle*>> open_encrypt;
+    encryptor_->OpenRecord(open_encrypt.cb());
+    auto open_encrypt_result = open_encrypt.result();
+    RETURN_IF_ERROR(open_encrypt_result.status());
+    EncryptorBase::Handle* const enc_handle = open_encrypt_result.ValueOrDie();
+
+    TestEvent<Status> add_encrypt;
+    enc_handle->AddToRecord(data, add_encrypt.cb());
+    RETURN_IF_ERROR(add_encrypt.result());
+
+    EncryptedRecord encrypted;
+    TestEvent<Status> close_encrypt;
+    enc_handle->CloseRecord(base::BindOnce(
+        [](EncryptedRecord* encrypted,
+           base::OnceCallback<void(Status)> close_cb,
+           StatusOr<EncryptedRecord> result) {
+          if (!result.ok()) {
+            std::move(close_cb).Run(result.status());
+            return;
+          }
+          *encrypted = result.ValueOrDie();
+          std::move(close_cb).Run(Status::StatusOK());
+        },
+        base::Unretained(&encrypted), close_encrypt.cb()));
+    RETURN_IF_ERROR(close_encrypt.result());
+    return encrypted;
+  }
+
+  StatusOr<std::string> DecryptSync(
+      std::pair<std::string /*unencrypted_key*/, std::string /*encrypted_data*/>
+          encrypted) {
+    TestEvent<StatusOr<DecryptorBase::Handle*>> open_decrypt;
+    decryptor_->OpenRecord(encrypted.first, open_decrypt.cb());
+    auto open_decrypt_result = open_decrypt.result();
+    RETURN_IF_ERROR(open_decrypt_result.status());
+    DecryptorBase::Handle* const dec_handle = open_decrypt_result.ValueOrDie();
+
+    TestEvent<Status> add_decrypt;
+    dec_handle->AddToRecord(encrypted.second, add_decrypt.cb());
+    RETURN_IF_ERROR(add_decrypt.result());
+
+    std::string decrypted_string;
+    TestEvent<Status> close_decrypt;
+    dec_handle->CloseRecord(base::BindOnce(
+        [](std::string* decrypted_string,
+           base::OnceCallback<void(Status)> close_cb,
+           StatusOr<base::StringPiece> result) {
+          if (!result.ok()) {
+            std::move(close_cb).Run(result.status());
+            return;
+          }
+          *decrypted_string = std::string(result.ValueOrDie());
+          std::move(close_cb).Run(Status::StatusOK());
+        },
+        base::Unretained(&decrypted_string), close_decrypt.cb()));
+    RETURN_IF_ERROR(close_decrypt.result());
+    return decrypted_string;
+  }
+
+  StatusOr<std::string> DecryptMatchingKey(uint32_t public_key_id,
+                                           base::StringPiece encrypted_key) {
+    // Retrieve private key that matches public key hash.
+    TestEvent<StatusOr<std::string>> retrieve_private_key;
+    decryptor_->RetrieveMatchingPrivateKey(public_key_id,
+                                           retrieve_private_key.cb());
+    ASSIGN_OR_RETURN(std::string private_key, retrieve_private_key.result());
+    // Decrypt symmetric key with that private key.
+    std::string unencrypted_key;
+    unencrypted_key.reserve(encrypted_key.size());
+    size_t key_i = 0;
+    for (const auto& key_byte : encrypted_key) {
+      unencrypted_key.push_back(key_byte ^
+                                private_key[private_key.size() - ++key_i]);
+      if (key_i >= private_key.size()) {
+        key_i = 0;
+      }
+    }
+    return unencrypted_key;
+  }
+
+  scoped_refptr<EncryptorBase> encryptor_;
+  scoped_refptr<DecryptorBase> decryptor_;
+
+ private:
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+};
+
+TEST_F(FakeEncryptionTest, EncryptAndDecrypt) {
+  constexpr char kTestString[] = "ABCDEF";
+  // Public and private key in this test are reversed strings.
+  constexpr char kPublicKeyString[] = "123";
+  constexpr char kPrivateKeyString[] = "321";
+
+  // Register key pair and provide public key to the encryptor.
+  TestEvent<Status> record_keys;
+  decryptor_->RecordKeyPair(kPrivateKeyString, kPublicKeyString,
+                            record_keys.cb());
+  ASSERT_OK(record_keys.result()) << record_keys.result();
+  TestEvent<Status> set_public_key;
+  encryptor_->UpdateAsymmetricKey(kPublicKeyString, set_public_key.cb());
+  ASSERT_OK(set_public_key.result());
+
+  // Encrypt the test string.
+  const auto encrypted_result = EncryptSync(kTestString);
+  ASSERT_OK(encrypted_result.status()) << encrypted_result.status();
+
+  // Decrypt encrypted_key with private asymmetric key.
+  auto decrypt_key_result = DecryptMatchingKey(
+      encrypted_result.ValueOrDie().encryption_info().public_key_id(),
+      encrypted_result.ValueOrDie().encryption_info().encryption_key());
+  ASSERT_OK(decrypt_key_result.status()) << decrypt_key_result.status();
+
+  // Decrypt back.
+  const auto decrypted_result = DecryptSync(
+      std::make_pair(decrypt_key_result.ValueOrDie(),
+                     encrypted_result.ValueOrDie().encrypted_wrapped_record()));
+  ASSERT_OK(decrypted_result.status()) << decrypted_result.status();
+
+  EXPECT_THAT(decrypted_result.ValueOrDie(), ::testing::StrEq(kTestString));
+}
+
+TEST_F(FakeEncryptionTest, NoPublicKey) {
+  constexpr char kTestString[] = "ABCDEF";
+
+  // Attempt to encrypt the test string.
+  const auto encrypted_result = EncryptSync(kTestString);
+  EXPECT_EQ(encrypted_result.status().error_code(), error::NOT_FOUND);
+}
+
+TEST_F(FakeEncryptionTest, EncryptAndDecryptMultiple) {
+  constexpr const char* kTestStrings[] = {"Rec1",    "Rec22",    "Rec333",
+                                          "Rec4444", "Rec55555", "Rec666666"};
+  // Public and private key pairs in this test are reversed strings.
+  constexpr const char* kPublicKeyStrings[] = {"123", "45", "7"};
+  constexpr const char* kPrivateKeyStrings[] = {"321", "54", "7"};
+  // Encrypted records.
+  std::vector<EncryptedRecord> encrypted_records;
+
+  // 1. Register first key pair.
+  TestEvent<Status> record_keys_0;
+  decryptor_->RecordKeyPair(kPrivateKeyStrings[0], kPublicKeyStrings[0],
+                            record_keys_0.cb());
+  ASSERT_OK(record_keys_0.result()) << record_keys_0.result();
+  TestEvent<Status> set_public_key_0;
+  encryptor_->UpdateAsymmetricKey(kPublicKeyStrings[0], set_public_key_0.cb());
+  ASSERT_OK(set_public_key_0.result()) << set_public_key_0.result();
+
+  // 2. Encrypt 3 test strings.
+  for (const char* test_string :
+       {kTestStrings[0], kTestStrings[1], kTestStrings[2]}) {
+    const auto encrypted_result = EncryptSync(test_string);
+    ASSERT_OK(encrypted_result.status()) << encrypted_result.status();
+    encrypted_records.emplace_back(encrypted_result.ValueOrDie());
+  }
+
+  // 3. Register second key pair.
+  TestEvent<Status> record_keys_1;
+  decryptor_->RecordKeyPair(kPrivateKeyStrings[1], kPublicKeyStrings[1],
+                            record_keys_1.cb());
+  ASSERT_OK(record_keys_1.result()) << record_keys_1.result();
+  TestEvent<Status> set_public_key_1;
+  encryptor_->UpdateAsymmetricKey(kPublicKeyStrings[1], set_public_key_1.cb());
+  ASSERT_OK(set_public_key_1.result()) << set_public_key_1.result();
+
+  // 4. Encrypt 2 test strings.
+  for (const char* test_string : {kTestStrings[3], kTestStrings[4]}) {
+    const auto encrypted_result = EncryptSync(test_string);
+    ASSERT_OK(encrypted_result.status()) << encrypted_result.status();
+    encrypted_records.emplace_back(encrypted_result.ValueOrDie());
+  }
+
+  // 3. Register third key pair.
+  TestEvent<Status> record_keys_2;
+  decryptor_->RecordKeyPair(kPrivateKeyStrings[2], kPublicKeyStrings[2],
+                            record_keys_2.cb());
+  ASSERT_OK(record_keys_2.result()) << record_keys_2.result();
+  TestEvent<Status> set_public_key_2;
+  encryptor_->UpdateAsymmetricKey(kPublicKeyStrings[2], set_public_key_2.cb());
+  ASSERT_OK(set_public_key_2.result()) << set_public_key_2.result();
+
+  // 4. Encrypt one more test strings.
+  for (const char* test_string : {kTestStrings[5]}) {
+    const auto encrypted_result = EncryptSync(test_string);
+    ASSERT_OK(encrypted_result.status()) << encrypted_result.status();
+    encrypted_records.emplace_back(encrypted_result.ValueOrDie());
+  }
+
+  // For every encrypted record:
+  for (size_t i = 0; i < encrypted_records.size(); ++i) {
+    // Decrypt encrypted_key with private asymmetric key.
+    auto decrypt_key_result = DecryptMatchingKey(
+        encrypted_records[i].encryption_info().public_key_id(),
+        encrypted_records[i].encryption_info().encryption_key());
+    ASSERT_OK(decrypt_key_result.status()) << decrypt_key_result.status();
+
+    // Decrypt back.
+    const auto decrypted_result = DecryptSync(
+        std::make_pair(decrypt_key_result.ValueOrDie(),
+                       encrypted_records[i].encrypted_wrapped_record()));
+    ASSERT_OK(decrypted_result.status()) << decrypted_result.status();
+
+    // Verify match.
+    EXPECT_THAT(decrypted_result.ValueOrDie(),
+                ::testing::StrEq(kTestStrings[i]));
+  }
+}
+
+TEST_F(FakeEncryptionTest, EncryptAndDecryptMultipleParallel) {
+  // Context of single encryption. Self-destructs upon completion or failure.
+  class SingleEncryptionContext {
+   public:
+    SingleEncryptionContext(
+        base::StringPiece test_string,
+        base::StringPiece public_key,
+        scoped_refptr<EncryptorBase> encryptor,
+        base::OnceCallback<void(StatusOr<EncryptedRecord>)> response)
+        : test_string_(test_string),
+          public_key_(public_key),
+          encryptor_(encryptor),
+          response_(std::move(response)) {}
+
+    SingleEncryptionContext(const SingleEncryptionContext& other) = delete;
+    SingleEncryptionContext& operator=(const SingleEncryptionContext& other) =
+        delete;
+
+    ~SingleEncryptionContext() {
+      DCHECK(!response_) << "Self-destruct without prior response";
+    }
+
+    void Start() {
+      base::ThreadPool::PostTask(
+          FROM_HERE, base::BindOnce(&SingleEncryptionContext::SetPublicKey,
+                                    base::Unretained(this)));
+    }
+
+   private:
+    void Respond(StatusOr<EncryptedRecord> result) {
+      std::move(response_).Run(result);
+      delete this;
+    }
+    void SetPublicKey() {
+      encryptor_->UpdateAsymmetricKey(
+          public_key_,
+          base::BindOnce(
+              [](SingleEncryptionContext* self, Status status) {
+                if (!status.ok()) {
+                  self->Respond(status);
+                  return;
+                }
+                base::ThreadPool::PostTask(
+                    FROM_HERE,
+                    base::BindOnce(&SingleEncryptionContext::OpenRecord,
+                                   base::Unretained(self)));
+              },
+              base::Unretained(this)));
+    }
+    void OpenRecord() {
+      encryptor_->OpenRecord(base::BindOnce(
+          [](SingleEncryptionContext* self,
+             StatusOr<EncryptorBase::Handle*> handle_result) {
+            if (!handle_result.ok()) {
+              self->Respond(handle_result.status());
+              return;
+            }
+            base::ThreadPool::PostTask(
+                FROM_HERE,
+                base::BindOnce(&SingleEncryptionContext::AddToRecord,
+                               base::Unretained(self),
+                               base::Unretained(handle_result.ValueOrDie())));
+          },
+          base::Unretained(this)));
+    }
+    void AddToRecord(EncryptorBase::Handle* handle) {
+      handle->AddToRecord(
+          test_string_,
+          base::BindOnce(
+              [](SingleEncryptionContext* self, EncryptorBase::Handle* handle,
+                 Status status) {
+                if (!status.ok()) {
+                  self->Respond(status);
+                  return;
+                }
+                base::ThreadPool::PostTask(
+                    FROM_HERE,
+                    base::BindOnce(&SingleEncryptionContext::CloseRecord,
+                                   base::Unretained(self),
+                                   base::Unretained(handle)));
+              },
+              base::Unretained(this), base::Unretained(handle)));
+    }
+    void CloseRecord(EncryptorBase::Handle* handle) {
+      handle->CloseRecord(base::BindOnce(
+          [](SingleEncryptionContext* self,
+             StatusOr<EncryptedRecord> encryption_result) {
+            self->Respond(encryption_result);
+          },
+          base::Unretained(this)));
+    }
+
+   private:
+    const std::string test_string_;
+    const std::string public_key_;
+    const scoped_refptr<EncryptorBase> encryptor_;
+    base::OnceCallback<void(StatusOr<EncryptedRecord>)> response_;
+  };
+
+  // Context of single decryption. Self-destructs upon completion or failure.
+  class SingleDecryptionContext {
+   public:
+    SingleDecryptionContext(
+        const EncryptedRecord& encrypted_record,
+        scoped_refptr<DecryptorBase> decryptor,
+        base::OnceCallback<void(StatusOr<base::StringPiece>)> response)
+        : encrypted_record_(encrypted_record),
+          decryptor_(decryptor),
+          response_(std::move(response)) {}
+
+    SingleDecryptionContext(const SingleDecryptionContext& other) = delete;
+    SingleDecryptionContext& operator=(const SingleDecryptionContext& other) =
+        delete;
+
+    ~SingleDecryptionContext() {
+      DCHECK(!response_) << "Self-destruct without prior response";
+    }
+
+    void Start() {
+      base::ThreadPool::PostTask(
+          FROM_HERE,
+          base::BindOnce(&SingleDecryptionContext::RetrieveMatchingPrivateKey,
+                         base::Unretained(this)));
+    }
+
+   private:
+    void Respond(StatusOr<base::StringPiece> result) {
+      std::move(response_).Run(result);
+      delete this;
+    }
+
+    void RetrieveMatchingPrivateKey() {
+      // Retrieve private key that matches public key hash.
+      decryptor_->RetrieveMatchingPrivateKey(
+          encrypted_record_.encryption_info().public_key_id(),
+          base::BindOnce(
+              [](SingleDecryptionContext* self,
+                 StatusOr<std::string> private_key_result) {
+                if (!private_key_result.ok()) {
+                  self->Respond(private_key_result.status());
+                  return;
+                }
+                base::ThreadPool::PostTask(
+                    FROM_HERE,
+                    base::BindOnce(
+                        &SingleDecryptionContext::DecryptSymmetricKey,
+                        base::Unretained(self),
+                        private_key_result.ValueOrDie()));
+              },
+              base::Unretained(this)));
+    }
+
+    void DecryptSymmetricKey(base::StringPiece private_key) {
+      // Decrypt symmetric key with that private key.
+      std::string unencrypted_key;
+      unencrypted_key.reserve(
+          encrypted_record_.encryption_info().encryption_key().size());
+      size_t key_i = 0;
+      for (const auto& key_byte :
+           encrypted_record_.encryption_info().encryption_key()) {
+        unencrypted_key.push_back(key_byte ^
+                                  private_key[private_key.size() - ++key_i]);
+        if (key_i >= private_key.size()) {
+          key_i = 0;
+        }
+      }
+      base::ThreadPool::PostTask(
+          FROM_HERE, base::BindOnce(&SingleDecryptionContext::OpenRecord,
+                                    base::Unretained(this), unencrypted_key));
+    }
+
+    void OpenRecord(base::StringPiece unencrypted_key) {
+      decryptor_->OpenRecord(
+          unencrypted_key,
+          base::BindOnce(
+              [](SingleDecryptionContext* self,
+                 StatusOr<DecryptorBase::Handle*> handle_result) {
+                if (!handle_result.ok()) {
+                  self->Respond(handle_result.status());
+                  return;
+                }
+                base::ThreadPool::PostTask(
+                    FROM_HERE,
+                    base::BindOnce(
+                        &SingleDecryptionContext::AddToRecord,
+                        base::Unretained(self),
+                        base::Unretained(handle_result.ValueOrDie())));
+              },
+              base::Unretained(this)));
+    }
+
+    void AddToRecord(DecryptorBase::Handle* handle) {
+      handle->AddToRecord(
+          encrypted_record_.encrypted_wrapped_record(),
+          base::BindOnce(
+              [](SingleDecryptionContext* self, DecryptorBase::Handle* handle,
+                 Status status) {
+                if (!status.ok()) {
+                  self->Respond(status);
+                  return;
+                }
+                base::ThreadPool::PostTask(
+                    FROM_HERE,
+                    base::BindOnce(&SingleDecryptionContext::CloseRecord,
+                                   base::Unretained(self),
+                                   base::Unretained(handle)));
+              },
+              base::Unretained(this), base::Unretained(handle)));
+    }
+
+    void CloseRecord(DecryptorBase::Handle* handle) {
+      handle->CloseRecord(base::BindOnce(
+          [](SingleDecryptionContext* self,
+             StatusOr<base::StringPiece> decryption_result) {
+            self->Respond(decryption_result);
+          },
+          base::Unretained(this)));
+    }
+
+   private:
+    const EncryptedRecord encrypted_record_;
+    const scoped_refptr<DecryptorBase> decryptor_;
+    base::OnceCallback<void(StatusOr<base::StringPiece>)> response_;
+  };
+
+  constexpr std::array<const char*, 6> kTestStrings = {
+      "Rec1", "Rec22", "Rec333", "Rec4444", "Rec55555", "Rec666666"};
+  // Public and private key pairs in this test are reversed strings.
+  constexpr std::array<const char*, 3> kPublicKeyStrings = {"123", "45", "7"};
+  constexpr std::array<const char*, 3> kPrivateKeyStrings = {"321", "54", "7"};
+
+  // Encrypt all records in parallel.
+  std::vector<TestEvent<StatusOr<EncryptedRecord>>> results(
+      kTestStrings.size());
+  for (size_t i = 0; i < kTestStrings.size(); ++i) {
+    // Choose random key pair.
+    size_t i_key_pair = base::RandInt(0, kPublicKeyStrings.size() - 1);
+    (new SingleEncryptionContext(kTestStrings[i], kPublicKeyStrings[i_key_pair],
+                                 encryptor_, results[i].cb()))
+        ->Start();
+  }
+
+  // Register all key pairs for decryption.
+  std::vector<TestEvent<Status>> record_results(kPublicKeyStrings.size());
+  for (size_t i = 0; i < kPublicKeyStrings.size(); ++i) {
+    base::ThreadPool::PostTask(
+        FROM_HERE,
+        base::BindOnce(
+            [](const char* public_key_string, const char* private_key_string,
+               scoped_refptr<DecryptorBase> decryptor,
+               base::OnceCallback<void(Status)> done_cb) {
+              decryptor->RecordKeyPair(private_key_string, public_key_string,
+                                       std::move(done_cb));
+            },
+            kPublicKeyStrings[i], kPrivateKeyStrings[i], decryptor_,
+            record_results[i].cb()));
+  }
+  // Verify registration success.
+  for (auto& record_result : record_results) {
+    ASSERT_OK(record_result.result()) << record_result.result();
+  }
+
+  // Decrypt all records in parallel.
+  std::vector<TestEvent<StatusOr<std::string>>> decryption_results(
+      kTestStrings.size());
+  for (size_t i = 0; i < results.size(); ++i) {
+    // Verify encryption success.
+    const auto result = results[i].result();
+    ASSERT_OK(result.status()) << result.status();
+    // Decrypt and compare encrypted_record.
+    (new SingleDecryptionContext(
+         result.ValueOrDie(), decryptor_,
+         base::BindOnce(
+             [](base::OnceCallback<void(StatusOr<std::string>)>
+                    decryption_result,
+                StatusOr<base::StringPiece> result) {
+               if (!result.ok()) {
+                 std::move(decryption_result).Run(result.status());
+                 return;
+               }
+               std::move(decryption_result)
+                   .Run(std::string(result.ValueOrDie()));
+             },
+             decryption_results[i].cb())))
+        ->Start();
+  }
+
+  // Verify decryption results.
+  for (size_t i = 0; i < decryption_results.size(); ++i) {
+    const auto decryption_result = decryption_results[i].result();
+    ASSERT_OK(decryption_result.status()) << decryption_result.status();
+    // Verify data match.
+    EXPECT_THAT(decryption_result.ValueOrDie(),
+                ::testing::StrEq(kTestStrings[i]));
+  }
+}
+
+}  // namespace
+}  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/public/report_client.cc b/chrome/browser/policy/messaging_layer/public/report_client.cc
index 80848da..12ef541 100644
--- a/chrome/browser/policy/messaging_layer/public/report_client.cc
+++ b/chrome/browser/policy/messaging_layer/public/report_client.cc
@@ -7,6 +7,8 @@
 #include <memory>
 #include <utility>
 
+#include "base/bind.h"
+#include "base/callback.h"
 #include "base/memory/ptr_util.h"
 #include "base/no_destructor.h"
 #include "base/path_service.h"
@@ -17,38 +19,191 @@
 #include "chrome/browser/policy/messaging_layer/util/status.h"
 #include "chrome/browser/policy/messaging_layer/util/status_macros.h"
 #include "chrome/browser/policy/messaging_layer/util/statusor.h"
+#include "chrome/browser/policy/messaging_layer/util/task_runner_context.h"
 #include "chrome/common/chrome_paths.h"
+#include "components/enterprise/browser/controller/browser_dm_token_storage.h"
+#include "components/policy/core/common/cloud/device_management_service.h"
+
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/browser_process_platform_part.h"
+#include "chrome/browser/net/system_network_context_manager.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
+
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/login/users/chrome_user_manager.h"
+#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
+#else
+#include "chrome/browser/policy/chrome_browser_policy_connector.h"
+#endif
 
 namespace reporting {
 
 namespace {
 
+// policy::CloudPolicyClient is needed by the UploadClient, but is built in two
+// different ways for ChromeOS and non-ChromeOS browsers.
+#if defined(OS_CHROMEOS)
+std::unique_ptr<policy::CloudPolicyClient> BuildCloudPolicyClient() {
+  policy::DeviceManagementService* const device_management_service =
+      g_browser_process->browser_policy_connector()
+          ->device_management_service();
+
+  scoped_refptr<network::SharedURLLoaderFactory>
+      signin_profile_url_loader_factory =
+          g_browser_process->system_network_context_manager()
+              ->GetSharedURLLoaderFactory();
+
+  auto* user_manager_ptr = g_browser_process->platform_part()->user_manager();
+  auto* primary_user = user_manager_ptr->GetPrimaryUser();
+
+  auto dm_token_getter = chromeos::GetDeviceDMTokenForUserPolicyGetter(
+      primary_user->GetAccountId());
+
+  auto client = std::make_unique<policy::CloudPolicyClient>(
+      device_management_service, signin_profile_url_loader_factory,
+      dm_token_getter);
+
+  policy::CloudPolicyClient::RegistrationParameters registration(
+      enterprise_management::DeviceRegisterRequest::USER,
+      enterprise_management::DeviceRegisterRequest::FLAVOR_USER_REGISTRATION);
+
+  // Register the client with the device management service.
+  client->Register(registration,
+                   /*client_id=*/std::string(),
+                   /*oauth_token=*/"oauth_token_unused");
+  return client;
+}
+#else
+std::unique_ptr<policy::CloudPolicyClient> BuildCloudPolicyClient() {
+  policy::DeviceManagementService* const device_management_service =
+      g_browser_process->browser_policy_connector()
+          ->device_management_service();
+
+  scoped_refptr<network::SharedURLLoaderFactory>
+      signin_profile_url_loader_factory =
+          g_browser_process->system_network_context_manager()
+              ->GetSharedURLLoaderFactory();
+
+  auto client = std::make_unique<policy::CloudPolicyClient>(
+      device_management_service, signin_profile_url_loader_factory,
+      policy::CloudPolicyClient::DeviceDMTokenCallback());
+
+  policy::DMToken browser_dm_token =
+      policy::BrowserDMTokenStorage::Get()->RetrieveDMToken();
+  std::string client_id =
+      policy::BrowserDMTokenStorage::Get()->RetrieveClientId();
+
+  client->SetupRegistration(browser_dm_token.value(), client_id,
+                            std::vector<std::string>());
+  return client;
+}
+#endif
+
 const base::FilePath::CharType kReportingDirectory[] =
     FILE_PATH_LITERAL("reporting");
 
 }  // namespace
 
-class ReportingClient::UploadClient : public Storage::UploaderInterface {
- public:
-  static StatusOr<std::unique_ptr<Storage::UploaderInterface>> Build(
-      Priority priority) {
-    // Cannot use make_unique, since constructor is private.
-    return base::WrapUnique(new UploadClient());
+using Uploader = ReportingClient::Uploader;
+
+Uploader::Uploader(UploadCallback upload_callback)
+    : upload_callback_(std::move(upload_callback)),
+      completed_(false),
+      encrypted_records_(std::make_unique<std::vector<EncryptedRecord>>()) {}
+
+Uploader::~Uploader() = default;
+
+StatusOr<std::unique_ptr<Uploader>> Uploader::Create(
+    UploadCallback upload_callback) {
+  auto uploader = base::WrapUnique(new Uploader(std::move(upload_callback)));
+  return uploader;
+}
+
+void Uploader::ProcessBlob(Priority priority,
+                           StatusOr<base::span<const uint8_t>> data,
+                           base::OnceCallback<void(bool)> processed_cb) {
+  if (completed_ || !data.ok()) {
+    std::move(processed_cb).Run(false);
+    return;
   }
 
-  void ProcessBlob(Priority priority,
-                   StatusOr<base::span<const uint8_t>> blob,
-                   base::OnceCallback<void(bool)> processed_cb) override {
-    std::move(processed_cb).Run(false);  // Do not proceed.
+  class ProcessBlobContext : public TaskRunnerContext<bool> {
+   public:
+    ProcessBlobContext(
+        base::span<const uint8_t> data,
+        std::vector<EncryptedRecord>* records,
+        base::OnceCallback<void(bool)> processed_callback,
+        scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner)
+        : TaskRunnerContext<bool>(std::move(processed_callback),
+                                  sequenced_task_runner),
+          records_(records),
+          data_(data.begin(), data.end()) {}
+
+   private:
+    ~ProcessBlobContext() override = default;
+
+    void OnStart() override {
+      if (data_.empty()) {
+        Complete(true);
+        return;
+      }
+      ProcessBlob();
+    }
+
+    void ProcessBlob() {
+      EncryptedRecord record;
+      if (!record.ParseFromArray(data_.data(), data_.size())) {
+        Complete(false);
+        return;
+      }
+      records_->push_back(record);
+      Complete(true);
+    }
+
+    void Complete(bool success) {
+      if (!success) {
+        LOG(ERROR) << "Unable to process blob";
+      }
+      Response(success);
+    }
+
+    std::vector<EncryptedRecord>* const records_;
+    const std::vector<const uint8_t> data_;
+  };
+
+  Start<ProcessBlobContext>(data.ValueOrDie(), encrypted_records_.get(),
+                            std::move(processed_cb), sequenced_task_runner_);
+}
+
+void Uploader::Completed(Priority priority, Status final_status) {
+  if (!final_status.ok()) {
+    // No work to do - something went wrong with storage and it no longer wants
+    // to upload the records. Let the records die with |this|.
+    return;
   }
 
-  void Completed(Priority priority, Status status) override {
-    LOG(ERROR) << "Not implemented yet, status=" << status;
+  if (completed_) {
+    // RunUpload has already been invoked. Return.
+    return;
   }
 
- private:
-  UploadClient() = default;
-};
+  sequenced_task_runner_->PostTask(
+      FROM_HERE, base::BindOnce(&Uploader::RunUpload, base::Unretained(this)));
+}
+
+void Uploader::RunUpload() {
+  if (completed_) {
+    // RunUpload has already been invoked. Return.
+    return;
+  }
+  completed_ = true;
+
+  Status upload_status =
+      std::move(upload_callback_).Run(std::move(encrypted_records_));
+  if (!upload_status.ok()) {
+    LOG(ERROR) << "Unable to upload records: " << upload_status;
+  }
+}
 
 ReportingClient::ReportingClient(scoped_refptr<StorageModule> storage)
     : storage_(std::move(storage)),
@@ -86,7 +241,7 @@
   StatusOr<scoped_refptr<StorageModule>> storage_result;
   StorageModule::Create(
       Storage::Options().set_directory(reporting_path),
-      base::BindRepeating(&ReportingClient::UploadClient::Build),
+      base::BindRepeating(&ReportingClient::BuildUploader),
       base::BindOnce(
           [](StatusOr<scoped_refptr<StorageModule>>* result,
              base::WaitableEvent* done,
@@ -102,4 +257,20 @@
   return client;
 }
 
+// static
+StatusOr<std::unique_ptr<Storage::UploaderInterface>>
+ReportingClient::BuildUploader(Priority priority) {
+  ASSIGN_OR_RETURN(ReportingClient * instance, GetInstance());
+  if (instance->upload_client_ == nullptr) {
+    ASSIGN_OR_RETURN(
+        instance->upload_client_,
+        UploadClient::Create(BuildCloudPolicyClient(),
+                             base::BindRepeating(&StorageModule::ReportSuccess,
+                                                 instance->storage_)));
+  }
+  return Uploader::Create(
+      base::BindOnce(&UploadClient::EnqueueUpload,
+                     base::Unretained(instance->upload_client_.get())));
+}
+
 }  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/public/report_client.h b/chrome/browser/policy/messaging_layer/public/report_client.h
index d110378..c74247b 100644
--- a/chrome/browser/policy/messaging_layer/public/report_client.h
+++ b/chrome/browser/policy/messaging_layer/public/report_client.h
@@ -12,7 +12,9 @@
 #include "chrome/browser/policy/messaging_layer/public/report_queue.h"
 #include "chrome/browser/policy/messaging_layer/public/report_queue_configuration.h"
 #include "chrome/browser/policy/messaging_layer/storage/storage_module.h"
+#include "chrome/browser/policy/messaging_layer/upload/upload_client.h"
 #include "chrome/browser/policy/messaging_layer/util/statusor.h"
+#include "chrome/browser/policy/messaging_layer/util/task_runner_context.h"
 
 namespace reporting {
 
@@ -31,6 +33,40 @@
 // }
 class ReportingClient {
  public:
+  // Uploader is passed to Storage in order to upload messages using the
+  // UploadClient.
+  class Uploader : public Storage::UploaderInterface {
+   public:
+    using UploadCallback = base::OnceCallback<Status(
+        std::unique_ptr<std::vector<EncryptedRecord>>)>;
+
+    static StatusOr<std::unique_ptr<Uploader>> Create(
+        UploadCallback upload_callback);
+
+    ~Uploader() override;
+    Uploader(const Uploader& other) = delete;
+    Uploader& operator=(const Uploader& other) = delete;
+
+    // TODO(chromium:1078512) Priority is unused, remove it.
+    void ProcessBlob(Priority priority,
+                     StatusOr<base::span<const uint8_t>> data,
+                     base::OnceCallback<void(bool)> processed_cb) override;
+
+    // TODO(chromium:1078512) Priority is unused, remove it.
+    void Completed(Priority priority, Status final_status) override;
+
+   private:
+    explicit Uploader(UploadCallback upload_callback_);
+
+    void RunUpload();
+
+    UploadCallback upload_callback_;
+
+    bool completed_;
+    std::unique_ptr<std::vector<EncryptedRecord>> encrypted_records_;
+    scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner_;
+  };
+
   ~ReportingClient();
   ReportingClient(const ReportingClient& other) = delete;
   ReportingClient& operator=(const ReportingClient& other) = delete;
@@ -47,9 +83,6 @@
       std::unique_ptr<ReportQueueConfiguration> config);
 
  private:
-  // Client for Upload operation.
-  class UploadClient;
-
   explicit ReportingClient(scoped_refptr<StorageModule> storage);
 
   static StatusOr<ReportingClient*> GetInstance();
@@ -57,8 +90,13 @@
   // ReportingClient is not meant to be used directly.
   static StatusOr<std::unique_ptr<ReportingClient>> Create();
 
+  // TODO(chromium:1078512) Priority is unused, remove it.
+  static StatusOr<std::unique_ptr<Storage::UploaderInterface>> BuildUploader(
+      Priority priority);
+
   scoped_refptr<StorageModule> storage_;
   scoped_refptr<EncryptionModule> encryption_;
+  std::unique_ptr<UploadClient> upload_client_;
 };
 
 }  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/storage/storage_module.cc b/chrome/browser/policy/messaging_layer/storage/storage_module.cc
index ef86568a..8db231a6 100644
--- a/chrome/browser/policy/messaging_layer/storage/storage_module.cc
+++ b/chrome/browser/policy/messaging_layer/storage/storage_module.cc
@@ -22,8 +22,8 @@
 
 StorageModule::~StorageModule() = default;
 
-void StorageModule::AddRecord(reporting::EncryptedRecord record,
-                              reporting::Priority priority,
+void StorageModule::AddRecord(EncryptedRecord record,
+                              Priority priority,
                               base::OnceCallback<void(Status)> callback) {
   size_t record_size = record.ByteSizeLong();
   auto data = std::make_unique<uint8_t[]>(record_size);
@@ -32,6 +32,11 @@
                   std::move(callback));
 }
 
+void StorageModule::ReportSuccess(
+    SequencingInformation sequencing_information) {
+  LOG(ERROR) << "ReportSuccess isn't implemented";
+}
+
 // static
 void StorageModule::Create(
     const Storage::Options& options,
diff --git a/chrome/browser/policy/messaging_layer/storage/storage_module.h b/chrome/browser/policy/messaging_layer/storage/storage_module.h
index 5e6045e..6b4487b 100644
--- a/chrome/browser/policy/messaging_layer/storage/storage_module.h
+++ b/chrome/browser/policy/messaging_layer/storage/storage_module.h
@@ -35,6 +35,10 @@
                          reporting::Priority priority,
                          base::OnceCallback<void(Status)> callback);
 
+  // Once a record has been successfully uploaded, the sequencing information
+  // can be passed back to the StorageModule here for record deletion.
+  virtual void ReportSuccess(SequencingInformation sequencing_information);
+
  protected:
   // Constructor can only be called by |Create| factory method.
   StorageModule();
diff --git a/chrome/browser/policy/messaging_layer/upload/app_install_report_handler.cc b/chrome/browser/policy/messaging_layer/upload/app_install_report_handler.cc
index 50ab3e8..9431cf0 100644
--- a/chrome/browser/policy/messaging_layer/upload/app_install_report_handler.cc
+++ b/chrome/browser/policy/messaging_layer/upload/app_install_report_handler.cc
@@ -136,7 +136,6 @@
 AppInstallReportHandler::~AppInstallReportHandler() = default;
 
 Status AppInstallReportHandler::HandleRecord(Record record) {
-  RETURN_IF_ERROR(ValidateClientState());
   ASSIGN_OR_RETURN(base::Value report, ValidateRecord(record));
 
   ClientCallback client_cb = base::BindOnce([](bool finished_running) {
diff --git a/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.cc b/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.cc
index e2dcec0..95bc4a2e 100644
--- a/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.cc
+++ b/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.cc
@@ -16,7 +16,6 @@
 #include "chrome/browser/policy/messaging_layer/util/status_macros.h"
 #include "chrome/browser/policy/messaging_layer/util/statusor.h"
 #include "chrome/browser/policy/messaging_layer/util/task_runner_context.h"
-#include "chrome/browser/profiles/profile.h"
 #include "components/policy/core/common/cloud/cloud_policy_client.h"
 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
 #include "components/policy/proto/record.pb.h"
@@ -100,6 +99,8 @@
   // |ArcAppInstallEventLogUploader|).
   // TODO(chromium:1078512) Consider creating a whitelist/blacklist for retry
   // and continue.
+  // TODO(chromium:1078512) Cannot verify client state on this thread. Find a
+  // way to do that and restructure this loop to handle it.
   for (auto record_info_it = record_infos_.begin();
        record_info_it != record_infos_.end();) {
     for (auto& handler : *handlers_) {
@@ -197,13 +198,13 @@
 }
 
 StatusOr<std::unique_ptr<DmServerUploadService>> DmServerUploadService::Create(
-    Profile* profile,
+    std::unique_ptr<policy::CloudPolicyClient> client,
     ReportSuccessfulUploadCallback upload_cb) {
-  if (profile == nullptr) {
-    return Status(error::INVALID_ARGUMENT, "Profile may not be nullptr.");
+  if (client == nullptr) {
+    return Status(error::INVALID_ARGUMENT, "client may not be nullptr.");
   }
   auto uploader =
-      base::WrapUnique(new DmServerUploadService(profile, upload_cb));
+      base::WrapUnique(new DmServerUploadService(std::move(client), upload_cb));
 
   RETURN_IF_ERROR(uploader->InitRecordHandlers());
 
@@ -211,9 +212,9 @@
 }
 
 DmServerUploadService::DmServerUploadService(
-    Profile* profile,
+    std::unique_ptr<policy::CloudPolicyClient> client,
     ReportSuccessfulUploadCallback upload_cb)
-    : profile_(profile),
+    : client_(std::move(client)),
       upload_cb_(upload_cb),
       sequenced_task_runner_(base::ThreadPool::CreateSequencedTaskRunner({})) {}
 
@@ -257,25 +258,7 @@
 }
 
 CloudPolicyClient* DmServerUploadService::GetClient() {
-#if defined(OS_CHROMEOS)
-  auto* policy_manager = profile_->GetUserCloudPolicyManagerChromeOS();
-#else
-  auto* policy_manager = profile_->GetUserCloudPolicyManager();
-#endif
-  if (policy_manager == nullptr) {
-    LOG(ERROR) << "Policy manager was null";
-    return nullptr;
-  }
-  auto* core = policy_manager->core();
-  if (core == nullptr) {
-    LOG(ERROR) << "Core was null";
-    return nullptr;
-  }
-  auto* client = core->client();
-  if (client == nullptr) {
-    LOG(ERROR) << "Client was null";
-  }
-  return client;
+  return client_.get();
 }
 
 }  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.h b/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.h
index 95d60863..dad1c5755 100644
--- a/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.h
+++ b/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.h
@@ -14,7 +14,6 @@
 #include "chrome/browser/policy/messaging_layer/util/status_macros.h"
 #include "chrome/browser/policy/messaging_layer/util/statusor.h"
 #include "chrome/browser/policy/messaging_layer/util/task_runner_context.h"
-#include "chrome/browser/profiles/profile.h"
 #include "components/policy/core/common/cloud/cloud_policy_client.h"
 #include "components/policy/proto/record.pb.h"
 #include "components/policy/proto/record_constants.pb.h"
@@ -22,7 +21,7 @@
 
 namespace reporting {
 
-// DMServerUploadService uploads events to the DMServer. It does not manage
+// DmServerUploadService uploads events to the DMServer. It does not manage
 // sequence information, instead reporting the highest sequence number for each
 // generation id and priority.
 //
@@ -115,32 +114,31 @@
 
   // Will create a DMServerUploadService with handlers.
   // On successful completion returns a DMServerUploadService.
-  // If |profile| is null, will return error::INVALID_ARGUMENT.
+  // If |client| is null, will return error::INVALID_ARGUMENT.
   // If any handlers fail to create, or the policy::CloudPolicyClient is null,
   // will return error::UNAVAILABLE.
   //
-  // |profile| must not be null.
+  // |client| must not be null.
   // |completion_cb| should report back to the holder of the created object
   // whenever a record set is successfully uploaded.
   static StatusOr<std::unique_ptr<DmServerUploadService>> Create(
-      Profile* profile,
+      std::unique_ptr<policy::CloudPolicyClient> client,
       ReportSuccessfulUploadCallback completion_cb);
   ~DmServerUploadService();
 
   Status EnqueueUpload(std::unique_ptr<std::vector<EncryptedRecord>> record);
 
  private:
-  DmServerUploadService(Profile* profile,
+  DmServerUploadService(std::unique_ptr<policy::CloudPolicyClient> client,
                         ReportSuccessfulUploadCallback completion_cb);
 
   Status InitRecordHandlers();
 
   void UploadCompletion(StatusOr<std::vector<SequencingInformation>>) const;
 
-  // Must check for nullptr.
   policy::CloudPolicyClient* GetClient();
 
-  Profile* profile_;
+  std::unique_ptr<policy::CloudPolicyClient> client_;
   ReportSuccessfulUploadCallback upload_cb_;
   scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner_;
 
diff --git a/chrome/browser/policy/messaging_layer/upload/upload_client.cc b/chrome/browser/policy/messaging_layer/upload/upload_client.cc
new file mode 100644
index 0000000..1516412
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/upload/upload_client.cc
@@ -0,0 +1,44 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/policy/messaging_layer/upload/upload_client.h"
+
+#include "base/memory/ptr_util.h"
+#include "chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/status_macros.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+#include "components/policy/core/common/cloud/cloud_policy_client.h"
+#include "components/user_manager/user_manager.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/storage_partition.h"
+
+namespace reporting {
+
+// static
+StatusOr<std::unique_ptr<UploadClient>> UploadClient::Create(
+    std::unique_ptr<policy::CloudPolicyClient> cloud_policy_client,
+    ReportSuccessfulUploadCallback report_success_cb) {
+  auto upload_client = base::WrapUnique(new UploadClient());
+  ASSIGN_OR_RETURN(upload_client->dm_server_upload_service_,
+                   DmServerUploadService::Create(std::move(cloud_policy_client),
+                                                 report_success_cb));
+
+  return upload_client;
+}
+
+Status UploadClient::EnqueueUpload(
+    std::unique_ptr<std::vector<EncryptedRecord>> records) {
+  if (records->empty()) {
+    return Status::StatusOK();
+  }
+
+  return dm_server_upload_service_->EnqueueUpload(std::move(records));
+}
+
+UploadClient::UploadClient() = default;
+
+UploadClient::~UploadClient() = default;
+
+}  // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/upload/upload_client.h b/chrome/browser/policy/messaging_layer/upload/upload_client.h
new file mode 100644
index 0000000..7c02222
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/upload/upload_client.h
@@ -0,0 +1,47 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_POLICY_MESSAGING_LAYER_UPLOAD_UPLOAD_CLIENT_H_
+#define CHROME_BROWSER_POLICY_MESSAGING_LAYER_UPLOAD_UPLOAD_CLIENT_H_
+
+#include <memory>
+#include <vector>
+
+#include "base/task/post_task.h"
+#include "base/task_runner.h"
+#include "chrome/browser/policy/messaging_layer/upload/dm_server_upload_service.h"
+#include "chrome/browser/policy/messaging_layer/util/status.h"
+#include "chrome/browser/policy/messaging_layer/util/statusor.h"
+#include "components/policy/core/common/cloud/cloud_policy_client.h"
+#include "components/policy/proto/record.pb.h"
+
+namespace reporting {
+
+// UploadClient handles sending records to the correct upload service.
+class UploadClient {
+ public:
+  // ReportSuccessfulUploadCallback is used to pass server responses back to
+  // the owner of |this|.
+  using ReportSuccessfulUploadCallback =
+      base::RepeatingCallback<void(SequencingInformation)>;
+
+  static StatusOr<std::unique_ptr<UploadClient>> Create(
+      std::unique_ptr<policy::CloudPolicyClient> cloud_policy_client,
+      ReportSuccessfulUploadCallback report_success_cb);
+
+  ~UploadClient();
+  UploadClient(const UploadClient& other) = delete;
+  UploadClient& operator=(const UploadClient& other) = delete;
+
+  Status EnqueueUpload(std::unique_ptr<std::vector<EncryptedRecord>> record);
+
+ private:
+  UploadClient();
+
+  std::unique_ptr<DmServerUploadService> dm_server_upload_service_;
+};
+
+}  // namespace reporting
+
+#endif  // CHROME_BROWSER_POLICY_MESSAGING_LAYER_UPLOAD_UPLOAD_CLIENT_H_
diff --git a/chrome/browser/policy/messaging_layer/upload/upload_client_unittest.cc b/chrome/browser/policy/messaging_layer/upload/upload_client_unittest.cc
new file mode 100644
index 0000000..512605d
--- /dev/null
+++ b/chrome/browser/policy/messaging_layer/upload/upload_client_unittest.cc
@@ -0,0 +1,125 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/policy/messaging_layer/upload/upload_client.h"
+#include "base/json/json_writer.h"
+#include "base/test/task_environment.h"
+#include "base/values.h"
+#include "chrome/browser/policy/messaging_layer/upload/app_install_report_handler.h"
+#include "components/policy/core/common/cloud/dm_token.h"
+#include "components/policy/core/common/cloud/mock_cloud_policy_client.h"
+#include "components/policy/proto/record.pb.h"
+#include "components/policy/proto/record_constants.pb.h"
+
+#include "base/bind.h"
+#include "base/files/file_path.h"
+#include "base/test/test_mock_time_task_runner.h"
+#include "components/account_id/account_id.h"
+#include "services/network/test/test_network_connection_tracker.h"
+
+namespace reporting {
+namespace {
+
+using policy::MockCloudPolicyClient;
+using testing::_;
+using testing::Invoke;
+using testing::InvokeArgument;
+using testing::WithArgs;
+
+class TestCallbackWaiter {
+ public:
+  TestCallbackWaiter()
+      : completed_(base::WaitableEvent::ResetPolicy::MANUAL,
+                   base::WaitableEvent::InitialState::NOT_SIGNALED) {}
+
+  virtual void Signal() {
+    DCHECK(!completed_.IsSignaled());
+    completed_.Signal();
+  }
+
+  void Wait() { completed_.Wait(); }
+
+ protected:
+  base::WaitableEvent completed_;
+};
+
+class TestCallbackWaiterWithCounter : public TestCallbackWaiter {
+ public:
+  explicit TestCallbackWaiterWithCounter(int counter_limit)
+      : counter_limit_(counter_limit) {}
+
+  void Signal() override {
+    DCHECK(!completed_.IsSignaled());
+    DCHECK_GT(counter_limit_, 0);
+    if (--counter_limit_ == 0) {
+      completed_.Signal();
+    }
+  }
+
+ private:
+  std::atomic<int> counter_limit_;
+};
+
+TEST(UploadClientTest, CreateUploadClient) {
+  base::test::TaskEnvironment task_envrionment{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+
+  const int kExpectedCallTimes = 10;
+  const uint64_t kGenerationId = 1234;
+
+  TestCallbackWaiterWithCounter waiter(kExpectedCallTimes);
+
+  auto client = std::make_unique<MockCloudPolicyClient>();
+  client->SetDMToken(
+      policy::DMToken::CreateValidTokenForTesting("FAKE_DM_TOKEN").value());
+
+  EXPECT_CALL(*client, UploadAppInstallReport_(_, _))
+      .WillRepeatedly(WithArgs<1>(
+          Invoke([&waiter](AppInstallReportHandler::ClientCallback& callback) {
+            std::move(callback).Run(true);
+            waiter.Signal();
+          })));
+
+  auto upload_client_result =
+      UploadClient::Create(std::move(client), base::DoNothing());
+
+  ASSERT_TRUE(upload_client_result.ok());
+
+  base::Value data{base::Value::Type::DICTIONARY};
+  data.SetKey("TEST_KEY", base::Value("TEST_VALUE"));
+
+  std::string json_data;
+  ASSERT_TRUE(base::JSONWriter::Write(data, &json_data));
+
+  WrappedRecord wrapped_record;
+  Record* record = wrapped_record.mutable_record();
+  record->set_data(json_data);
+  record->set_destination(Destination::APP_INSTALL_EVENT);
+
+  std::string serialized_record;
+  wrapped_record.SerializeToString(&serialized_record);
+
+  std::unique_ptr<std::vector<EncryptedRecord>> records =
+      std::make_unique<std::vector<EncryptedRecord>>();
+  for (int i = 0; i < kExpectedCallTimes; i++) {
+    EncryptedRecord encrypted_record;
+    encrypted_record.set_encrypted_wrapped_record(serialized_record);
+
+    SequencingInformation* sequencing_information =
+        encrypted_record.mutable_sequencing_information();
+    sequencing_information->set_sequencing_id(i);
+    sequencing_information->set_generation_id(kGenerationId);
+    sequencing_information->set_priority(Priority::IMMEDIATE);
+    records->push_back(encrypted_record);
+  }
+
+  auto upload_client = std::move(upload_client_result.ValueOrDie());
+  auto enqueue_result = upload_client->EnqueueUpload(std::move(records));
+  EXPECT_TRUE(enqueue_result.ok());
+
+  waiter.Wait();
+}
+
+}  // namespace
+}  // namespace reporting
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
index c78f828..1744c08 100644
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -765,6 +765,8 @@
             new KeyPrefix("zero_suggest_header_group_id*");
     public static final KeyPrefix KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX =
             new KeyPrefix("zero_suggest_header_group_title*");
+    public static final KeyPrefix KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX =
+            new KeyPrefix("zero_suggest_header_group_collapsed_by_default*");
 
     /**
      * These values are currently used as SharedPreferences keys, along with the keys in
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java
index 8868f83..7c8d4be 100644
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java
@@ -219,7 +219,8 @@
                 ChromePreferenceKeys.KEY_ZERO_SUGGEST_POST_CONTENT_TYPE_PREFIX,
                 ChromePreferenceKeys.KEY_ZERO_SUGGEST_POST_CONTENT_DATA_PREFIX,
                 ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_GROUP_ID_PREFIX,
-                ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX
+                ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX,
+                ChromePreferenceKeys.KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX
         );
         // clang-format on
     }
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 89ce953..89f7c8d 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -265,6 +265,7 @@
 #include "chrome/browser/chromeos/arc/session/arc_session_manager.h"
 #include "chrome/browser/chromeos/bluetooth/debug_logs_manager.h"
 #include "chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.h"
+#include "chrome/browser/chromeos/child_accounts/family_user_session_metrics.h"
 #include "chrome/browser/chromeos/child_accounts/parent_access_code/parent_access_service.h"
 #include "chrome/browser/chromeos/child_accounts/screen_time_controller.h"
 #include "chrome/browser/chromeos/child_accounts/time_limits/app_activity_registry.h"
@@ -1057,6 +1058,7 @@
   chromeos::ClientAppMetadataProviderService::RegisterProfilePrefs(registry);
   chromeos::CupsPrintersManager::RegisterProfilePrefs(registry);
   chromeos::device_sync::DeviceSyncImpl::RegisterProfilePrefs(registry);
+  chromeos::FamilyUserSessionMetrics::RegisterProfilePrefs(registry);
   chromeos::first_run::RegisterProfilePrefs(registry);
   chromeos::file_system_provider::RegisterProfilePrefs(registry);
   chromeos::KerberosCredentialsManager::RegisterProfilePrefs(registry);
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
index 6dc8c6a..4c5a9e4 100644
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -84,8 +84,10 @@
 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h"
 #include "chrome/browser/ui/find_bar/find_bar_state_factory.h"
 #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
+#include "chrome/browser/ui/read_later/reading_list_model_factory.h"
 #include "chrome/browser/ui/tabs/pinned_tab_service_factory.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_model_factory.h"
+#include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h"
 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
 #include "chrome/browser/undo/bookmark_undo_service_factory.h"
@@ -333,6 +335,10 @@
   ProfileThemeUpdateServiceFactory::GetInstance();
 #endif
   ProtocolHandlerRegistryFactory::GetInstance();
+#if !defined(OS_ANDROID)
+  if (base::FeatureList::IsEnabled(features::kReadLater))
+    ReadingListModelFactory::GetInstance();
+#endif
   RendererUpdaterFactory::GetInstance();
 #if !defined(OS_ANDROID)
   performance_manager::SiteDataCacheFacadeFactory::GetInstance();
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
index 519d97653..f094f74 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
@@ -6,7 +6,7 @@
 <translation id="1012173283529841972">Elemento de lista</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1014370462248694370">Deslizar dos dedos hacia la derecha</translation>
-<translation id="1016393160682012902">Presiona una tecla del teclado QWERTY, una tecla de la línea braille o un gesto táctil para conocer su función. Presiona Ctrl+W o Esc para salir.</translation>
+<translation id="1016393160682012902">Presiona una tecla del teclado QWERTY o del teclado braille actualizable, o realiza un gesto táctil para conocer su función. Presiona Ctrl+W o Esc para salir.</translation>
 <translation id="1022586497894531524">¿Estás usando los comentarios por voz de ChromeVox por primera vez? En este instructivo rápido se explican los aspectos básicos para comenzar a usar ChromeVox.</translation>
 <translation id="1025074108959230262">Modo permanente inhabilitado</translation>
 <translation id="1031961866430398710">luego</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb
index 31db6d9..afbe639 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_it.xtb
@@ -6,7 +6,7 @@
 <translation id="1012173283529841972">Voce elenco</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1014370462248694370">Scorri verso destra con due dita</translation>
-<translation id="1016393160682012902">Premi un tasto Qwerty o un tasto braille aggiornabile oppure esegui un gesto tattile per imparare come funziona. Premi CTRL + W o ESC per uscire.</translation>
+<translation id="1016393160682012902">Premi un tasto della tastiera qwerty o un tasto braille aggiornabile oppure esegui un gesto tattile per imparare come funziona. Premi CTRL + W o ESC per uscire.</translation>
 <translation id="1022586497894531524">È la prima volta che utilizzi la funzione di lettura vocale di ChromeVox? Questo breve tutorial spiega le nozioni di base per iniziare a utilizzare ChromeVox.</translation>
 <translation id="1025074108959230262">Modalità persistente disattivata</translation>
 <translation id="1031961866430398710">poi</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
index cdb758e..c16dc7c 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
@@ -6,7 +6,7 @@
 <translation id="1012173283529841972">Item senarai</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1014370462248694370">Leret dua jari ke kanan</translation>
-<translation id="1016393160682012902">Tekan kunci qwert, kunci braille yang boleh dimuat semula atau gerak isyarat sentuh untuk mempelajari fungsinya. Tekan pengawal dengan w atau escape untuk keluar.</translation>
+<translation id="1016393160682012902">Tekan kunci qwert, kunci braille yang boleh dimuat semula atau gerak isyarat sentuh untuk mempelajari fungsinya. Tekan Ctrl dengan w atau Esc untuk keluar.</translation>
 <translation id="1022586497894531524">Adakah ini kali pertama anda menggunakan maklum balas yang dituturkan ChromeVox? Tutorial pantas ini menerangkan perkara asas untuk bermula dengan ChromeVox.</translation>
 <translation id="1025074108959230262">Mod lekit dilumpuhkan</translation>
 <translation id="1031961866430398710">kemudian</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
index 54b6f27..8a75901 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
@@ -6,7 +6,7 @@
 <translation id="1012173283529841972">Item de lista</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1014370462248694370">Deslizar rapidamente com dois dedos para a direita</translation>
-<translation id="1016393160682012902">Prima uma tecla do teclado de esquema QWERTY, uma tecla de braille atualizável ou utilize um gesto de toque para conhecer a respetiva função. Prima control com w ou escape para sair.</translation>
+<translation id="1016393160682012902">Prima uma tecla do teclado de esquema QWERTY, uma tecla de braille atualizável ou utilize um gesto de toque para conhecer a respetiva função. Prima Control + W ou Esc para sair.</translation>
 <translation id="1022586497894531524">Está a utilizar os feedback de voz do ChromeVox pela primeira vez? Este tutorial rápido explica as noções básicas para começar a utilizar o ChromeVox.</translation>
 <translation id="1025074108959230262">Modo aderente desativado</translation>
 <translation id="1031961866430398710">em seguida</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb
index 5b5c891..09e5b51 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb
@@ -6,7 +6,7 @@
 <translation id="1012173283529841972">Пункт списка</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1014370462248694370">Проведите двумя пальцами вправо</translation>
-<translation id="1016393160682012902">Нажмите клавишу или коснитесь изображения жеста, чтобы узнать, какую функцию они выполняют. Вы можете использовать как стандартную, так и брайлевскую клавиатуру. Чтобы выйти, нажмите Ctrl + W или клавишу Esc.</translation>
+<translation id="1016393160682012902">Нажмите клавишу или коснитесь изображения жеста, чтобы узнать, какую функцию они выполняют. Вы можете использовать как стандартную, так и брайлевскую клавиатуру. Чтобы выйти, нажмите Control + W или клавишу Escape.</translation>
 <translation id="1022586497894531524">Впервые используете ChromeVox для озвучивания текста на экране? Благодаря нашему руководству вы быстро научитесь работать с этим сервисом.</translation>
 <translation id="1025074108959230262">Режим залипания отключен</translation>
 <translation id="1031961866430398710">затем</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
index 62e6350..2dd2ebc 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
@@ -6,6 +6,7 @@
 <translation id="1012173283529841972">பட்டியல் உருப்படி</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1014370462248694370">இரண்டு விரல்களை வலதுபுறமாக ஸ்வைப் செய்யவும்</translation>
+<translation id="1016393160682012902">qwerty விசை, பிரெய்ல் விசை ஆகியவற்றை அழுத்தியோ சைகையை மேற்கொண்டோ அதனதன் செயல்பாட்டைத் அறிந்துகொள்ளலாம். வெளியேறுவதற்கு w அல்லது escape விசையுடன் சேர்த்து control விசையை அழுத்தலாம்.</translation>
 <translation id="1022586497894531524">ChromeVox பேச்சு வடிவக் கருத்தை முதல் முறையாகப் பயன்படுத்துகிறீர்களா? இந்த விரைவான பயிற்சியில், ChromeVoxஐப் பயன்படுத்தத் தொடங்குவதற்குத் தேவைப்படும் முக்கியமான விஷயங்களைத் தெரிந்துகொள்வீர்கள்.</translation>
 <translation id="1025074108959230262">ஸ்டிக்கி முறை முடக்கப்பட்டது</translation>
 <translation id="1031961866430398710">பின்னர்</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
index 9f91010..c4f7ed31 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
@@ -8,7 +8,7 @@
 <translation id="1014370462248694370">İki parmağınızı sağa kaydırın</translation>
 <translation id="1016393160682012902">İşlevini öğrenmek için bir qwerty tuşuna, yenilenebilir braille tuşuna basabilir veya dokunma hareketi yapabilirsiniz. Çıkmak için control+w tuş kombinasyonuna ya da escape tuşuna basın.</translation>
 <translation id="1022586497894531524">ChromeVox sözlü geri bildirimini ilk kez mi kullanıyorsunuz? Bu hızlı eğiticide, ChromeVox'ı kullanmaya başlamak için gereken temel bilgiler açıklanmaktadır.</translation>
-<translation id="1025074108959230262">Yapışkan mod devre dışı bırakıldı</translation>
+<translation id="1025074108959230262">Sabit mod devre dışı bırakıldı</translation>
 <translation id="1031961866430398710">sonra</translation>
 <translation id="1038643060055067718">Satır sayısı:</translation>
 <translation id="1038795173450935438">Bir sayfadaki öğeler arasında ilerlemek için Arama + Sağ Ok veya geriye atlamak için Arama + Sol Ok tuşlarına basın. Sonraki satıra gitmek için Arama + Aşağı Ok tuşlarına basın. Önceki satıra gitmek için Arama + Yukarı Ok tuşlarını kullanın. Tıklamak istediğiniz bir öğeye ulaşırsanız Arama + Boşluk tuşlarına basın.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
index 185e8e2..e08fafc 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
@@ -6,7 +6,7 @@
 <translation id="1012173283529841972">列表项</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1014370462248694370">向右滑动两根手指</translation>
-<translation id="1016393160682012902">要了解该模式的功能,请按 qwerty 键或可刷新的盲文键,也可以使用触摸手势。按 Ctrl+W 键或按 Esc 键即可退出。</translation>
+<translation id="1016393160682012902">如需了解该模式的功能,请按 qwerty 键或可刷新的盲文键,也可以使用触摸手势。按 Ctrl + W 键或按 Esc 键即可退出。</translation>
 <translation id="1022586497894531524">您是初次使用 ChromeVox 语音反馈功能吗?此教程将提供基本的操作说明,协助您开始使用 ChromeVox。</translation>
 <translation id="1025074108959230262">已停用粘滞模式</translation>
 <translation id="1031961866430398710">再按</translation>
diff --git a/chrome/browser/resources/new_tab_page/BUILD.gn b/chrome/browser/resources/new_tab_page/BUILD.gn
index 298e94fd..d8cc12a 100644
--- a/chrome/browser/resources/new_tab_page/BUILD.gn
+++ b/chrome/browser/resources/new_tab_page/BUILD.gn
@@ -236,6 +236,7 @@
   deps = [
     ":module_registry",
     "modules/dummy:module",
+    "modules/kaleidoscope:module",
   ]
 }
 
@@ -272,6 +273,7 @@
   public_deps = [
     ":web_components_local",
     "modules/dummy:web_components",
+    "modules/kaleidoscope:web_components",
   ]
 }
 
diff --git a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/BUILD.gn b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/BUILD.gn
new file mode 100644
index 0000000..23faf97
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/BUILD.gn
@@ -0,0 +1,18 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//third_party/closure_compiler/compile_js.gni")
+import("//tools/polymer/html_to_js.gni")
+
+js_library("module") {
+  deps = [
+    "../..:grid",
+    "../..:module_descriptor",
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+  ]
+}
+
+html_to_js("web_components") {
+  js_files = [ "module.js" ]
+}
diff --git a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/OWNERS b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/OWNERS
new file mode 100644
index 0000000..d91fac21
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/OWNERS
@@ -0,0 +1,3 @@
+file://chrome/browser/media/kaleidoscope/OWNERS
+
+# COMPONENT: Internals>Media>UI>Kaleidoscope
diff --git a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.html b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.html
new file mode 100644
index 0000000..41a1e68
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.html
@@ -0,0 +1,20 @@
+<style>
+  .tile-item {
+    background-color: var(--ntp-active-background-color);
+    border-color: var(--ntp-border-color);
+    border-radius: 8px;
+    border-style: solid;
+    border-width: thin;
+    color: var(--cr-primary-text-color);
+    height: 85px;
+    line-height: 85px;
+    margin: 10px;
+    text-align: center;
+    width: 170px;
+  }
+</style>
+<ntp-grid id="tiles" columns="4">
+  <template id="tileList" is="dom-repeat" items="[[tiles]]">
+    <div class="tile-item" title="[[item.label]]">[[item.value]]</div>
+  </template>
+</ntp-grid>
diff --git a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js
new file mode 100644
index 0000000..200dc7c5
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js
@@ -0,0 +1,46 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import '../../grid.js';
+
+import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {ModuleDescriptor} from '../module_descriptor.js';
+
+/**
+ * @fileoverview The Kaleidoscope module which will serve Kaleidoscope
+ * recommendations to the user through the NTP.
+ */
+
+class KaleidoscopeModuleElement extends PolymerElement {
+  static get is() {
+    return 'ntp-kaleidoscope-module';
+  }
+
+  static get template() {
+    return html`{__html_template__}`;
+  }
+
+  static get properties() {
+    return {
+      tiles: {
+        type: Array,
+        value: () => ([
+          {label: 'item1', value: 'foo'},
+          {label: 'item2', value: 'bar'},
+          {label: 'item3', value: 'baz'},
+          {label: 'item4', value: 'boo'},
+        ]),
+      }
+    };
+  }
+}
+
+customElements.define(KaleidoscopeModuleElement.is, KaleidoscopeModuleElement);
+
+/** @type {!ModuleDescriptor} */
+export const kaleidoscopeDescriptor = {
+  id: 'kaleidoscope',
+  create: () => Promise.resolve(new KaleidoscopeModuleElement()),
+};
diff --git a/chrome/browser/resources/new_tab_page/modules/modules.js b/chrome/browser/resources/new_tab_page/modules/modules.js
index 7f7b1dd5..965a67cc 100644
--- a/chrome/browser/resources/new_tab_page/modules/modules.js
+++ b/chrome/browser/resources/new_tab_page/modules/modules.js
@@ -6,8 +6,16 @@
  * @fileoverview Registers all NTP modules given their respective descriptors.
  */
 
+import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {dummyDescriptor} from './dummy/module.js';
+import {kaleidoscopeDescriptor} from './kaleidoscope/module.js';
 import {ModuleRegistry} from './module_registry.js';
 
+const descriptors = [dummyDescriptor];
+
+if (loadTimeData.getBoolean('kaleidoscopeModuleEnabled')) {
+  descriptors.push(kaleidoscopeDescriptor);
+}
+
 /** @type {!ModuleRegistry} */
-export const registry = new ModuleRegistry([dummyDescriptor]);
+export const registry = new ModuleRegistry(descriptors);
diff --git a/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp b/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp
index a90c462..ba7e5de0 100644
--- a/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp
+++ b/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp
@@ -3,4 +3,7 @@
   <include name="IDR_NEW_TAB_PAGE_MODULES_DUMMY_MODULE_JS"
       file="${root_gen_dir}/chrome/browser/resources/new_tab_page/modules/dummy/module.js"
       use_base_dir="false" type="BINDATA" compress="false" />
+  <include name="IDR_NEW_TAB_PAGE_MODULES_KALEIDOSCOPE_MODULE_JS"
+      file="${root_gen_dir}/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js"
+      use_base_dir="false" type="BINDATA" compress="false" />
 </grit-part>
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 dee90070..b59304a8 100644
--- a/chrome/browser/resources/new_tab_page/new_tab_page.js
+++ b/chrome/browser/resources/new_tab_page/new_tab_page.js
@@ -16,6 +16,7 @@
 export {BrowserProxy} from './browser_proxy.js';
 export {BackgroundSelectionType} from './customize_dialog.js';
 export {dummyDescriptor} from './modules/dummy/module.js';
+export {kaleidoscopeDescriptor} from './modules/kaleidoscope/module.js';
 export {ModuleRegistry} from './modules/module_registry.js';
 export {PromoBrowserCommandProxy} from './promo_browser_command_proxy.js';
 export {$$, createScrollBorders, decodeString16, hexColorToSkColor, mojoString16, skColorToRgba} from './utils.js';
diff --git a/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html b/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html
index d58105fa..4ddaa8d 100644
--- a/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html
+++ b/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html
@@ -61,9 +61,9 @@
   }
 
   .work-badge > iron-icon {
-    --work-icon-size: 16px;
+    --work-icon-size: 15px;
     bottom: 0;
-    color: white;
+    color: var(--signin-work-badge-foreground-color);
     height: var(--work-icon-size);
     left: 0;
     margin: auto;
@@ -115,7 +115,7 @@
         src="[[interceptionParameters_.interceptedAccount.pictureUrl]]">
     <div class="work-badge" id="interceptedBadge"
         hidden="[[!interceptionParameters_.interceptedAccount.isManaged]]">
-      <iron-icon class="icon" icon="signin:work"></iron-icon>
+      <iron-icon class="icon" icon="signin:business"></iron-icon>
     </div>
   </div>
   <div class="avatar-container" id="primaryAvatar">
@@ -123,7 +123,7 @@
         src="[[interceptionParameters_.primaryAccount.pictureUrl]]">
     <div class="work-badge" id="primaryBadge"
         hidden="[[!interceptionParameters_.primaryAccount.isManaged]]">
-      <iron-icon class="icon" icon="signin:work"></iron-icon>
+      <iron-icon class="icon" icon="signin:business"></iron-icon>
     </div>
   </div>
 </div>
diff --git a/chrome/browser/resources/signin/signin_icons.js b/chrome/browser/resources/signin/signin_icons.js
index ef62a7c..cf0c4bd3 100644
--- a/chrome/browser/resources/signin/signin_icons.js
+++ b/chrome/browser/resources/signin/signin_icons.js
@@ -10,9 +10,9 @@
 <svg>
   <defs>
     <!-- Copied from iron-icons. -->
-    <g id="work">
-        <path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z">
-        </path>
+    <g id="business">
+      <path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z">
+      </path>
     </g>
   </defs>
 </svg>`;
diff --git a/chrome/browser/resources/signin/signin_reauth/signin_reauth_app.html b/chrome/browser/resources/signin/signin_reauth/signin_reauth_app.html
index f6257f6..76816769 100644
--- a/chrome/browser/resources/signin/signin_reauth/signin_reauth_app.html
+++ b/chrome/browser/resources/signin/signin_reauth/signin_reauth_app.html
@@ -13,7 +13,7 @@
   }
 
   #illustration {
-    background: url(./images/signin_reauth_illustration.svg);
+    background-image: url(./images/signin_reauth_illustration.svg);
     background-size: 100% 100%;
     height: 100%;
     position: absolute;
@@ -23,7 +23,7 @@
 
   @media (prefers-color-scheme: dark) {
     #illustration {
-      background: url(./images/signin_reauth_illustration_dark.svg);
+      background-image: url(./images/signin_reauth_illustration_dark.svg);
     }
   }
 
diff --git a/chrome/browser/resources/signin/signin_vars_css.html b/chrome/browser/resources/signin/signin_vars_css.html
index 3c23b635..ce0ba21 100644
--- a/chrome/browser/resources/signin/signin_vars_css.html
+++ b/chrome/browser/resources/signin/signin_vars_css.html
@@ -1,7 +1,14 @@
 <custom-style>
 <style>
     html {
-      --signin-work-badge-background-color: rgb(242, 153, 0);
+      --signin-work-badge-background-color: rgb(248, 249, 250);
+      --signin-work-badge-foreground-color: var(--google-grey-700);
+    }
+    @media (prefers-color-scheme: dark) {
+      html {
+      --signin-work-badge-background-color: var(--google-grey-700);
+      --signin-work-badge-foreground-color: white; 
+      }
     }
 </style>
 </custom-style>
diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chrome/browser/safe_browsing/client_side_detection_service.cc
index ecfe9e93..8d5c282 100644
--- a/chrome/browser/safe_browsing/client_side_detection_service.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
@@ -69,10 +69,14 @@
     : is_phishing(phish), timestamp(time) {}
 
 ClientSideDetectionService::ClientSideDetectionService(Profile* profile)
-    : ClientSideDetectionService(profile ? profile->GetURLLoaderFactory()
-                                         : nullptr) {
-  profile_ = profile;
-
+    : profile_(profile),
+      enabled_(false),
+      extended_reporting_(false),
+      url_loader_factory_(
+          g_browser_process->safe_browsing_service()
+              ? g_browser_process->safe_browsing_service()->GetURLLoaderFactory(
+                    profile)
+              : nullptr) {
   // |profile_| can be null in unit tests
   if (!profile_)
     return;
@@ -95,13 +99,6 @@
   OnPrefsUpdated();
 }
 
-ClientSideDetectionService::ClientSideDetectionService(
-    scoped_refptr<network::SharedURLLoaderFactory> url_loader)
-    : enabled_(false),
-      extended_reporting_(false),
-      url_loader_factory_(url_loader) {
-}
-
 ClientSideDetectionService::~ClientSideDetectionService() {
   weak_factory_.InvalidateWeakPtrs();
 }
@@ -129,7 +126,7 @@
       model_loader_ = std::make_unique<ModelLoader>(
           base::BindRepeating(&ClientSideDetectionService::SendModelToRenderers,
                               base::Unretained(this)),
-          url_loader_factory_, extended_reporting_);
+          profile_->GetURLLoaderFactory(), extended_reporting_);
     }
     // Refresh the models when the service is enabled.  This can happen when
     // either of the preferences are toggled, or early during startup if
diff --git a/chrome/browser/safe_browsing/client_side_detection_service.h b/chrome/browser/safe_browsing/client_side_detection_service.h
index 4694e07..b283010 100644
--- a/chrome/browser/safe_browsing/client_side_detection_service.h
+++ b/chrome/browser/safe_browsing/client_side_detection_service.h
@@ -55,10 +55,6 @@
   typedef base::Callback<void(GURL, bool)> ClientReportPhishingRequestCallback;
 
   explicit ClientSideDetectionService(Profile* profile);
-
-  // Create a ClientSideDetectionService with no associated profile, for tests.
-  explicit ClientSideDetectionService(
-      scoped_refptr<network::SharedURLLoaderFactory> url_loader);
   ~ClientSideDetectionService() override;
 
   void Shutdown() override;
diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java
index f18cc9f..b3ce7b5e37 100644
--- a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java
+++ b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java
@@ -44,6 +44,13 @@
     }
 
     /**
+     * Returns whether the user is signed in for the purposes of password check.
+     */
+    boolean userSignedIn() {
+        return SafetyCheckBridgeJni.get().userSignedIn();
+    }
+
+    /**
      * Triggers the Safe Browsing check on the C++ side.
      */
     void checkSafeBrowsing() {
@@ -66,6 +73,7 @@
     @NativeMethods
     interface Natives {
         long init(SafetyCheckBridge safetyCheckBridge, SafetyCheckCommonObserver observer);
+        boolean userSignedIn();
         void checkSafeBrowsing(long nativeSafetyCheckBridge, SafetyCheckBridge safetyCheckBridge);
         void destroy(long nativeSafetyCheckBridge, SafetyCheckBridge safetyCheckBridge);
     }
diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
index 18d1f668..fddbaa1 100644
--- a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
+++ b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
@@ -200,6 +200,11 @@
         // the callbacks again (the |callImmediatelyIfReady| argument to |addObserver| is true).
         mPasswordsLoaded = false;
         mLeaksLoaded = false;
+        // If the user is not signed in, immediately set the state and do not block on disk loads.
+        if (!mSafetyCheckBridge.userSignedIn()) {
+            mLoadStage = PasswordCheckLoadStage.IDLE;
+            mModel.set(SafetyCheckProperties.PASSWORDS_STATE, PasswordsState.SIGNED_OUT);
+        }
         // Refresh the PasswordCheck instance, since it's not guaranteed to be the same.
         mPasswordCheck = PasswordCheckFactory.getOrCreate();
         mPasswordCheck.addObserver(this, true);
diff --git a/chrome/browser/safety_check/android/javatests/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediatorTest.java b/chrome/browser/safety_check/android/javatests/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediatorTest.java
index 38780b0..04950eb 100644
--- a/chrome/browser/safety_check/android/javatests/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediatorTest.java
+++ b/chrome/browser/safety_check/android/javatests/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediatorTest.java
@@ -89,6 +89,8 @@
         })
                 .when(mHandler)
                 .postDelayed(any(Runnable.class), anyLong());
+        // User is always signed in unless the test specifies otherwise.
+        when(mBridge.userSignedIn()).thenReturn(true);
     }
 
     @Test
@@ -459,4 +461,19 @@
         mMediator.onCompromisedCredentialsFetchCompleted();
         assertEquals(PasswordsState.ERROR, mModel.get(PASSWORDS_STATE));
     }
+
+    @Test
+    public void testPasswordsInitialLoadUserSignedOut() {
+        // Order: initial state is user signed out -> load ignored.
+        when(mBridge.userSignedIn()).thenReturn(false);
+        mMediator.setInitialState();
+        assertEquals(PasswordsState.SIGNED_OUT, mModel.get(PASSWORDS_STATE));
+
+        // Previous check found compromises.
+        when(mPasswordCheck.getSavedPasswordsCount()).thenReturn(20);
+        when(mPasswordCheck.getCompromisedCredentialsCount()).thenReturn(18);
+        // The results of the previous check should be ignored.
+        mMediator.onSavedPasswordsFetchCompleted();
+        assertEquals(PasswordsState.SIGNED_OUT, mModel.get(PASSWORDS_STATE));
+    }
 }
diff --git a/chrome/browser/safety_check/android/safety_check_bridge.cc b/chrome/browser/safety_check/android/safety_check_bridge.cc
index e2ef7ace..39bbe5ba 100644
--- a/chrome/browser/safety_check/android/safety_check_bridge.cc
+++ b/chrome/browser/safety_check/android/safety_check_bridge.cc
@@ -8,6 +8,8 @@
 
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/safety_check/android/jni_headers/SafetyCheckBridge_jni.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
+#include "components/password_manager/core/browser/leak_detection/authenticated_leak_check.h"
 #include "components/safety_check/safety_check.h"
 
 static jlong JNI_SafetyCheckBridge_Init(
@@ -18,6 +20,14 @@
       new SafetyCheckBridge(env, j_safety_check_observer));
 }
 
+static jboolean JNI_SafetyCheckBridge_UserSignedIn(JNIEnv* env) {
+  signin::IdentityManager* identity_manager =
+      IdentityManagerFactory::GetForProfile(
+          ProfileManager::GetLastUsedProfile());
+  return password_manager::AuthenticatedLeakCheck::HasAccountForRequest(
+      identity_manager);
+}
+
 SafetyCheckBridge::SafetyCheckBridge(
     JNIEnv* env,
     const base::android::JavaParamRef<jobject>& j_safety_check_observer)
diff --git a/chrome/browser/subresource_redirect/subresource_redirect_observer.cc b/chrome/browser/subresource_redirect/subresource_redirect_observer.cc
index cad706f..9b79738c 100644
--- a/chrome/browser/subresource_redirect/subresource_redirect_observer.cc
+++ b/chrome/browser/subresource_redirect/subresource_redirect_observer.cc
@@ -81,7 +81,7 @@
   return base::FeatureList::IsEnabled(blink::features::kSubresourceRedirect) &&
          base::GetFieldTrialParamByFeatureAsBool(
              blink::features::kSubresourceRedirect,
-             "enable_subresource_server_redirect", false);
+             "enable_subresource_server_redirect", true);
 }
 
 bool ShowInfoBarOnAndroid(content::WebContents* web_contents) {
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index eacb3a8..6163224b 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -476,6 +476,7 @@
     "//components/proxy_config",
     "//components/query_parser",
     "//components/rappor",
+    "//components/reading_list/core",
     "//components/renderer_context_menu",
     "//components/resources",
     "//components/safe_browsing/content/password_protection",
@@ -1114,6 +1115,8 @@
       "pdf/chrome_pdf_web_contents_helper_client.cc",
       "pdf/chrome_pdf_web_contents_helper_client.h",
       "permission_bubble/permission_prompt.h",
+      "read_later/reading_list_model_factory.cc",
+      "read_later/reading_list_model_factory.h",
       "sad_tab.cc",
       "sad_tab.h",
       "sad_tab_helper.cc",
@@ -3738,6 +3741,10 @@
       "views/qrcode_generator/qrcode_generator_bubble.h",
       "views/qrcode_generator/qrcode_generator_icon_view.cc",
       "views/qrcode_generator/qrcode_generator_icon_view.h",
+      "views/read_later/read_later_bubble_view.cc",
+      "views/read_later/read_later_bubble_view.h",
+      "views/read_later/read_later_button.cc",
+      "views/read_later/read_later_button.h",
       "views/reader_mode/reader_mode_icon_view.cc",
       "views/reader_mode/reader_mode_icon_view.h",
       "views/relaunch_notification/relaunch_notification_controller.cc",
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index 9cb140c5..ed7f9c6 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3173,10 +3173,10 @@
          Google <ph name="APP_NAME">%1$s<ex>Chrome</ex></ph> storage
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_DESCRIPTION" desc="Text to describe the data stored by unimportant or infrequent sites.">
-        Site storage Chrome doesn't think is important (e.g. sites with no saved settings or that you don't visit often)
+        Stored data that Chrome doesn't think is important (e.g. sites with no saved settings or that you don't visit often)
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_SIZE_LABEL" desc="Label for the data usage of site data for unimportant sites (followed by a number of megabytes). [CHAR-LIMIT=30]">
-        Unimportant storage
+        Unimportant data
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_CLEAR_UNIMPORTANT_SITE_DATA_BUTTON" desc="Text on the button to clear all Chrome data. [CHAR LIMIT=30]">
         Free up space
@@ -3185,7 +3185,7 @@
         This will clear cookies, cache, and other data of sites Chrome doesn't think is important.
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_SITE_DATA_DESCRIPTION" desc="Text to describe the data stored on the device by websites.">
-        All site storage, including cookies and other locally stored data
+        All data stored by sites, including cookies and other locally stored data
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_COMPUTING_SIZE" desc="String shown in place of the data usage while it's being calculated. [CHAR-LIMIT=30]">
         Computing…
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_SITE_DATA_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_SITE_DATA_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..760027e
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_SITE_DATA_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+4915b195edcc98ae5dd3829ca420ba88983c92d3
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..760027e
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+4915b195edcc98ae5dd3829ca420ba88983c92d3
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_SIZE_LABEL.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_SIZE_LABEL.png.sha1
new file mode 100644
index 0000000..760027e
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_SIZE_LABEL.png.sha1
@@ -0,0 +1 @@
+4915b195edcc98ae5dd3829ca420ba88983c92d3
\ 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 43a6cf11..fd201fc 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Kopieer URL</translation>
 <translation id="2156074688469523661">Oorblywende werwe (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Skakel sinkronisering op albei toestelle in Chrome-instellings aan om iets van jou foon af na 'n ander toestel toe te deel</translation>
+<translation id="2158408438301413340">Chrome kon nie alle wagwoorde nagaan nie</translation>
 <translation id="2169830938017475061">Nou</translation>
 <translation id="2175927920773552910">QR-kode</translation>
 <translation id="218608176142494674">Deling</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Beheer jou berigte vanaf die "Opsies vir Ontdek"-knoppie</translation>
 <translation id="2259659629660284697">Voer wagwoorde uit …</translation>
 <translation id="2268044343513325586">Verfyn</translation>
+<translation id="2276696007612801991">Meld by jou Google-rekening aan om jou wagwoorde na te gaan</translation>
 <translation id="2286841657746966508">Faktureringadres</translation>
 <translation id="230115972905494466">Geen versoenbare toestelle gekry nie</translation>
 <translation id="2318045970523081853">Tik om 'n oproep te maak</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /> oor voorgestelde inhoud</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Standaardbeskerming is aan</translation>
+<translation id="3509330069915219067">Vanlyn. Chrome kan nie nagaan of daar opdaterings is nie.</translation>
 <translation id="3513704683820682405">Aangevulde realiteit</translation>
 <translation id="3518985090088779359">Aanvaar, gaan voort</translation>
 <translation id="3522247891732774234">Opdatering is beskikbaar. Meer opsies</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Dwing aktivering van zoem</translation>
 <translation id="3909763690984331376">Veiligheidskontrole <ph name="BEGIN_NEW" />Nuut<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Soek tans die beste op die web …</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> is aan</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Kombineer my data</translation>
 <translation id="393697183122708255">Geaktiveerde stemsoektog is onbeskikbaar</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome sal jou bladsy laai wanneer dit gereed is}other{Chrome sal jou bladsye laai wanneer dit gereed is}}</translation>
 <translation id="3963007978381181125">Wagfrase-enkripsie sluit nie betaalmetodes en adresse van Google Pay af in nie. Net iemand met jou wagfrase kan jou geënkripteerde data lees. Die wagfrase word nie na Google toe gestuur of deur Google geberg nie. As jy jou wagfrase vergeet of hierdie instelling wil verander, sal jy sinkronisering moet terugstel. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Aflaai is voltooi</translation>
+<translation id="3969142555815019568">Chrome kan nie jou wagwoorde nagaan nie</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> sal in Chrome oopmaak. As jy voortgaan, stem jy in tot <ph name="BEGIN_LINK1" />Google se diensbepalings<ph name="END_LINK1" /> en <ph name="BEGIN_LINK2" />Google Chrome en Chrome-bedryfstelsel se bykomende diensbepalings<ph name="END_LINK2" />. Die <ph name="BEGIN_LINK3" />Privaatheidskennisgewing vir Google-rekeninge wat met Family Link bestuur word<ph name="END_LINK3" /> is ook van toepassing.</translation>
 <translation id="397583555483684758">Sinkronisering het ophou werk</translation>
 <translation id="3976396876660209797">Verwyder hierdie kortpad en skep dit weer</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Maak <ph name="WEBAPK_NAME" /> oop</translation>
 <translation id="4634124774493850572">Gebruik wagwoord</translation>
 <translation id="4650364565596261010">Stelsel se verstek</translation>
+<translation id="465657074423018424">Veiligblaai beskerm jou teen misleidende werwe. As jy dit afskakel, moet jy baie versigtig wees wanneer jy blaai – veral voordat jy wagwoorde invoer.</translation>
 <translation id="4662373422909645029">Laat syfers uit bynaam</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> boekmerke is uitgevee</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> is by jou tuisskerm gevoeg</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Maak opsies oop om bladsy te druk</translation>
 <translation id="4842092870884894799">Wys tans opspringer vir wagwoordgenerering</translation>
 <translation id="4860895144060829044">Bel</translation>
+<translation id="4864369630010738180">Meld tans aan …</translation>
 <translation id="4866368707455379617">Kan nie <ph name="MODULE" /> vir Chrome installeer nie</translation>
 <translation id="4875775213178255010">Inhoudvoorstelle</translation>
 <translation id="4878404682131129617">Kon nie 'n tonnel deur instaanbediener vestig nie</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Bestuur rekening</translation>
 <translation id="7077143737582773186">SD-kaart</translation>
 <translation id="7080806333218412752">Stuur URL'e na Veiligblaai toe om hulle na te gaan. Stuur ook 'n klein voorbeeld van bladsye, aflaaie, uitbreidingaktiwiteit en stelselinligting om te help om nuwe bedreigings te ontdek. Koppel hierdie data tydelik aan jou Google-rekening wanneer jy aangemeld is om jou oral in Google-programme te beskerm.</translation>
+<translation id="7088681679121566888">Chrome is op datum</translation>
 <translation id="7121362699166175603">Vee geskiedenis en outovoltooide items in die adresbalk uit. Jou Google-rekening kan dalk ander vorme van blaaigeskiedenis hê by <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Sien jou topwerwe en onlangse berigte wanneer jy op die Tuisknoppie tik</translation>
 <translation id="7138678301420049075">Ander</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Skakel "Sinkroniseer jou Chrome-data" aan om met sinkronisering te begin.</translation>
 <translation id="729975465115245577">Jou toestel het nie 'n program om die wagwoordlêer te berg nie.</translation>
 <translation id="7302081693174882195">Besonderhede: Gerangskik volgens hoeveelheid data bespaar</translation>
+<translation id="7304873321153398381">Vanlyn. Chrome kan nie jou wagwoorde nagaan nie.</translation>
 <translation id="7328017930301109123">In Ligte modus laai Chrome bladsye vinniger en gebruik tot 60 persent minder data.</translation>
 <translation id="7333031090786104871">Voeg steeds vorige werf by</translation>
 <translation id="7340958967809483333">Opsies vir Ontdek</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Ja, ek's in</translation>
 <translation id="7413229368719586778">Begindatum <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Beheer hoe jou blaaigeskiedenis gebruik word om Search en meer te personaliseer</translation>
+<translation id="7435356471928173109">Afgeskakel deur jou administrateur</translation>
 <translation id="7437998757836447326">Meld af uit Chrome</translation>
 <translation id="7438641746574390233">Wanneer Ligte Modus aan is, gebruik Chrome Google-bedieners om bladsye vinniger te laat laai. Ligte Modus herskryf baie stadige bladsye om net noodsaaklike inhoud te laai. Ligte Modus geld nie vir Incognito-oortjies nie.</translation>
 <translation id="7444811645081526538">Meer kategorieë</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Wagfrase</translation>
 <translation id="9063523880881406963">Skakel Versoek rekenaarwerf af</translation>
 <translation id="9065203028668620118">Wysig</translation>
+<translation id="9069543557624799859">Aflaai sal <ph name="TIME" /> begin.</translation>
 <translation id="9070377983101773829">Begin stemsoektog</translation>
 <translation id="9074336505530349563">Meld aan en skakel sinkronisering aan om gepersonaliseerde inhoud wat deur Google voorgestel is, te kry</translation>
 <translation id="9086302186042011942">Sinkroniseer tans</translation>
@@ -1055,7 +1066,7 @@
 <translation id="9209888181064652401">Kan nie oproepe maak nie</translation>
 <translation id="9219103736887031265">Prente</translation>
 <translation id="926205370408745186">Verwyder jou Chrome-aktiwiteit van Digitale Welstand</translation>
-<translation id="927968626442779827">Gebruik Ligte modus op Google Chrome</translation>
+<translation id="927968626442779827">Gebruik Ligte Modus op Google Chrome</translation>
 <translation id="932327136139879170">Tuis</translation>
 <translation id="93753284658583800">Tuisblad is verander</translation>
 <translation id="938850635132480979">Fout: <ph name="ERROR_CODE" /></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 eeebeb5f4..e1b1ded 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL ቅዳ</translation>
 <translation id="2156074688469523661">ቀሪ ጣቢያዎች (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">የሆነ ነገር ከስልክዎ ወደ ሌላ መሣሪያ ለማጋራት በሁለቱም መሣሪያዎች ላይ በChrome ቅንብሮች ውስጥ ስምረትን ያብሩ</translation>
+<translation id="2158408438301413340">Chrome ሁሉንም የይለፍ ቃላት ማረጋገጥ አልቻለም</translation>
 <translation id="2169830938017475061">አሁን</translation>
 <translation id="2175927920773552910">የQR ኮድ</translation>
 <translation id="218608176142494674">ማጋራት</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">ከአማራጮች ለምርምር አዝራሩ ሆነው የእርስዎን ዘገባዎች ይቆጣጠሩ</translation>
 <translation id="2259659629660284697">የይለፍ ቃላትን ወደ ውጭ ላክ...</translation>
 <translation id="2268044343513325586">አጽዳ</translation>
+<translation id="2276696007612801991">የይለፍ ቃላትዎን ለመፈተሽ ወደ Google መለያዎ ይግቡ</translation>
 <translation id="2286841657746966508">የመላኪያ አድራሻ</translation>
 <translation id="230115972905494466">ምንም ተኳሃኝ መሣሪያዎች አልተገኙም</translation>
 <translation id="2318045970523081853">ጥሪ ለማድረግ መታ ያድርጉ</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708">ስለሚጠቆም ይዘት <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">መደበኛ ጥበቃ በርቷል</translation>
+<translation id="3509330069915219067">ከመስመር ውጪ። Chrome ዝማኔዎች ካሉ መፈተሽ አይችልም።</translation>
 <translation id="3513704683820682405">ትክክለኛ እውነታ</translation>
 <translation id="3518985090088779359">ተቀበል እና ቀጥል</translation>
 <translation id="3522247891732774234">ዝማኔ ይገኛል። ተጨማሪ አማራጮች</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">ማጉላት አንቃን ያስገድዱ</translation>
 <translation id="3909763690984331376">የደህንነት ፍተሻ <ph name="BEGIN_NEW" />አዲስ<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">ምርጡን ከድር ማግኘት…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> በርቷል</translation>
 <translation id="3927692899758076493">ሳንስ ሰሪፍ</translation>
 <translation id="3928666092801078803">የእኔን ውሂብ አጣምር</translation>
 <translation id="393697183122708255">ምንም የነቃ የድምጽ ፍለጋ አይገኝም</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome ዝግጁ ሲሆን ገጽዎን ይጭነዋል}one{Chrome ዝግጁ ሲሆን ገጾችዎን ይጭነዋል}other{Chrome ዝግጁ ሲሆን ገጾችዎን ይጭነዋል}}</translation>
 <translation id="3963007978381181125">የእርስዎ የይለፍ ሐረግ ያለው ሰው ብቻ ነው የእርስዎን የተመሰጠረ ውሂብ ማንበብ የሚችለው። የይለፍ ሐረጉ ወደ Google አይላክም እንዲሁም አይከማችም። የእርስዎን የይለፍ ሐረግ ከረሱት ወይም ይህን ቅንብር መለወጥ ከፈለጉ ማሥመሩን ዳግም ማስጀመር ያስፈልገዎታል። <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">ማውረድ ተጠናቅቋል</translation>
+<translation id="3969142555815019568">Chrome የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> በChrome ውስጥ ይከፈታል። በመቀጠልዎ በ<ph name="BEGIN_LINK1" />የGoogle አገልግሎት ውል<ph name="END_LINK1" /> እና <ph name="BEGIN_LINK2" />የGoogle Chrome እና የChrome OS ተጨማሪ አገልግሎት ውል<ph name="END_LINK2" /> ይስማማሉ። <ph name="BEGIN_LINK3" />በFamily Link የሚቀናበሩ የGoogle መለያዎች የግላዊነት ማስታወቂያ<ph name="END_LINK3" /> እንዲሁም ይተገበራል።</translation>
 <translation id="397583555483684758">ስምረት መሥራት አቁሟል</translation>
 <translation id="3976396876660209797">ይህን አቋራጭ ያስወግዱትና እና ዳግም ይፍጠሩት</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" />ን ይክፈቱ</translation>
 <translation id="4634124774493850572">የይለፍ ቃል ይጠቀሙ</translation>
 <translation id="4650364565596261010">የሥርዓት ነባሪ</translation>
+<translation id="465657074423018424">ደህንነቱ የተጠበቀ አሰሳ ከአሳሳች ድር ጣቢያዎች እርስዎን ይጠብቃል። ካጠፉት፣ በማሰስ ጊዜ በተለይም የይለፍ ቃላትን ሲያስገቡ የበለጠ ጥንቃቄ ይውሰዱ።</translation>
 <translation id="4662373422909645029">ቅጥያ ስም ቁጥሮችን ማካተት አይችልም</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ዕልባቶች ተሰርዘዋል</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ወደ እርስዎ መነሻ ገፅ ታክሏል</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">ገጽን ለማተም አማራጮችን ክፈት</translation>
 <translation id="4842092870884894799">የይለፍ ቃል ማመንጨት ብቅ ይን በማሳየት ላይ</translation>
 <translation id="4860895144060829044">ደውል</translation>
+<translation id="4864369630010738180">በመግባት ላይ...</translation>
 <translation id="4866368707455379617"><ph name="MODULE" /> ን ለChrome ለመጫን አልተቻለም</translation>
 <translation id="4875775213178255010">የይዘት አስተያየት ጥቆማዎች</translation>
 <translation id="4878404682131129617">በተኪ አገልጋይ በኩል ዋሻን መመስረት አልተሳካም</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">መለያን አቀናብር</translation>
 <translation id="7077143737582773186">ኤስዲ ካርድ</translation>
 <translation id="7080806333218412752">ዩአርኤሎችን ለመፈተሽ ወደ ደህንነቱ የተጠበቀ አሰሳ ይልካቸዋል። አዲስ ስጋቶችን ፈልጎ ለማግኘት እንዲያግዝ በተጨማሪም የገጾች፣ ውርዶች፣ የቅጥያ እንቅስቃሴ እና የሥርዓት መረጃ ትንሽ ናሙና ይልካል። እርስዎን በመላው የGoogle መተግበሪያዎች ላይ ለመጠበቅ ይህን ውሂብ ለጊዜው ከGoogle መለያዎ ጋር ያገናኘዋል።</translation>
+<translation id="7088681679121566888">Chrome የተዘመነ ነው</translation>
 <translation id="7121362699166175603">በአድራሻ አሞሌው ላይ ታሪክን እና ራስ-ማጠናቀቆችን ያጸዳል። የእርስዎ Google መለያ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ አይነቶች ሊኖሩት ይችላል።</translation>
 <translation id="7128355412245153445">የመነሻ አዝራሩን መታ ባደረጉ ቁጥር የእርስዎን ከፍተኛ ጣቢያዎች እና የቅርብ ጊዜ ታሪኮች ይመልከቱ</translation>
 <translation id="7138678301420049075">ሌላ</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">ስምረትን ለመጀመር «የChrome ውሂብዎን ያስምሩ»ን ያብሩት።</translation>
 <translation id="729975465115245577">የእርስዎ መሣሪያ የይለፍ ቃላት ፋይሉን የሚያከማችበት መተግበሪያ የለውም።</translation>
 <translation id="7302081693174882195">ዝርዝሮች፦ በተቀመጠው የውሂብ መጠን ተደርድረዋል</translation>
+<translation id="7304873321153398381">ከመስመር ውጪ። Chrome የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም።</translation>
 <translation id="7328017930301109123">በቀላል ሁነታ ላይ Chrome ገጾችን በበለጠ ፍጥነት የሚጭን ሲሆን እስከ 60 በመቶ ያነሰ ውሂብ ይጠቀማል።</translation>
 <translation id="7333031090786104871">አሁንም ቀዳሚ ጣቢያን በማከል ላይ</translation>
 <translation id="7340958967809483333">ለምርምር አማራጮች</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">አዎ፣ ገብቼያለሁ</translation>
 <translation id="7413229368719586778">መጀመሪያ ቀን <ph name="DATE" /></translation>
 <translation id="7431991332293347422">ፍለጋን እና ተጨማሪ ነገሮችን ግላዊነት ለማላበስ የእርስዎ የአሰሳ ታሪክ እንዴት ጥቅም ላይ እንደሚውል ይቆጣጠሩ</translation>
+<translation id="7435356471928173109">በአስተዳዳሪዎ ጠፍቷል</translation>
 <translation id="7437998757836447326">ዘግተው ከChrome ይውጡ</translation>
 <translation id="7438641746574390233">ቀላል ሁነታ ሲበራ Chrome ገጾች በበለጠ ፍጥነት እንዲጭኑ ለማድረግ የGoogle አገልጋዮችን ይጠቀማል። ቀላል ሁነታ በጣም ቀርፋፋ የሆኑ ገጾች መሠረታዊ ይዘትን ብቻ እንዲጭኑ አድርጎ ዳግም ይጽፋቸዋል። ቀላል ሁነታ ማንነት በማያሳውቁ ትሮች ላይ አይተገበርም።</translation>
 <translation id="7444811645081526538">ተጨማሪ ምድቦች</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">የይለፍ ሐረግ</translation>
 <translation id="9063523880881406963">የዴስክቶፕ ጣቢያ ጠይቅን አጥፋ</translation>
 <translation id="9065203028668620118">አርትዕ</translation>
+<translation id="9069543557624799859">ውርድ በ<ph name="TIME" />.ላይ ይጀመራል።</translation>
 <translation id="9070377983101773829">የድምጽ ፍለጋን ጀምር</translation>
 <translation id="9074336505530349563">በGoogle የተጠቆመ ግላዊነት የተላበሰ ይዘትን በመለያ መግባት እና ስምረትን ማብራት ለማግኘት</translation>
 <translation id="9086302186042011942">በማመሳሰል ላይ</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 d81bd1f..8348ef21 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">فتح الخيارات لطباعة الصفحة</translation>
 <translation id="4842092870884894799">عرض نافذة إنشاء كلمة المرور المنبثقة</translation>
 <translation id="4860895144060829044">اتصال</translation>
+<translation id="4864369630010738180">جارٍ تسجيل الدخول...</translation>
 <translation id="4866368707455379617">‏تعذر تثبيت <ph name="MODULE" /> لمتصفِّح Chrome</translation>
 <translation id="4875775213178255010">اقتراحات المحتوى</translation>
 <translation id="4878404682131129617">أخفق إنشاء نفق عبر الخادم الوكيل.</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 7531473..7882aec 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">পৃষ্ঠা প্ৰিণ্ট কৰিবলৈ বিকল্প খোলক</translation>
 <translation id="4842092870884894799">পাছৱর্ড সৃষ্টি কৰা পপআপ দেখুৱাই থকা হৈছে</translation>
 <translation id="4860895144060829044">কল কৰক</translation>
+<translation id="4864369630010738180">ছাইন ইন কৰি থকা হৈছে…</translation>
 <translation id="4866368707455379617">Chromeৰ কাৰণে <ph name="MODULE" /> ইনষ্টল কৰিব পৰা নগ’ল</translation>
 <translation id="4875775213178255010">সমলৰ পৰামৰ্শ</translation>
 <translation id="4878404682131129617">প্ৰক্সী ছাৰ্ভাৰৰ জৰিয়তে এটা টানেল স্থাপন কৰাটো সম্ভৱ নহ‘ল</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 7f5ae6b2..ae1fe9b 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Səhifəni çap etmək üçün seçimləri açın</translation>
 <translation id="4842092870884894799">Parol yaradılması popapı göstərilir</translation>
 <translation id="4860895144060829044">Zəng</translation>
+<translation id="4864369630010738180">Daxil olunur...</translation>
 <translation id="4866368707455379617">Chrome üçün <ph name="MODULE" /> quraşdırmaq mümkün deyil</translation>
 <translation id="4875775213178255010">Kontent Təklifləri</translation>
 <translation id="4878404682131129617">Proksi server vasitəsilə tunel yaratmaq alınmadı</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 3135bff..1f28d4a 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Адкрыць параметры друку старонкі</translation>
 <translation id="4842092870884894799">Паказана выплыўное акно для стварэння пароля</translation>
 <translation id="4860895144060829044">Выклік</translation>
+<translation id="4864369630010738180">Уваход...</translation>
 <translation id="4866368707455379617">Не ўдалося ўсталяваць модуль "<ph name="MODULE" />" для Chrome</translation>
 <translation id="4875775213178255010">Рэкамендацыі змесціва</translation>
 <translation id="4878404682131129617">Не ўдалося стварыць тунэль праз проксі-сервер</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 f95c952..7f36f327 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Отваряне на опциите за отпечатване на страницата</translation>
 <translation id="4842092870884894799">Изскачащият прозорец за генериране на пароли е показан</translation>
 <translation id="4860895144060829044">Обаждане</translation>
+<translation id="4864369630010738180">Извършва се влизане...</translation>
 <translation id="4866368707455379617">Модулът „<ph name="MODULE" />“ за Chrome не може да се инсталира</translation>
 <translation id="4875775213178255010">Предложения за съдържание</translation>
 <translation id="4878404682131129617">Създаването на тунел през прокси сървъра не бе успешно</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 55b62190..be755675 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
@@ -479,6 +479,7 @@
 <translation id="4837753911714442426">‘পৃষ্ঠা প্রিন্ট করুন’-এর বিকল্পগুলি খুলুন</translation>
 <translation id="4842092870884894799">পাসওয়ার্ড প্রজন্মের পপআপ দেখানো হচ্ছে</translation>
 <translation id="4860895144060829044">কল করুন</translation>
+<translation id="4864369630010738180">প্রবেশ করা হচ্ছে...</translation>
 <translation id="4866368707455379617">Chrome-এর জন্য <ph name="MODULE" /> ইনস্টল করা যাচ্ছে না</translation>
 <translation id="4875775213178255010">কন্টেন্টের প্রস্তাবনা</translation>
 <translation id="4878404682131129617">প্রক্সি সার্ভারের মাধ্যমে টানেল তৈরি করা যায়নি</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 efbb37e..92ace92 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
@@ -152,7 +152,7 @@
 <translation id="2154710561487035718">Kopiranje URL-a</translation>
 <translation id="2156074688469523661">Preostale web lokacije (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Da dijelite sadržaj s telefona na drugi uređaj, u postavkama Chromea na oba uređaja uključite sinhronizaciju.</translation>
-<translation id="2158408438301413340">Chrome nije uspio provjeriti sve zaporke</translation>
+<translation id="2158408438301413340">Chrome nije mogao provjeriti sve lozinke</translation>
 <translation id="2169830938017475061">Sada</translation>
 <translation id="2175927920773552910">QR kôd</translation>
 <translation id="218608176142494674">Dijeljenje</translation>
@@ -161,7 +161,7 @@
 <translation id="2239812875700136898">Kontrolirajte priče pomoću dugmeta Opcije za Discover</translation>
 <translation id="2259659629660284697">Izvoz lozinki…</translation>
 <translation id="2268044343513325586">Traži detaljnije</translation>
-<translation id="2276696007612801991">Prijavite se na svoj Google račun da biste provjerili zaporke</translation>
+<translation id="2276696007612801991">Prijavite na svoj Google račun da provjerite lozinke</translation>
 <translation id="2286841657746966508">Adresa za naplatu</translation>
 <translation id="230115972905494466">Nije pronađen nijedan kompatibilni uređaj</translation>
 <translation id="2318045970523081853">Dodirnite da uspostavite poziv</translation>
@@ -318,7 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /> o predloženom sadržaju</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Standardna zaštita je uključena</translation>
-<translation id="3509330069915219067">Offline. Chrome ne može provjeriti ima li ažuriranja.</translation>
+<translation id="3509330069915219067">Van mreže. Chrome ne može provjeriti ima li ažuriranja.</translation>
 <translation id="3513704683820682405">Proširena stvarnost</translation>
 <translation id="3518985090088779359">Prihvati i nastavi</translation>
 <translation id="3522247891732774234">Dostupno je ažuriranje. Više opcija</translation>
@@ -368,7 +368,7 @@
 <translation id="3895926599014793903">Prisilno omogući zumiranje</translation>
 <translation id="3909763690984331376">Sigurnosna provjera <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Tražimo najbolje sadržaje na internetu…</translation>
-<translation id="3924911262913579434">Uključen je način <ph name="SAFE_BROWSING_MODE" /></translation>
+<translation id="3924911262913579434">Funkcija <ph name="SAFE_BROWSING_MODE" /> je uključena</translation>
 <translation id="3927692899758076493">Sans-serif</translation>
 <translation id="3928666092801078803">Kombiniraj moje podatke</translation>
 <translation id="393697183122708255">Glasovno pretraživanje nije dostupno</translation>
@@ -376,7 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome će učitati vašu stranicu kada bude spreman}one{Chrome će učitati vaše stranice kada bude spreman}few{Chrome će učitati vaše stranice kada bude spreman}other{Chrome će učitati vaše stranice kada bude spreman}}</translation>
 <translation id="3963007978381181125">Šifrovanje pristupnim izrazom ne uključuje načine plaćanja i adrese iz Google Paya. Samo neko ko ima vaš pristupni izraz može čitati šifrirane podatke. Pristupni izraz se ne šalje Googleu niti se na njemu pohranjuje. Ako zaboravite svoj pristupni izraz ili želite izmijeniti ovu postavku, trebat ćete poništiti sinhronizaciju. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Preuzimanje je završeno</translation>
-<translation id="3969142555815019568">Chrome ne može provjeriti vaše zaporke</translation>
+<translation id="3969142555815019568">Chrome ne može provjeriti vaše lozinke</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> će se otvoriti u Chromeu. Ako nastavite, pristajete na <ph name="BEGIN_LINK1" />Googleove Uslove korištenja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />dodatne Uslove korištenja usluge za Google Chrome i Chrome OS<ph name="END_LINK2" />. Također se primjenjuje <ph name="BEGIN_LINK3" />Obavještenje o privatnosti za Google račune kojima se upravlja putem Family Linka<ph name="END_LINK3" />.</translation>
 <translation id="397583555483684758">Sinhronizacija je prekinuta</translation>
 <translation id="3976396876660209797">Uklonite i ponovo napravite ovu prečicu</translation>
@@ -452,7 +452,7 @@
 <translation id="4616150815774728855">Otvori <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Koristi lozinku</translation>
 <translation id="4650364565596261010">Zadana postavka sustava</translation>
-<translation id="465657074423018424">Sigurno pregledavanje štiti vas od obmanjujućih web-lokacija. Ako ga isključite, budite posebno oprezni dok pregledavate, osobito prije unošenja zaporki.</translation>
+<translation id="465657074423018424">Sigurno pregledanje vas štiti od obmanjujućih web lokacija. Ako ga isključite, budite posebno oprezni prilikom pregledanja, naročito prije unošenja lozinki.</translation>
 <translation id="4662373422909645029">Nadimak ne može imati brojeve</translation>
 <translation id="4663756553811254707">Broj izbrisanih oznaka: <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822">Web lokacija <ph name="NAME" /> je dodana na vaš Početni ekran</translation>
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Otvorite opcije za štampanje stranice</translation>
 <translation id="4842092870884894799">Prikazivanje skočnog prozora za izradu lozinke</translation>
 <translation id="4860895144060829044">Pozovi</translation>
+<translation id="4864369630010738180">Prijavljivanje…</translation>
 <translation id="4866368707455379617">Nije moguće instalirati modul <ph name="MODULE" /> za Chrome</translation>
 <translation id="4875775213178255010">Prijedlozi za sadržaj</translation>
 <translation id="4878404682131129617">Uspostavljanje tunela putem proksi servera nije uspjelo</translation>
@@ -811,7 +812,7 @@
 <translation id="7293171162284876153">Da pokrenete sinhroniziranje, uključite "Sinhroniziranje Chrome podataka"</translation>
 <translation id="729975465115245577">Na vašem uređaju nema aplikacije za pohranjivanje fajlova s lozinkama.</translation>
 <translation id="7302081693174882195">Detalji: Poredano po količini ušteđenih podataka</translation>
-<translation id="7304873321153398381">Offline. Chrome ne može provjeriti vaše zaporke.</translation>
+<translation id="7304873321153398381">Van mreže. Chrome ne može provjeriti vaše lozinke.</translation>
 <translation id="7328017930301109123">U jednostavnom načinu rada, Chrome učitava stranice brže i koristi do 60 procenata manje podataka.</translation>
 <translation id="7333031090786104871">Prethodna web lokacija se još uvijek dodaje</translation>
 <translation id="7340958967809483333">Opcije za Discover</translation>
@@ -825,7 +826,7 @@
 <translation id="741204030948306876">Da, želim</translation>
 <translation id="7413229368719586778">Datum početka: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Kontrolirajte kako se koristi vaša historija pregledanja za personalizaciju Pretraživanja i još mnogo toga</translation>
-<translation id="7435356471928173109">Isključio vaš administrator</translation>
+<translation id="7435356471928173109">Funkciju je isključio vaš administrator</translation>
 <translation id="7437998757836447326">Odjava iz Chromea</translation>
 <translation id="7438641746574390233">Kada je uključen Jednostavni način rada, Chrome koristi Googleove servere da bi se stranice brže učitavale. Jednostavni način rada ponovo ispisuje izuzetno spore stranice da bi se učitao samo ključni sadržaj. Jednostavni način rada se ne primjenjuje na anonimne kartice.</translation>
 <translation id="7444811645081526538">Više kategorija</translation>
@@ -1041,7 +1042,7 @@
 <translation id="9050666287014529139">Zaporka</translation>
 <translation id="9063523880881406963">Isključivanje zahtjeva za prikaz klasične web-lokacije</translation>
 <translation id="9065203028668620118">Uredi</translation>
-<translation id="9069543557624799859">Preuzimanje će započeti u <ph name="TIME" />.</translation>
+<translation id="9069543557624799859">Preuzimanje će početi u <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Pokretanje glasovnog pretraživanja</translation>
 <translation id="9074336505530349563">Da dobijete prilagođeni sadržaj koji predlaže Google, prijavite se i uključite sinhronizaciju</translation>
 <translation id="9086302186042011942">Sinkronizacija</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 3577254..d186d0383 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
@@ -42,7 +42,7 @@
 <translation id="1283039547216852943">Toca per desplegar</translation>
 <translation id="1291207594882862231">Esborra l'historial, les galetes, les dades dels llocs web, la memòria cau, etc.</translation>
 <translation id="129553762522093515">Tancades recentment</translation>
-<translation id="1298077576058087471">Estalvia fins a un 60% de dades i llegeix les notícies d'avui</translation>
+<translation id="1298077576058087471">Estalvia fins a un 60% de les dades, llegeix les notícies d'avui</translation>
 <translation id="1303339473099049190">No es troba aquesta contrasenya. Comprova que estigui ben escrita i torna-ho a provar.</translation>
 <translation id="1303507811548703290"><ph name="DOMAIN" />: s'ha enviat des del dispositiu <ph name="DEVICE_NAME" /></translation>
 <translation id="1310482092992808703">Agrupa les pestanyes</translation>
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Copia l'URL</translation>
 <translation id="2156074688469523661">Llocs restants (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Per compartir elements del telèfon amb un altre dispositiu, activa la sincronització a la configuració de Chrome en tots dos dispositius</translation>
+<translation id="2158408438301413340">Chrome no ha pogut comprovar totes les contrasenyes</translation>
 <translation id="2169830938017475061">Ara</translation>
 <translation id="2175927920773552910">Codi QR</translation>
 <translation id="218608176142494674">Compartició</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Controla les teves històries amb el botó Opcions per a Discover</translation>
 <translation id="2259659629660284697">Exporta les contrasenyes…</translation>
 <translation id="2268044343513325586">Restringeix</translation>
+<translation id="2276696007612801991">Inicia la sessió al teu Compte de Google per comprovar les contrasenyes</translation>
 <translation id="2286841657746966508">Adreça de facturació</translation>
 <translation id="230115972905494466">No s'ha trobat cap dispositiu compatible</translation>
 <translation id="2318045970523081853">Toca per fer una trucada</translation>
@@ -265,7 +267,7 @@
 <translation id="3062802207422175757">Articles relacionats amb els teus interessos a Chrome</translation>
 <translation id="3089395242580810162">Obre en pestanya d'incògnit</translation>
 <translation id="3114012059975132928">Reproductor de vídeo</translation>
-<translation id="3114507951000454849">Llegeix les notícies d'avui <ph name="NEWS_ICON" /></translation>
+<translation id="3114507951000454849">Llegeix les notícies d'avui <ph name="NEWS_ICON" /></translation>
 <translation id="3123734510202723619">Anuncis</translation>
 <translation id="3137521801621304719">Surt del mode d'incògnit</translation>
 <translation id="3143515551205905069">Cancel·la la sincronització</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /> sobre el contingut suggerit</translation>
 <translation id="3499246418971111862">chrome_codiqr_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Està activada la protecció estàndard</translation>
+<translation id="3509330069915219067">No tens connexió. Chrome no pot cercar actualitzacions.</translation>
 <translation id="3513704683820682405">Realitat augmentada</translation>
 <translation id="3518985090088779359">Accepta i continua</translation>
 <translation id="3522247891732774234">Hi ha una actualització disponible. Més opcions</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Força l'activació del zoom</translation>
 <translation id="3909763690984331376">Comprovació de seguretat <ph name="BEGIN_NEW" />Novetat<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Estem cercant el millor contingut del web…</translation>
+<translation id="3924911262913579434">S'ha activat <ph name="SAFE_BROWSING_MODE" /></translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Combina les meves dades</translation>
 <translation id="393697183122708255">La cerca per veu no està disponible</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome carregarà la pàgina quan estigui a punt}other{Chrome carregarà les pàgines quan estiguin a punt}}</translation>
 <translation id="3963007978381181125">L'encriptació de frases de contrasenya no inclou les formes de pagament ni les adreces de Google Pay. Només els usuaris que sàpiguen la teva frase de contrasenya poden llegir les dades que encriptes. La frase de contrasenya no s'envia a Google, i Google tampoc no l'emmagatzema. Si l'oblides o vols canviar aquesta opció, has de restablir la sincronització. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">S'ha completat la baixada</translation>
+<translation id="3969142555815019568">Chrome no pot comprovar les teves contrasenyes</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> s'obrirà a Chrome. En continuar, acceptes les <ph name="BEGIN_LINK1" />condicions del servei de Google<ph name="END_LINK1" /> i les <ph name="BEGIN_LINK2" />condicions del servei addicionals de Google Chrome i Chrome OS<ph name="END_LINK2" />. També s'aplica l'<ph name="BEGIN_LINK3" />avís de privadesa per als Comptes de Google gestionats amb Family Link<ph name="END_LINK3" />.</translation>
 <translation id="397583555483684758">La sincronització ha deixat de funcionar</translation>
 <translation id="3976396876660209797">Suprimeix aquesta drecera i torna-la a crear</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Obre <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Fes servir la contrasenya</translation>
 <translation id="4650364565596261010">Opció predeterminada del sistema</translation>
+<translation id="465657074423018424">Navegació segura et protegeix de llocs web perillosos. Si la desactives, ves molt amb compte quan naveguis, especialment abans d'introduir contrasenyes.</translation>
 <translation id="4662373422909645029">L'àlies no pot incloure nombres</translation>
 <translation id="4663756553811254707">S'han suprimit <ph name="NUMBER_OF_BOOKMARKS" /> adreces d'interès</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> s'ha afegit a la pantalla d'inici</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Obre les opcions per imprimir la pàgina</translation>
 <translation id="4842092870884894799">Es mostra la finestra emergent de generació de contrasenyes</translation>
 <translation id="4860895144060829044">Truca</translation>
+<translation id="4864369630010738180">S'està iniciant la sessió...</translation>
 <translation id="4866368707455379617">No es pot instal·lar <ph name="MODULE" /> per a Chrome</translation>
 <translation id="4875775213178255010">Suggeriments de contingut</translation>
 <translation id="4878404682131129617">S'ha produït un error en establir un túnel mitjançant el servidor intermediari</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Gestiona el compte</translation>
 <translation id="7077143737582773186">Targeta Secure Digital</translation>
 <translation id="7080806333218412752">Envia els URL a Navegació segura perquè els comprovi. També envia una petita mostra de pàgines, baixades, activitat d'extensions i informació del sistema per ajudar a detectar amenaces noves. Enllaça temporalment aquestes dades al teu Compte de Google quan tens la sessió iniciada per protegir-te a les aplicacions de Google.</translation>
+<translation id="7088681679121566888">Chrome està actualitzat</translation>
 <translation id="7121362699166175603">Esborra l'historial i les complecions automàtiques a la barra d'adreces. A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> trobaràs altres maneres d'explorar l'historial de navegació del Compte de Google.</translation>
 <translation id="7128355412245153445">Consulta els llocs web que més visites i les històries recents sempre que toquis el botó d'inici</translation>
 <translation id="7138678301420049075">Altres</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Per iniciar la sincronització, activa l'opció Sincronitza les dades de Chrome.</translation>
 <translation id="729975465115245577">El dispositiu no té cap aplicació per emmagatzemar el fitxer de contrasenyes.</translation>
 <translation id="7302081693174882195">Detalls: files ordenades per quantitat de dades estalviades</translation>
+<translation id="7304873321153398381">No tens connexió. Chrome no pot comprovar les teves contrasenyes.</translation>
 <translation id="7328017930301109123">En el mode bàsic, Chrome carrega les pàgines més ràpidament i utilitza fins a un 60 per cent menys de dades.</translation>
 <translation id="7333031090786104871">Encara s'hi està afegint el lloc anterior</translation>
 <translation id="7340958967809483333">Opcions per a Discover</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Sí, ho accepto</translation>
 <translation id="7413229368719586778">Data d'inici: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Controla com s'utilitza l'historial de navegació per personalitzar la Cerca i més</translation>
+<translation id="7435356471928173109">Desactivada per l'administrador</translation>
 <translation id="7437998757836447326">Tanca la sessió de Chrome</translation>
 <translation id="7438641746574390233">Quan el mode bàsic estigui activat, Chrome utilitzarà els servidors de Google perquè les pàgines es carreguin més de pressa. El mode bàsic reescriu les pàgines molt lentes per carregar només el contingut essencial. El mode bàsic no s'aplica a les pestanyes d'incògnit.</translation>
 <translation id="7444811645081526538">Més categories</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Frase de contrasenya</translation>
 <translation id="9063523880881406963">Desactiva Mostra com a ordinador</translation>
 <translation id="9065203028668620118">Edita</translation>
+<translation id="9069543557624799859">La baixada començarà a les <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Inicia la cerca per veu</translation>
 <translation id="9074336505530349563">Perquè Google et suggereixi contingut personalitzat, inicia la sessió i activa la sincronització</translation>
 <translation id="9086302186042011942">Sincronització</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 3e6d86c..0071d38 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Otevřít možnosti tisku stránky</translation>
 <translation id="4842092870884894799">Je zobrazeno vyskakovací okno generování hesla</translation>
 <translation id="4860895144060829044">Volat</translation>
+<translation id="4864369630010738180">Přihlašování...</translation>
 <translation id="4866368707455379617">Modul <ph name="MODULE" /> pro Chrome se nepodařilo nainstalovat</translation>
 <translation id="4875775213178255010">Návrhy obsahu</translation>
 <translation id="4878404682131129617">Vytvoření tunelu prostřednictvím proxy serveru se nezdařilo</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 969afa6..fea05c3 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Kopier webadresse</translation>
 <translation id="2156074688469523661">Tilbageværende websites (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Hvis du vil dele noget på din telefon med en anden enhed, kan du aktivere synkronisering i Chrome-indstillingerne på begge enheder</translation>
+<translation id="2158408438301413340">Chrome kunne ikke tjekke alle adgangskoder</translation>
 <translation id="2169830938017475061">Nu</translation>
 <translation id="2175927920773552910">QR-kode</translation>
 <translation id="218608176142494674">Deling</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Administrer dine historier ved hjælp af knappen Indstillinger for Discover</translation>
 <translation id="2259659629660284697">Eksportér adgangskoder…</translation>
 <translation id="2268044343513325586">Juster</translation>
+<translation id="2276696007612801991">Log ind på din Google-konto for at tjekke dine adgangskoder</translation>
 <translation id="2286841657746966508">Faktureringsadresse</translation>
 <translation id="230115972905494466">Der blev ikke fundet nogen kompatible enheder</translation>
 <translation id="2318045970523081853">Tryk for at ringe op</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /> om anbefalet indhold</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Standardbeskyttelse er aktiveret</translation>
+<translation id="3509330069915219067">Offline. Chrome kan ikke søge efter opdateringer.</translation>
 <translation id="3513704683820682405">Augmented reality</translation>
 <translation id="3518985090088779359">Acceptér og fortsæt</translation>
 <translation id="3522247891732774234">Tilgængelig opdatering. Flere muligheder</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Tving aktivering af zoom</translation>
 <translation id="3909763690984331376">Sikkerhedstjek <ph name="BEGIN_NEW" />Nyt<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Finder det bedste fra nettet…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> er aktiveret</translation>
 <translation id="3927692899758076493">Sans serif</translation>
 <translation id="3928666092801078803">Kombiner mine data</translation>
 <translation id="393697183122708255">Aktiveret talesøgning ikke tilgængelig</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome indlæser din side, når det er muligt}one{Chrome indlæser din side, når det er muligt}other{Chrome indlæser dine sider, når det er muligt}}</translation>
 <translation id="3963007978381181125">Kryptering med adgangssætning omfatter ikke betalingsmetoder og adresser fra Google Pay. Det er kun personer med din adgangssætning, der kan læse dine krypterede data. Adgangssætningen sendes ikke til eller gemmes af Google. Hvis du glemmer din adgangssætning eller vil ændre denne indstilling, skal du nulstille synkronisering. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Download fuldført</translation>
+<translation id="3969142555815019568">Chrome kan ikke tjekke dine adgangskoder</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> åbnes i Chrome. Når du fortsætter, accepterer du <ph name="BEGIN_LINK1" />Googles servicevilkår<ph name="END_LINK1" /> og de <ph name="BEGIN_LINK2" />yderligere servicevilkår for Google Chrome og Chrome OS<ph name="END_LINK2" />. <ph name="BEGIN_LINK3" />Erklæringen om privatliv for Google-konti, der administreres med Family Link<ph name="END_LINK3" />, gælder også.</translation>
 <translation id="397583555483684758">Synkroniseringen fungerer ikke mere</translation>
 <translation id="3976396876660209797">Fjern og genskab denne genvej</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Åbn <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Brug adgangskode</translation>
 <translation id="4650364565596261010">Systemstandard</translation>
+<translation id="465657074423018424">Beskyttet søgning beskytter dig mod vildledende websites. Hvis du deaktiverer dette, skal du være ekstra påpasselig – især når du angiver adgangskoder.</translation>
 <translation id="4662373422909645029">Kaldenavnet må ikke indeholde tal</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bogmærker blev slettet</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> blev føjet til din startskærm</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Åbn valgmuligheder for udskrivning af siden</translation>
 <translation id="4842092870884894799">Viser pop op for generering af adgangskoder</translation>
 <translation id="4860895144060829044">Ring op</translation>
+<translation id="4864369630010738180">Logger ind...</translation>
 <translation id="4866368707455379617"><ph name="MODULE" /> kunne ikke installeres til Chrome</translation>
 <translation id="4875775213178255010">Indholdsforslag</translation>
 <translation id="4878404682131129617">Der kunne ikke etableres en tunnel via proxyserver</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Administrer konto</translation>
 <translation id="7077143737582773186">SD-kort</translation>
 <translation id="7080806333218412752">Sender webadresser til tjek i Beskyttet browsing. Der sendes også et mindre antal sider, downloads, udvidelsesaktivitet og systemoplysninger for at identificere nye trusler. Disse data knyttes midlertidigt til din Google-konto, når du er logget ind, for at beskytte dig i Google-apps.</translation>
+<translation id="7088681679121566888">Chrome er opdateret</translation>
 <translation id="7121362699166175603">Rydder historikken og autofuldførelser i adresselinjen. Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Se dine mest anvendte websites og seneste historier, når du trykker på knappen Hjem</translation>
 <translation id="7138678301420049075">Andet</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Aktivér "Synkroniser dine Chrome-data" for starte synkroniseringen.</translation>
 <translation id="729975465115245577">Der er ikke nogen app på din enhed, hvor filen med adgangskoder kan gemmes.</translation>
 <translation id="7302081693174882195">Info: Sorteret efter mængden af sparede data</translation>
+<translation id="7304873321153398381">Offline. Chrome kan ikke tjekke dine adgangskoder.</translation>
 <translation id="7328017930301109123">Chrome indlæser sider hurtigere og bruger op til 60 procent mindre data i Lite-tilstand.</translation>
 <translation id="7333031090786104871">Det forrige website er stadig ved at blive tilføjet</translation>
 <translation id="7340958967809483333">Indstillinger for Discover</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Ja tak</translation>
 <translation id="7413229368719586778">Startdato <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Bestem selv, hvordan din browserhistorik skal bruges til at tilpasse søgeresultater m.m.</translation>
+<translation id="7435356471928173109">Deaktiveret af din administrator</translation>
 <translation id="7437998757836447326">Log ud af Chrome</translation>
 <translation id="7438641746574390233">Når Lite-tilstand er aktiveret, bruger Chrome Googles servere til at gøre sideindlæsningen hurtigere. Lite-tilstanden omskriver meget langsomme sider til kun at indlæse væsentligt indhold. Lite-tilstand kan ikke bruges i inkognitotilstand.</translation>
 <translation id="7444811645081526538">Flere kategorier</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Adgangssætning</translation>
 <translation id="9063523880881406963">Slå anmodning om computerversionen af websitet fra</translation>
 <translation id="9065203028668620118">Rediger</translation>
+<translation id="9069543557624799859">Downloaden starter <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Start talesøgning</translation>
 <translation id="9074336505530349563">Log ind, og aktivér synkronisering for at hente brugertilpasset indhold, som er foreslået af Google</translation>
 <translation id="9086302186042011942">Synkroniserer</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 58d5da97..a65f94f 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Optionen zum Drucken einer Seite öffnen</translation>
 <translation id="4842092870884894799">Pop-up-Fenster zur Passwortgenerierung wird angezeigt.</translation>
 <translation id="4860895144060829044">Anrufen</translation>
+<translation id="4864369630010738180">Anmeldung erfolgt...</translation>
 <translation id="4866368707455379617"><ph name="MODULE" /> kann nicht für Chrome installiert werden</translation>
 <translation id="4875775213178255010">Inhaltsvorschläge</translation>
 <translation id="4878404682131129617">Tunnelerstellung via Proxyserver ist fehlgeschlagen</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 5ea3959..e62026de 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Άνοιγμα επιλογών για την εκτύπωση της σελίδας</translation>
 <translation id="4842092870884894799">Εμφάνιση αναδυόμενου παραθύρου δημιουργίας κωδικού πρόσβασης</translation>
 <translation id="4860895144060829044">Κλήση</translation>
+<translation id="4864369630010738180">Σύνδεση…</translation>
 <translation id="4866368707455379617">Δεν είναι δυνατή η εγκατάσταση του <ph name="MODULE" /> για το Chrome</translation>
 <translation id="4875775213178255010">Προτάσεις περιεχομένου</translation>
 <translation id="4878404682131129617">Η δημιουργία διοχέτευσης μέσω διακομιστή μεσολάβησης απέτυχε</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 0704ea7..7b8beeee 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Open options to print page</translation>
 <translation id="4842092870884894799">Showing password generation pop-up</translation>
 <translation id="4860895144060829044">Call</translation>
+<translation id="4864369630010738180">Signing in...</translation>
 <translation id="4866368707455379617">Unable to install <ph name="MODULE" /> for Chrome</translation>
 <translation id="4875775213178255010">Content Suggestions</translation>
 <translation id="4878404682131129617">Establishing a tunnel via proxy server failed</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 32b2597..43cb925 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
@@ -42,7 +42,7 @@
 <translation id="1283039547216852943">Presiona para expandir</translation>
 <translation id="1291207594882862231">Borra el historial, las cookies, los datos del sitio, la caché…</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
-<translation id="1298077576058087471">Ahorra hasta un 60% de datos mientras lees las noticias de hoy</translation>
+<translation id="1298077576058087471">Ahorra hasta un 60% de datos y lee las noticias de hoy</translation>
 <translation id="1303339473099049190">No se encontró esa contraseña. Revisa la ortografía y vuelve a intentarlo.</translation>
 <translation id="1303507811548703290"><ph name="DOMAIN" /> - Enviado desde <ph name="DEVICE_NAME" /></translation>
 <translation id="1310482092992808703">Agrupar pestañas</translation>
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Abrir opciones para imprimir la página</translation>
 <translation id="4842092870884894799">Mostrando mensaje emergente de generación de contraseña</translation>
 <translation id="4860895144060829044">Llamar</translation>
+<translation id="4864369630010738180">Accediendo</translation>
 <translation id="4866368707455379617">No es posible instalar <ph name="MODULE" /> para Chrome</translation>
 <translation id="4875775213178255010">Sugerencias de contenido</translation>
 <translation id="4878404682131129617">Se produjo un error al establecer conexión a través del servidor proxy</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 c585166..c2c8ed7 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Abre las opciones para imprimir la página</translation>
 <translation id="4842092870884894799">Mostrando la ventana emergente de generación de contraseña</translation>
 <translation id="4860895144060829044">Llamar</translation>
+<translation id="4864369630010738180">Iniciando sesión...</translation>
 <translation id="4866368707455379617">No se puede instalar <ph name="MODULE" /> para Chrome</translation>
 <translation id="4875775213178255010">Sugerencias de contenido</translation>
 <translation id="4878404682131129617">No se ha podido establecer conexión a través del servidor proxy</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 b45b232..a025995 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Valikute avamine lehe printimiseks</translation>
 <translation id="4842092870884894799">Parooli loomise hüpikakna kuvamine</translation>
 <translation id="4860895144060829044">Helistage</translation>
+<translation id="4864369630010738180">Sisselogimine ...</translation>
 <translation id="4866368707455379617">Moodulit <ph name="MODULE" /> ei saa Chrome'i jaoks installida</translation>
 <translation id="4875775213178255010">Sisu soovitused</translation>
 <translation id="4878404682131129617">Puhverserveri kaudu tunneli loomine ebaõnnestus</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 08c91fe..954082c 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Ireki orria inprimatzeko aukerak</translation>
 <translation id="4842092870884894799">Pasahitza sortzeko leiho gainerakorra erakusten</translation>
 <translation id="4860895144060829044">Deitu</translation>
+<translation id="4864369630010738180">Saioa hasten…</translation>
 <translation id="4866368707455379617">Ezin da instalatu <ph name="MODULE" /> Chrome-rako</translation>
 <translation id="4875775213178255010">Iradokitako edukiak</translation>
 <translation id="4878404682131129617">Ezin izan da eratu tunel bat proxy-zerbitzariaren bidez</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 80ee87e..7a78a8f0 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">کپی نشانی وب</translation>
 <translation id="2156074688469523661">سایت‌های باقی‌مانده (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">‏برای به‌اشتراک گذاشتن چیزی از تلفنتان با دستگاهی دیگر، در تنظیمات Chrome هر دو دستگاه «همگام‌سازی» را روشن کنید</translation>
+<translation id="2158408438301413340">‏Chrome نتوانست همه گذرواژه‌هایتان را بررسی کند</translation>
 <translation id="2169830938017475061">اکنون</translation>
 <translation id="2175927920773552910">‏کد QR</translation>
 <translation id="218608176142494674">هم‌رسانی</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">کنترل داستان‌ها از دکمه «گزینه‌های یافته‌ها»</translation>
 <translation id="2259659629660284697">درحال صادر کردن گذرواژه‌ها…</translation>
 <translation id="2268044343513325586">فیلتر</translation>
+<translation id="2276696007612801991">‏برای بررسی گذرواژه‌هایتان، به سیستم حساب Google وارد شوید</translation>
 <translation id="2286841657746966508">آدرس ارسال صورتحساب</translation>
 <translation id="230115972905494466">هیچ دستگاه سازگاری پیدا نشد</translation>
 <translation id="2318045970523081853">برای برقراری تماس، ضربه بزنید.</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708">درباره محتوای پیشنهادی <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">«محافظت استاندارد» روشن است</translation>
+<translation id="3509330069915219067">‏آفلاین. Chrome نمی‌تواند به‌روزرسانی‌ها را بررسی کند.</translation>
 <translation id="3513704683820682405">واقعیت افزوده</translation>
 <translation id="3518985090088779359">پذیرش و ادامه</translation>
 <translation id="3522247891732774234">به‌روزرسانی موجود است. گزینه‌های بیشتر</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">فعال کردن اجباری بزرگ‌نمایی</translation>
 <translation id="3909763690984331376">بررسی ایمنی <ph name="BEGIN_NEW" />جدید<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">درحال پیدا کردن بهترین مورد از وب…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> روشن است</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">ادغام کردن داده‌های من</translation>
 <translation id="393697183122708255">هیچ جستجوی گفتاری فعالی در دسترس نیست</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{‏وقتی آماده شدید، Chrome صفحه را بار می‌کند}one{‏وقتی آماده شدید، Chrome صفحه‌ها را بار می‌کند}other{‏وقتی آماده شدید، Chrome صفحه‌ها را بار می‌کند}}</translation>
 <translation id="3963007978381181125">‏رمزگذاری عبارت ورود شامل روش‌های پرداخت و نشانی‌های موجود در Google Pay نمی‌شود. فقط افرادی که عبارت عبورتان را داشته باشند می‌توانند داده‌های رمزگذاری‌شده‌تان را بخوانند. عبارت عبور به Google ارسال یا در سرورهای آن ذخیره نمی‌شود. اگر عبارت عبورتان را فراموش کنید یا بخواهید این تنظیم را تغییر دهید، باید همگام‌سازی را بازنشانی کنید. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">بارگیری کامل شد</translation>
+<translation id="3969142555815019568">‏Chrome نمی‌تواند گذرواژه‌هایتان را بررسی کند</translation>
 <translation id="3974987681202239636">‏<ph name="APP_NAME" /> در Chrome باز می‌شود. با ادامه دادن، با <ph name="BEGIN_LINK1" />شرایط خدمات Google<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />شرایط خدمات تکمیلی Google Chrome و سیستم‌عامل Chrome<ph name="END_LINK2" /> موافقت می‌کنید. <ph name="BEGIN_LINK3" />اعلان حریم‌خصوصی برای «حساب‌های Google» مدیریت‌شده با Family Link<ph name="END_LINK3" /> نیز اعمال می‌شود.</translation>
 <translation id="397583555483684758">همگام‌سازی متوقف شده است</translation>
 <translation id="3976396876660209797">این میان‌بر را بردارید و دوباره ایجاد کنید</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">باز کردن <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">استفاده از گذرواژه</translation>
 <translation id="4650364565596261010">پیش‌فرض سیستم</translation>
+<translation id="465657074423018424">«مرور ایمن» از شما دربرابر وب‌سایت‌های فریب‌کار محافظت می‌کند. اگر آن را خاموش کنید، هنگام مرور کردن بیشتر مراقب باشید؛ مخصوصاً قبل از وارد کردن گذرواژه‌ها.</translation>
 <translation id="4662373422909645029">نام مستعار نباید حاوی عدد باشد</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> نشانک حذف شد</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> به صفحه اصلی شما اضافه شد</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">باز کردن گزینه‌های چاپ صفحه</translation>
 <translation id="4842092870884894799">نمایش پنجره تولید گذرواژه</translation>
 <translation id="4860895144060829044">تماس</translation>
+<translation id="4864369630010738180">در حال ورود به سیستم...</translation>
 <translation id="4866368707455379617">‏<ph name="MODULE" /> برای Chrome نصب نشد</translation>
 <translation id="4875775213178255010">محتواهای پیشنهادی</translation>
 <translation id="4878404682131129617">برقراری تونل ازطریق سرور پروکسی ناموفق بود</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">مدیریت حساب</translation>
 <translation id="7077143737582773186">‏کارت SD</translation>
 <translation id="7080806333218412752">‏نشانی‌های وب را به «مرور ایمن» ارسال می‌کند تا بررسی شوند. نمونه کوچکی از صفحات، بارگیری‌ها، فعالیت افزونه، و اطلاعات سیستم را هم ارسال می‌کند تا به کشف تهدیدهای جدید کمک کند. وقتی به سیستم وارد شده باشید، این داده‌ها را به‌طور موقت به «حساب Google» شما پیوند می‌دهد تا در همه برنامه‌های Google از شما محافظت شود.</translation>
+<translation id="7088681679121566888">‏Chrome به‌روز است</translation>
 <translation id="7121362699166175603">‏سابقه و تکمیل‌های خودکار را در نوار نشانی پاک می‌کند. ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد.</translation>
 <translation id="7128355412245153445">هرزمان روی دکمه صفحه اصلی ضربه بزنید، سایت‌های برتر و داستان‌های اخیر خود را می‌بینید</translation>
 <translation id="7138678301420049075">دیگر</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">‏برای شروع همگام‌سازی، «همگام‌سازی داده‌های Chrome» را روشن کنید.</translation>
 <translation id="729975465115245577">دستگاه شما برنامه‌ای برای ذخیره فایل گذرواژه‌ها ندارد.</translation>
 <translation id="7302081693174882195">جزئیات: مرتب‌شده براساس مقدار داده صرفه‌جویی‌شده</translation>
+<translation id="7304873321153398381">‏آفلاین. Chrome نمی‌تواند گذرواژه‌هایتان را بررسی کند.</translation>
 <translation id="7328017930301109123">‏در «حالت ساده»، Chrome صفحه‌ها را سریع‌تر بار می‌کند و تا ۶۰ درصد مصرف داده را کاهش می‌دهد.</translation>
 <translation id="7333031090786104871">همچنان درحال افزودن سایت قبلی</translation>
 <translation id="7340958967809483333">گزینه‌های «یافته‌ها»</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">بله، موافقم</translation>
 <translation id="7413229368719586778">تاریخ شروع: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">کنترل نحوه استفاده از سابقه مرور برای شخصی‌سازی «جستجو» و موارد دیگر</translation>
+<translation id="7435356471928173109">سرپرستتان آن را خاموش کرده است</translation>
 <translation id="7437998757836447326">‏خروج از سیستم Chrome</translation>
 <translation id="7438641746574390233">‏وقتی «حالت ساده» روشن است، Chrome از سرورهای Google برای بار کردن سریع‌تر صفحه‌ها استفاده می‌کند. در «حالت ساده»، صفحه‌ها خیلی آهسته بازنویسی می‌شود تا فقط محتوای اساسی بار شود. «حالت ساده» روی برگه‌های ناشناس اعمال نمی‌شود.</translation>
 <translation id="7444811645081526538">دسته‌های بیشتر</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">عبارت عبور</translation>
 <translation id="9063523880881406963">خاموش کردن درخواست سایت رایانه‌ای</translation>
 <translation id="9065203028668620118">ویرایش</translation>
+<translation id="9069543557624799859">بارگیری ساعت <ph name="TIME" /> شروع خواهد شد.</translation>
 <translation id="9070377983101773829">شروع جستجوی گفتاری</translation>
 <translation id="9074336505530349563">‏برای اینکه Google محتوای شخصی‌شده به شما پیشنهاد دهد، به سیستم وارده شوید و همگام‌سازی را روشن کنید</translation>
 <translation id="9086302186042011942">همگام‌سازی</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 f4be018..7279fe9 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Avaa sivun tulostusvaihtoehdot</translation>
 <translation id="4842092870884894799">Salasanojen luomisen ponnahdusikkuna on näkyvissä.</translation>
 <translation id="4860895144060829044">Soita</translation>
+<translation id="4864369630010738180">Kirjaudutaan...</translation>
 <translation id="4866368707455379617">Kohteen <ph name="MODULE" /> asennus Chromeen epäonnistui</translation>
 <translation id="4875775213178255010">Sisältöehdotukset</translation>
 <translation id="4878404682131129617">Tunnelin muodostaminen välityspalvelimen kautta epäonnistui</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 a7e1e95..7eb8d1a8 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Buksan ang mga opsyon sa pag-print ng page</translation>
 <translation id="4842092870884894799">Ipinapakita ang popup para sa pagbuo ng password</translation>
 <translation id="4860895144060829044">Tawagan</translation>
+<translation id="4864369630010738180">Nagsa-sign in...</translation>
 <translation id="4866368707455379617">Hindi ma-install ang <ph name="MODULE" /> para sa Chrome</translation>
 <translation id="4875775213178255010">Mga Iminumungkahing Content</translation>
 <translation id="4878404682131129617">Hindi nakagawa ng tunnel sa pamamagitan ng proxy server</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 669b1f32..606bc6b 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
@@ -265,7 +265,7 @@
 <translation id="3062802207422175757">Articles portant sur vos centres d'intérêt dans Chrome</translation>
 <translation id="3089395242580810162">Ouvrir dans onglet nav. privée</translation>
 <translation id="3114012059975132928">Lecteur vidéo</translation>
-<translation id="3114507951000454849">Découvrez les actualités du jour <ph name="NEWS_ICON" /></translation>
+<translation id="3114507951000454849">Actualités du jour <ph name="NEWS_ICON" /></translation>
 <translation id="3123734510202723619">Annonces</translation>
 <translation id="3137521801621304719">Désactiver le mode de navigation privée</translation>
 <translation id="3143515551205905069">Annuler la synchronisation</translation>
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Ouvrir les options d'impression de la page</translation>
 <translation id="4842092870884894799">Affichage de la fenêtre contextuelle de génération de mot de passe</translation>
 <translation id="4860895144060829044">Appeler</translation>
+<translation id="4864369630010738180">Connexion en cours…</translation>
 <translation id="4866368707455379617">Impossible d'installer <ph name="MODULE" /> dans Chrome</translation>
 <translation id="4875775213178255010">Suggestions de contenu</translation>
 <translation id="4878404682131129617">Échec de l'établissement d'un tunnel par l'intermédiaire d'un serveur mandataire</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 82cec74d..35b2ec5 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Afficher les options d'impression de la page</translation>
 <translation id="4842092870884894799">Affichage de la fenêtre contextuelle de génération de mot de passe</translation>
 <translation id="4860895144060829044">Appeler</translation>
+<translation id="4864369630010738180">Connexion...</translation>
 <translation id="4866368707455379617">Impossible d'installer le module <ph name="MODULE" /> pour Chrome</translation>
 <translation id="4875775213178255010">Recommandations de contenus</translation>
 <translation id="4878404682131129617">Échec de l'établissement d'un tunnel via un serveur proxy</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 f741e83..1ecde3f5 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
@@ -42,7 +42,7 @@
 <translation id="1283039547216852943">Toca para despregar</translation>
 <translation id="1291207594882862231">Borrar o historial, as cookies, os datos dos sitios, a memoria caché…</translation>
 <translation id="129553762522093515">Pechado recentemente</translation>
-<translation id="1298077576058087471">Aforra ata un 60 % de datos e le as noticias de hoxe</translation>
+<translation id="1298077576058087471">Le as noticias do día e aforra ata un 60 % de datos</translation>
 <translation id="1303339473099049190">Non se puido atopar o contrasinal. Comproba a ortografía e téntao de novo.</translation>
 <translation id="1303507811548703290"><ph name="DOMAIN" /> - Contido enviado desde <ph name="DEVICE_NAME" /></translation>
 <translation id="1310482092992808703">Agrupar pestanas</translation>
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Copiar o URL</translation>
 <translation id="2156074688469523661">Sitios restantes (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Para compartir contido do teu teléfono con outro dispositivo, activa a sincronización na configuración de Chrome dos dous dispositivos</translation>
+<translation id="2158408438301413340">Chrome non puido comprobar todos os contrasinais</translation>
 <translation id="2169830938017475061">Agora</translation>
 <translation id="2175927920773552910">Código QR</translation>
 <translation id="218608176142494674">Uso compartido</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Fai clic no botón Opcións de Discover e controla as túas historias</translation>
 <translation id="2259659629660284697">Exportar contrasinais…</translation>
 <translation id="2268044343513325586">Refina</translation>
+<translation id="2276696007612801991">Inicia sesión na túa Conta de Google para comprobar os teus contrasinais</translation>
 <translation id="2286841657746966508">Enderezo de facturación</translation>
 <translation id="230115972905494466">Non se atoparon dispositivos compatibles</translation>
 <translation id="2318045970523081853">Toca para chamar</translation>
@@ -265,7 +267,7 @@
 <translation id="3062802207422175757">Artigos sobre os teus intereses en Chrome</translation>
 <translation id="3089395242580810162">Abrir en pestana de incógnito</translation>
 <translation id="3114012059975132928">Reprodutor de vídeo</translation>
-<translation id="3114507951000454849">Le as noticias de hoxe <ph name="NEWS_ICON" /></translation>
+<translation id="3114507951000454849">Le as noticias do día <ph name="NEWS_ICON" /></translation>
 <translation id="3123734510202723619">Avisos</translation>
 <translation id="3137521801621304719">Sae do modo de incógnito</translation>
 <translation id="3143515551205905069">Cancelar sincronización</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /> acerca do contido suxerido</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">A protección estándar está activada</translation>
+<translation id="3509330069915219067">Estás sen conexión. Chrome non puido buscar actualizacións.</translation>
 <translation id="3513704683820682405">Realidade aumentada</translation>
 <translation id="3518985090088779359">Aceptar e continuar</translation>
 <translation id="3522247891732774234">Hai unha actualización dispoñible. Máis opcións</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Forzar a activación do zoom</translation>
 <translation id="3909763690984331376">Comprobación de seguranza <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Buscando o mellor contido da Web…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> está activada</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Combinar os meus datos</translation>
 <translation id="393697183122708255">A busca por voz non está dispoñible</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome cargará a páxina cando o dispositivo estea listo}other{Chrome cargará as páxinas cando o dispositivo estea listo}}</translation>
 <translation id="3963007978381181125">A encriptación mediante frase de acceso non inclúe métodos de pago nin enderezos de Google Pay. Só alguén coa túa frase de acceso pode ler os teus datos encriptados. A frase de acceso non se envía nin se almacena en Google. Se a esqueces ou se queres cambiar esta opción de configuración, deberás restablecer a sincronización. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Descarga completa</translation>
+<translation id="3969142555815019568">Chrome non puido comprobar os teus contrasinais</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> abrirase en Chrome. Ao continuar, aceptas as <ph name="BEGIN_LINK1" />Condicións de servizo de Google<ph name="END_LINK1" />, así como as <ph name="BEGIN_LINK2" />Condicións de servizo adicionais de Google Chrome e Chrome OS<ph name="END_LINK2" />. Tamén se aplica o <ph name="BEGIN_LINK3" />Aviso de privacidade das Contas de Google xestionadas a través de Family Link<ph name="END_LINK3" />.</translation>
 <translation id="397583555483684758">A sincronización deixou de funcionar</translation>
 <translation id="3976396876660209797">Elimina e volve crear este atallo</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Abrir <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Usar contrasinal</translation>
 <translation id="4650364565596261010">Opción predeterminada do sistema</translation>
+<translation id="465657074423018424">A función Navegación segura protéxete contra os sitios web enganosos. Se a desactivas, ten moito coidado ao navegar, sobre todo antes de escribir contrasinais.</translation>
 <translation id="4662373422909645029">O alcume non pode ter números</translation>
 <translation id="4663756553811254707">Elimináronse <ph name="NUMBER_OF_BOOKMARKS" /> marcadores</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> engadiuse á túa pantalla de inicio</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Abrir opcións para imprimir a páxina</translation>
 <translation id="4842092870884894799">Mostrando ventá emerxente de xeración de contrasinais</translation>
 <translation id="4860895144060829044">Chamar</translation>
+<translation id="4864369630010738180">Iniciando sesión...</translation>
 <translation id="4866368707455379617">Non se puido instalar o módulo <ph name="MODULE" /> para Chrome</translation>
 <translation id="4875775213178255010">Suxestións de contido</translation>
 <translation id="4878404682131129617">Produciuse un erro ao establecer un túnel a través do servidor proxy</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Xestiona a conta</translation>
 <translation id="7077143737582773186">Tarxeta SD</translation>
 <translation id="7080806333218412752">Envía enderezos URL á función Navegación segura para comprobalos. Tamén envía unha pequena mostra da información do sistema, da actividade das extensións, das páxinas e das descargas para axudar a descubrir novas ameazas. Vincula temporalmente estes datos coa túa Conta de Google cando inicies sesión para protexerte nas aplicacións de Google.</translation>
+<translation id="7088681679121566888">Chrome está actualizado</translation>
 <translation id="7121362699166175603">Borra o historial e os completados automáticos na barra de enderezos. É posible que a túa conta de Google teña outras formas do historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Consulta os teus sitios principais e as túas historias recentes sempre que toques o botón de inicio</translation>
 <translation id="7138678301420049075">Outros</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Para iniciar a sincronización, activa a opción Sincronizar os teus datos de Chrome.</translation>
 <translation id="729975465115245577">O dispositivo non ten unha aplicación para almacenar o ficheiro de contrasinais.</translation>
 <translation id="7302081693174882195">Detalles: filas ordenadas por cantidade de datos aforrados</translation>
+<translation id="7304873321153398381">Estás sen conexión. Chrome non puido comprobar os teus contrasinais.</translation>
 <translation id="7328017930301109123">No modo básico, Chrome carga as páxinas máis rápido e usa un 60 por cento menos de datos.</translation>
 <translation id="7333031090786104871">Aínda se está engadindo o sitio anterior</translation>
 <translation id="7340958967809483333">Opcións de Discover</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Si, acepto</translation>
 <translation id="7413229368719586778">Data de inicio: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Controla como se utiliza o historial de navegación para personalizar a Busca e moito máis</translation>
+<translation id="7435356471928173109">Desactivada polo teu administrador</translation>
 <translation id="7437998757836447326">Pechar sesión en Chrome</translation>
 <translation id="7438641746574390233">Cando está activado o modo básico, Chrome usa os servidores de Google para facer que as páxinas carguen máis rápido. O modo básico reescribe as páxinas que se executan de forma moi lenta para que carguen só contido esencial. O modo básico non se aplica ás pestanas do modo de incógnito.</translation>
 <translation id="7444811645081526538">Máis categorías</translation>
@@ -929,7 +939,7 @@
 <translation id="8190358571722158785">Queda 1 día</translation>
 <translation id="8200772114523450471">Retomar</translation>
 <translation id="8209050860603202033">Abrir imaxe</translation>
-<translation id="8218052821161047641">Páxina rápida</translation>
+<translation id="8218052821161047641">Páxina de carga rápida</translation>
 <translation id="8218622182176210845">Xestiona a túa conta</translation>
 <translation id="8223642481677794647">Menú da tarxeta do feed</translation>
 <translation id="8224471946457685718">Descargar artigos personalizados a través da wifi</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Frase de acceso</translation>
 <translation id="9063523880881406963">Desactiva a opción Ver como ordenador</translation>
 <translation id="9065203028668620118">Editar</translation>
+<translation id="9069543557624799859">Hora de inicio da descarga: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Comeza a busca por voz</translation>
 <translation id="9074336505530349563">Inicia sesión e activa a sincronización para recibir contido personalizado suxerido por Google</translation>
 <translation id="9086302186042011942">Sincronizando</translation>
@@ -1055,7 +1066,7 @@
 <translation id="9209888181064652401">Non se pode realizar chamadas</translation>
 <translation id="9219103736887031265">Imaxes</translation>
 <translation id="926205370408745186">Quitar a túa actividade de Chrome de Benestar dixital</translation>
-<translation id="927968626442779827">Usa o modo básico de Google Chrome</translation>
+<translation id="927968626442779827">Usa o modo básico en Google Chrome</translation>
 <translation id="932327136139879170">Inicio</translation>
 <translation id="93753284658583800">A páxina de inicio cambiou</translation>
 <translation id="938850635132480979">Erro: <ph name="ERROR_CODE" /></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 a964ea6..2b64b0f 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">પેજને પ્રિન્ટ કરવાના વિકલ્પો ખોલો</translation>
 <translation id="4842092870884894799">પાસવર્ડ જનરેશન પોપઅપ દર્શાવે છે</translation>
 <translation id="4860895144060829044">કૉલ કરો</translation>
+<translation id="4864369630010738180">સાઇન ઇન થઈ રહ્યું છે...</translation>
 <translation id="4866368707455379617">Chrome માટે <ph name="MODULE" /> ઇન્સ્ટૉલ કરવામાં અસમર્થ</translation>
 <translation id="4875775213178255010">કન્ટેન્ટ માટે સૂચનો</translation>
 <translation id="4878404682131129617">પ્રૉક્સી સર્વર મારફતે એક ટનલને સ્થાપિત કરવું નિષ્ફળ થયું</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 54f800f..163cc865 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">पेज प्रिंट करने के विकल्प खोलें</translation>
 <translation id="4842092870884894799">पासवर्ड जेनरेशन पॉपअप दिखाया जा रहा है</translation>
 <translation id="4860895144060829044">कॉल करें</translation>
+<translation id="4864369630010738180">प्रवेश कर रहा है...</translation>
 <translation id="4866368707455379617">Chrome के लिए <ph name="MODULE" /> इंस्टॉल नहीं किया जा सका</translation>
 <translation id="4875775213178255010">सामग्री के सुझाव</translation>
 <translation id="4878404682131129617">प्रॉक्सी सर्वर के ज़रिए सुरंग बनाना विफल रहा</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 4fbd9fba..47cbc8d 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Otvaranje opcija za ispis stranice</translation>
 <translation id="4842092870884894799">Prikazuje se skočni prozor generiranja zaporke</translation>
 <translation id="4860895144060829044">Poziv</translation>
+<translation id="4864369630010738180">Prijavljivanje...</translation>
 <translation id="4866368707455379617">Instaliranje modula <ph name="MODULE" /> za Chrome nije uspjelo</translation>
 <translation id="4875775213178255010">Prijedlozi sadržaja</translation>
 <translation id="4878404682131129617">Uspostava tunela putem proxy poslužitelja nije uspjela</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 7af6452..a145aba2 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL másolása</translation>
 <translation id="2156074688469523661">A többi webhely (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Ha szeretne megosztani valamit a telefonjáról egy másik eszközre, kapcsolja be a szinkronizálást a Chrome beállításaiban mindkét eszközön</translation>
+<translation id="2158408438301413340">A Chrome nem tudta ellenőrizni az összes jelszót</translation>
 <translation id="2169830938017475061">Most</translation>
 <translation id="2175927920773552910">QR-kód</translation>
 <translation id="218608176142494674">Megosztás</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Hírek kezelése „A Discover beállításai” gombbal</translation>
 <translation id="2259659629660284697">Jelszavak exportálása…</translation>
 <translation id="2268044343513325586">Pontosítás</translation>
+<translation id="2276696007612801991">Jelszavai ellenőrzéséhez jelentkezzen be Google-fiókjába</translation>
 <translation id="2286841657746966508">Számlázási cím</translation>
 <translation id="230115972905494466">Nem találhatók kompatibilis eszközök</translation>
 <translation id="2318045970523081853">Koppintson a hívás indításához</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />További információ<ph name="END_LINK" /> a javasolt tartalomról</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">A Normál védelem be van kapcsolva</translation>
+<translation id="3509330069915219067">Offline. A Chrome nem tud frissítéseket keresni.</translation>
 <translation id="3513704683820682405">Kiterjesztett valóság</translation>
 <translation id="3518985090088779359">Elfogadás és tovább</translation>
 <translation id="3522247891732774234">Frissítés áll rendelkezésre. További lehetőségek</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">A nagyítás mindig engedélyezett</translation>
 <translation id="3909763690984331376">Biztonsági ellenőrzés <ph name="BEGIN_NEW" />Új<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">A legjobb találatok keresése az interneten…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> aktív</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Adataim egyesítése</translation>
 <translation id="393697183122708255">Nincs engedélyezett hangalapú keresés</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{A Chrome betölti az oldalt, amint lehetséges}other{A Chrome betölti az oldalakat, amint lehetséges}}</translation>
 <translation id="3963007978381181125">Az összetett jelszavas titkosítás nem tartalmazza a Google Payben megadott fizetési módokat és címeket. Titkosított adatait csak az olvashatja el, aki rendelkezik az Ön összetett jelszavával. Az összetett jelszót a Google nem kapja meg, és nem is tárolja. Ha elfelejtette összetett jelszavát, vagy módosítaná ezt a beállítást, alaphelyzetbe kell állítania a szinkronizálást. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" />.</translation>
 <translation id="3967822245660637423">A letöltés sikeres</translation>
+<translation id="3969142555815019568">A Chrome nem tudja ellenőrizni a jelszavakat</translation>
 <translation id="3974987681202239636">A(z) <ph name="APP_NAME" /> a Chrome-ban fog megnyílni. A továbblépéssel elfogadja a <ph name="BEGIN_LINK1" />Google Általános Szerződési Feltételeket<ph name="END_LINK1" />, valamint <ph name="BEGIN_LINK2" />A Google Chrome és a Chrome OS Kiegészítő Általános Szerződési Feltételeit<ph name="END_LINK2" />. A <ph name="BEGIN_LINK3" />Family Link szolgáltatással kezelt Google-fiókokra vonatkozó adatvédelmi közlemény<ph name="END_LINK3" /> is érvényben van.</translation>
 <translation id="397583555483684758">A szinkronizálás leállt</translation>
 <translation id="3976396876660209797">A gyorsparancs eltávolítása és újbóli létrehozása</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> megnyitása</translation>
 <translation id="4634124774493850572">Jelszó használata</translation>
 <translation id="4650364565596261010">Alapértelmezett</translation>
+<translation id="465657074423018424">A Biztonságos Böngészés védelmet nyújt a megtévesztő webhelyekkel szemben. Ha kikapcsolja, legyen kivételesen óvatos böngészéskor – különösen a jelszavak megadása előtt.</translation>
 <translation id="4662373422909645029">A névben nem lehet szám</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> könyvjelző törölve</translation>
 <translation id="4665282149850138822">A(z) <ph name="NAME" /> felkerült a kezdőképernyőre</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Oldalnyomtatási lehetőségek megnyitása</translation>
 <translation id="4842092870884894799">Jelszógenerálás előugró ablakának megjelenítése</translation>
 <translation id="4860895144060829044">Hívás</translation>
+<translation id="4864369630010738180">Bejelentkezés...</translation>
 <translation id="4866368707455379617">Nem lehetséges a(z) <ph name="MODULE" /> telepítése a Chrome-hoz</translation>
 <translation id="4875775213178255010">Javasolt tartalmak</translation>
 <translation id="4878404682131129617">Nem sikerült a proxyszerveren keresztüli alagút kialakítása</translation>
@@ -720,7 +727,7 @@
 <translation id="6573431926118603307">A más eszközökön futó Chrome böngészőben megnyitott lapok itt jelennek meg.</translation>
 <translation id="6583199322650523874">Az aktuális oldal felvétele a könyvjelzők közé</translation>
 <translation id="6588043302623806746">Biztonságos DNS használata</translation>
-<translation id="6590471736817333463">Csökkentse akár 60%-kal adatforgalmát</translation>
+<translation id="6590471736817333463">Csökkentse akár 60%-kal is adatforgalmát</translation>
 <translation id="6593061639179217415">Asztali webhely</translation>
 <translation id="6597891566292541626">Igazítsa a QR-kódot/vonalkódot ehhez a kerethez.</translation>
 <translation id="6600954340915313787">A Chrome-ba másolva</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Fiók kezelése</translation>
 <translation id="7077143737582773186">SD-kártya</translation>
 <translation id="7080806333218412752">Elküldi az URL-eket a Biztonságos Böngészésnek ellenőrzésre. Elküldi továbbá az oldalakkal, letöltésekkel, bővítményekkel és rendszerrel kapcsolatos adatok egy kisebb mintáját annak érdekében, hogy a jövőben könnyebben felismerhessük az új fenyegetéseket. Amikor be van jelentkezve, ideiglenesen a Google-fiókjához kapcsolja ezeket az adatokat, hogy megvédhessük Önt a Google-alkalmazásokban.</translation>
+<translation id="7088681679121566888">A Chrome naprakész</translation>
 <translation id="7121362699166175603">Törli a címsávban található előzményeket és automatikus kiegészítéseket. Előfordulhat, hogy a böngészési előzmények más formái még megtalálhatók Google-fiókjában a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> webhelyen.</translation>
 <translation id="7128355412245153445">A Kezdőképernyő gombra koppintva bármikor a leggyakoribb webhelyeihez és a legfrissebb hírekhez ugorhat.</translation>
 <translation id="7138678301420049075">Egyéb</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">A szinkronizálás megkezdéséhez kapcsolja be a „Chrome-adatok szinkronizálása” beállítást.</translation>
 <translation id="729975465115245577">Az eszközön nincs olyan alkalmazás, amely tárolni tudja a jelszavakat tartalmazó fájlt.</translation>
 <translation id="7302081693174882195">Részletek: Megtakarított adatmennyiség szerinti rendezés</translation>
+<translation id="7304873321153398381">Offline. A Chrome nem tudja ellenőrizni a jelszavakat.</translation>
 <translation id="7328017930301109123">Lite módban a Chrome gyorsabban betölti az oldalakat, és akár 60 százalékkal kisebb adatforgalmat generál.</translation>
 <translation id="7333031090786104871">Az előző webhely hozzáadása még folyamatban van</translation>
 <translation id="7340958967809483333">A Discover beállításai</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Igen, folytatom</translation>
 <translation id="7413229368719586778">Kezdés dátuma: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Beállíthatja, hogy a rendszer hogyan szabja személyre a Keresést és egyebeket a böngészési előzmények alapján</translation>
+<translation id="7435356471928173109">A rendszergazda kikapcsolta</translation>
 <translation id="7437998757836447326">Kijelentkezés a Chrome-ból</translation>
 <translation id="7438641746574390233">Amikor be van kapcsolva az Egyszerűsített mód, a Chrome a Google szervereit használja az oldalak felgyorsítására. Az Egyszerűsített mód átírja a nagyon lassú oldalakat, hogy csak a fontos tartalmakat töltsék be. Az Egyszerűsített mód nem használható inkognitó lapokon.</translation>
 <translation id="7444811645081526538">További kategóriák</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Összetett jelszó</translation>
 <translation id="9063523880881406963">Kapcsolja ki az Asztali webhely kérése funkciót</translation>
 <translation id="9065203028668620118">Szerkesztés</translation>
+<translation id="9069543557624799859">Letöltés kezdete: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Hangalapú keresés indítása</translation>
 <translation id="9074336505530349563">A Google által javasolt, személyre szabott tartalmak fogadásához jelentkezzen be, és kapcsolja be a szinkronizálást</translation>
 <translation id="9086302186042011942">Szinkronizálás</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 2cf642d..067329a 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Բացել էջը տպելու տարբերակները</translation>
 <translation id="4842092870884894799">Ցուցադրվում է գաղտնաբառի ստեղծման ելնող պատուհանը</translation>
 <translation id="4860895144060829044">Զանգեք</translation>
+<translation id="4864369630010738180">Մուտք...</translation>
 <translation id="4866368707455379617">Չհաջողվեց տեղադրել «<ph name="MODULE" />» բաղադրիչը Chrome-ի համար</translation>
 <translation id="4875775213178255010">Բովանդակության առաջարկներ</translation>
 <translation id="4878404682131129617">Չհաջողվեց կապ հաստատել միջնորդ սերվերի միջոցով</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 0945117d..59b3541 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Membuka opsi untuk mencetak halaman</translation>
 <translation id="4842092870884894799">Menampilkan pop-up pembuatan sandi</translation>
 <translation id="4860895144060829044">Telepon</translation>
+<translation id="4864369630010738180">Login...</translation>
 <translation id="4866368707455379617">Tidak dapat menginstal <ph name="MODULE" /> untuk Chrome</translation>
 <translation id="4875775213178255010">Saran Konten</translation>
 <translation id="4878404682131129617">Gagal membentuk saluran melalui server proxy</translation>
@@ -1055,7 +1056,7 @@
 <translation id="9209888181064652401">Tidak dapat menelepon</translation>
 <translation id="9219103736887031265">Gambar</translation>
 <translation id="926205370408745186">Hapus aktivitas Chrome Anda dari Kesehatan Digital</translation>
-<translation id="927968626442779827">Gunakan mode Ringan di Google Chrome</translation>
+<translation id="927968626442779827">Gunakan Mode Ringan di Google Chrome</translation>
 <translation id="932327136139879170">Beranda</translation>
 <translation id="93753284658583800">Halaman beranda diubah</translation>
 <translation id="938850635132480979">Kesalahan: <ph name="ERROR_CODE" /></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 d3205d23..c1ffaad 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
@@ -42,7 +42,7 @@
 <translation id="1283039547216852943">Ýttu til að stækka</translation>
 <translation id="1291207594882862231">Hreinsa feril, fótspor, svæði, gögn, skyndiminni…</translation>
 <translation id="129553762522093515">Nýlega lokað</translation>
-<translation id="1298077576058087471">Sparaðu allt að 60% af gagnamagni, lestu fréttir dagsins</translation>
+<translation id="1298077576058087471">Sparaðu allt að 60% af gögnum, lestu fréttir dagsins</translation>
 <translation id="1303339473099049190">Þetta aðgangsorð finnst ekki. Athugaðu stafsetninguna og reyndu aftur.</translation>
 <translation id="1303507811548703290"><ph name="DOMAIN" /> - Sent úr <ph name="DEVICE_NAME" /></translation>
 <translation id="1310482092992808703">Sameina flipa</translation>
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Afrita vefslóð</translation>
 <translation id="2156074688469523661">Eftirstandandi vefsvæði (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Til að deila einhverju úr símanum þínum í annað tæki skaltu kveikja á samstillingu Chrome í báðum tækjum</translation>
+<translation id="2158408438301413340">Chrome gat ekki athugað öll aðgangsorð</translation>
 <translation id="2169830938017475061">Núna</translation>
 <translation id="2175927920773552910">QR-kóði</translation>
 <translation id="218608176142494674">Deiling</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Stjórnaðu fréttunum þínum með hnappinum Valkostir fyrir Tillögur</translation>
 <translation id="2259659629660284697">Flytja út aðgangsorð…</translation>
 <translation id="2268044343513325586">Þrengja</translation>
+<translation id="2276696007612801991">Skráðu þig inn á Google reikninginn þinn til að athuga aðgangsorðin þín</translation>
 <translation id="2286841657746966508">Heimilisfang greiðanda</translation>
 <translation id="230115972905494466">Engin samhæf tæki fundust</translation>
 <translation id="2318045970523081853">Ýttu til að hringja</translation>
@@ -262,10 +264,10 @@
 <translation id="305593374596241526">Slökkt er á staðsetningum. Kveiktu á þeim í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
 <translation id="3058498974290601450">Hægt er að kveikja á samstillingu hvenær sem er í stillingunum</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bókamerki}one{<ph name="BOOKMARKS_COUNT_MANY" /> bókamerki}other{<ph name="BOOKMARKS_COUNT_MANY" /> bókamerki}}</translation>
-<translation id="3062802207422175757">Greinar í Chrome sem tengjast áhugamálum þínum</translation>
+<translation id="3062802207422175757">Greinar sem tengjast áhugamálum þínum í Chrome</translation>
 <translation id="3089395242580810162">Opna í huliðsflipa</translation>
 <translation id="3114012059975132928">Myndspilari</translation>
-<translation id="3114507951000454849">Lesa fréttir dagsins <ph name="NEWS_ICON" /></translation>
+<translation id="3114507951000454849">Lestu fréttir dagsins <ph name="NEWS_ICON" /></translation>
 <translation id="3123734510202723619">Tilkynningar</translation>
 <translation id="3137521801621304719">Slökkva á huliðsstillingu</translation>
 <translation id="3143515551205905069">Hætta við samstillingu</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /> um uppástungur að efni</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Kveikt er á hefðbundinni vörn</translation>
+<translation id="3509330069915219067">Án nettengingar. Chrome getur ekki leitað að uppfærslum.</translation>
 <translation id="3513704683820682405">Aukinn veruleiki</translation>
 <translation id="3518985090088779359">Samþykkja og áfram</translation>
 <translation id="3522247891732774234">Uppfærsla í boði. Fleiri valkostir</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Þvinga fram aðdrátt</translation>
 <translation id="3909763690984331376">Öryggisathugun <ph name="BEGIN_NEW" />Nýtt<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Leitar að því besta á vefnum…</translation>
+<translation id="3924911262913579434">Áætlunin <ph name="SAFE_BROWSING_MODE" /> er virk</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Sameina gögnin mín</translation>
 <translation id="393697183122708255">Engin virk raddleit er í boði</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome hleður síðunni þegar hún er tilbúin}one{Chrome hleður síðunum þegar þær eru tilbúnar}other{Chrome hleður síðunum þegar þær eru tilbúnar}}</translation>
 <translation id="3963007978381181125">Dulkóðun aðgangsorðs inniheldur ekki greiðslumáta og heimilisföng af Google Pay. Aðeins þeir sem vita aðgangsorðið þitt geta lesið dulkóðuðu gögnin þín. Aðgangsorðið er hvorki sent til Google né geymt. Ef þú gleymir aðgangsorðinu eða vilt breyta þessari stillingu þarftu að endurstilla samstillingu. <ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Niðurhali lokið</translation>
+<translation id="3969142555815019568">Chrome getur ekki athugað aðgangsorðin þín</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> mun opnast í Chrome. Með því að halda áfram samþykkir þú <ph name="BEGIN_LINK1" />þjónustuskilmála Google<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />viðbótarskilmála Google Chrome og Chrome OS<ph name="END_LINK2" />. <ph name="BEGIN_LINK3" />Persónuvernd fyrir Google reikninga sem stjórnað er með Family Link<ph name="END_LINK3" /> gildir einnig.</translation>
 <translation id="397583555483684758">Samstilling er hætt að virka</translation>
 <translation id="3976396876660209797">Fjarlægðu flýtileiðina og búðu hana til aftur</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Opna <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Nota aðgangsorð</translation>
 <translation id="4650364565596261010">Sjálfgildi kerfis</translation>
+<translation id="465657074423018424">Örugg vefnotkun ver þig fyrir villandi vefsvæðum. Ef þú slekkur á henni skaltu fara afar varlega við vefskoðun, sérstaklega áður en þú slærð inn aðgangsorð.</translation>
 <translation id="4662373422909645029">Gælunöfn mega ekki hafa númer</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bókamerkjum eytt</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> var bætt við heimaskjáinn þinn</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Opna valkosti fyrir prentun síðunnar</translation>
 <translation id="4842092870884894799">Sýnir sprettiglugga fyrir myndun aðgangsorðs</translation>
 <translation id="4860895144060829044">Hringja</translation>
+<translation id="4864369630010738180">Skráir inn...</translation>
 <translation id="4866368707455379617">Ekki tókst að setja upp <ph name="MODULE" /> fyrir Chrome</translation>
 <translation id="4875775213178255010">Tillögur að efni</translation>
 <translation id="4878404682131129617">Ekki tókst að koma á göngum um staðgengilsþjón</translation>
@@ -720,7 +727,7 @@
 <translation id="6573431926118603307">Flipar sem þú hefur opnað í Chrome í öðrum tækjum birtast hér.</translation>
 <translation id="6583199322650523874">Bókamerkja þessa síðu</translation>
 <translation id="6588043302623806746">Nota öruggt DNS</translation>
-<translation id="6590471736817333463">Sparaðu allt að 60% af gagnamagni</translation>
+<translation id="6590471736817333463">Sparaðu allt að 60% af gögnum</translation>
 <translation id="6593061639179217415">Tölvuvefsvæði</translation>
 <translation id="6597891566292541626">Staðsettu QR-/strikamerkið innan rammans.</translation>
 <translation id="6600954340915313787">Afritað yfir í Chrome</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Stjórna reikningi</translation>
 <translation id="7077143737582773186">SD-kort</translation>
 <translation id="7080806333218412752">Sendir vefslóðir til athugunar í Öruggri vefskoðun. Sendir einnig lítið brot af síðum, niðurhali, virkni viðbóta og kerfisupplýsingar til að auðvelda leit að nýjum ógnum. Tengir þessi gögn tímabundið við Google reikninginn þinn þegar þú ert skráð(ur) inn til að auka öryggi þitt í Google forritum.</translation>
+<translation id="7088681679121566888">Chrome er uppfærður</translation>
 <translation id="7121362699166175603">Hreinsar ferilinn og sjálfvirka útfyllingu í veffangastikunni. Google reikningurinn þinn kann að vera með annars konar vefskoðunarferil á <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Sjáðu vefsvæðin sem þú heimsækir oftast og nýlegar sögur þegar þú ýtir á heimahnappinn</translation>
 <translation id="7138678301420049075">Annað</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Til að hefja samstillingu skaltu kveikja á „Samstilla gögnin þín í Chrome“.</translation>
 <translation id="729975465115245577">Í tækinu er ekkert forrit sem getur vistað aðgangsorðaskrána.</translation>
 <translation id="7302081693174882195">Upplýsingar: Raðað eftir gagnasparnaði</translation>
+<translation id="7304873321153398381">Án nettengingar. Chrome getur ekki athugað aðgangsorðin þín.</translation>
 <translation id="7328017930301109123">Í léttútgáfu hleður Chrome síðum hraðar og notar allt að 60 prósentum minna gagnamagn.</translation>
 <translation id="7333031090786104871">Er enn að bæta fyrra vefsvæði við</translation>
 <translation id="7340958967809483333">Valkostir fyrir Tillögur</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Hljómar vel</translation>
 <translation id="7413229368719586778">Upphafsdagur er <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Stjórnaðu því hvernig vefskoðunarferillinn þinn er notaður til að sérsníða leit og fleira</translation>
+<translation id="7435356471928173109">Kerfisstjórinn slökkti á þessu</translation>
 <translation id="7437998757836447326">Skrá út af Chrome</translation>
 <translation id="7438641746574390233">Þegar kveikt er á léttútgáfu notar Chrome þjóna Google til að hlaða síðum hraðar. Léttútgáfa endurskrifar mjög hægar síður og hleður aðeins nauðsynlegu efni. Léttútgáfa er ekki notuð á huliðsflipum.</translation>
 <translation id="7444811645081526538">Fleiri flokkar</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Aðgangsorð</translation>
 <translation id="9063523880881406963">Slökkva á beiðni um vefsvæði fyrir tölvur</translation>
 <translation id="9065203028668620118">Breyta</translation>
+<translation id="9069543557624799859">Niðurhal hefst kl. <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Hefja raddleit</translation>
 <translation id="9074336505530349563">Skráðu þig inn og kveiktu á samstillingu til að fá sérsniðið efni sem Google stingur upp á</translation>
 <translation id="9086302186042011942">Samstillir</translation>
@@ -1055,7 +1066,7 @@
 <translation id="9209888181064652401">Ekki er hægt að hringja</translation>
 <translation id="9219103736887031265">Myndir</translation>
 <translation id="926205370408745186">Fjarlægja það sem þú gerir í Chrome úr stafrænni vellíðan</translation>
-<translation id="927968626442779827">Nota léttútgáfu í Google Chrome</translation>
+<translation id="927968626442779827">Nota Léttútgáfu í Google Chrome</translation>
 <translation id="932327136139879170">Heim</translation>
 <translation id="93753284658583800">Heimasíðu breytt</translation>
 <translation id="938850635132480979">Villa: <ph name="ERROR_CODE" /></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 61ed5401..5321f2d2 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Apri la pagina delle opzioni di stampa</translation>
 <translation id="4842092870884894799">È mostrato il popup di generazione della password</translation>
 <translation id="4860895144060829044">Chiama</translation>
+<translation id="4864369630010738180">Accesso in corso...</translation>
 <translation id="4866368707455379617">Impossibile installare <ph name="MODULE" /> per Chrome</translation>
 <translation id="4875775213178255010">Contenuti suggeriti</translation>
 <translation id="4878404682131129617">Creazione di un tunnel tramite server proxy non riuscita</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 b4941ca..5c9fd78c 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">פתח אפשרויות להדפסת דפים</translation>
 <translation id="4842092870884894799">מציג את החלון הקופץ של יצירת סיסמה</translation>
 <translation id="4860895144060829044">תרימו טלפון</translation>
+<translation id="4864369630010738180">נכנס...</translation>
 <translation id="4866368707455379617">‏לא ניתן להתקין את <ph name="MODULE" /> ל-Chrome</translation>
 <translation id="4875775213178255010">תוכן מוצע</translation>
 <translation id="4878404682131129617">‏יצירת מנהרה בעזרת שרת proxy נכשלה</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 a770824..9b0a872 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">ページの印刷オプションを開く</translation>
 <translation id="4842092870884894799">パスワード作成のポップアップを表示しています</translation>
 <translation id="4860895144060829044">通話</translation>
+<translation id="4864369630010738180">ログインしています...</translation>
 <translation id="4866368707455379617">Chrome 用の <ph name="MODULE" /> をインストールできません</translation>
 <translation id="4875775213178255010">おすすめのコンテンツ</translation>
 <translation id="4878404682131129617">プロキシ サーバー経由のトンネルを確立できませんでした</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 cd9a737..6004b05b 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">გვერდის ბეჭდვის ვარიანტების გახსნა</translation>
 <translation id="4842092870884894799">პაროლების გენერირების კონტექსტური ფანჯრის ჩვენება</translation>
 <translation id="4860895144060829044">დარეკვა</translation>
+<translation id="4864369630010738180">მიმდინარეობს შესვლა…</translation>
 <translation id="4866368707455379617"><ph name="MODULE" /> ვერ დაინსტალირდა Chrome-ისთვის</translation>
 <translation id="4875775213178255010">კონტენტის შემოთავაზება</translation>
 <translation id="4878404682131129617">პროქსი-სერვერის მეშვეობით გვირაბული კავშირის დამყარება ვერ მოხერხდა</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 d467146..2808763 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Бетті басып шығару үшін опцияларды ашу</translation>
 <translation id="4842092870884894799">Құпия сөз жасау қалқымалы терезесін көрсету</translation>
 <translation id="4860895144060829044">Қоңырау шалу</translation>
+<translation id="4864369630010738180">Жүйеге кіруде…</translation>
 <translation id="4866368707455379617">Chrome браузеріне арналған <ph name="MODULE" /> орнату мүмкін болмады.</translation>
 <translation id="4875775213178255010">Мазмұн ұсыныстары</translation>
 <translation id="4878404682131129617">Прокси-сервер арқылы байланыс орнатылмады</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 c5a05b8..7df4f9a 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">បើកជម្រើសដើម្បីបោះពុម្ពទំព័រ</translation>
 <translation id="4842092870884894799">កំពុងបង្ហាញផ្ទាំងលោតបបង្កើតពាក្យសម្ងាត់</translation>
 <translation id="4860895144060829044">ហៅ</translation>
+<translation id="4864369630010738180">កំពុង​ចូល...</translation>
 <translation id="4866368707455379617">មិនអាចដំឡើង <ph name="MODULE" /> សម្រាប់ Chrome បានទេ</translation>
 <translation id="4875775213178255010">ការណែនាំ​អំពី​ខ្លឹមសារ</translation>
 <translation id="4878404682131129617">មិន​អាច​បង្កើត​ច្រកបណ្តាញ​តាមរយៈ​ម៉ាស៊ីនមេ​ប្រូកស៊ី​ទេ</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 1a1ba7b0..3a4c3a0 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
@@ -153,6 +153,7 @@
 <translation id="2154710561487035718">URL ನಕಲಿಸಿ</translation>
 <translation id="2156074688469523661">ಉಳಿದ ಸೈಟ್‌ಗಳು (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">ನಿಮ್ಮ ಫೋನ್‌ನಿಂದ ಮತ್ತೊಂದು ಸಾಧನಕ್ಕೆ ಏನನ್ನಾದರೂ ಹಂಚಿಕೊಳ್ಳಲು, ಎರಡೂ ಸಾಧನಗಳಲ್ಲಿರುವ, Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಸಿಂಕ್ ಅನ್ನು ಆನ್ ಮಾಡಿ</translation>
+<translation id="2158408438301413340">ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="2169830938017475061">ಈಗ</translation>
 <translation id="2175927920773552910">QR ಕೋಡ್</translation>
 <translation id="218608176142494674">ಹಂಚಿಕೆ</translation>
@@ -161,6 +162,7 @@
 <translation id="2239812875700136898">ಡಿಸ್ಕವರ್‌ಗಾಗಿ ಆಯ್ಕೆಗಳ ಬಟನ್‌ನಿಂದ ನಿಮ್ಮ ಕಥೆಗಳನ್ನು ನಿಯಂತ್ರಿಸಿ</translation>
 <translation id="2259659629660284697">ಪಾಸ್‌ವರ್ಡ್‍ಗಳನ್ನು ಎಕ್ಸ್‌ಪೋರ್ಟ್ ಮಾಡಿ…</translation>
 <translation id="2268044343513325586">ಪರಿಷ್ಕರಿಸು</translation>
+<translation id="2276696007612801991">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು, ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="2286841657746966508">ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸ</translation>
 <translation id="230115972905494466">ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯಾಗುವ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation>
 <translation id="2318045970523081853">ಕರೆ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
@@ -317,6 +319,7 @@
 <translation id="3493531032208478708">ಸೂಚಿಸಲಾದ ವಿಷಯದ ಕುರಿತು <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">ಪ್ರಮಾಣಿತ ಸುರಕ್ಷತೆ ಆನ್ ಆಗಿದೆ</translation>
+<translation id="3509330069915219067">ಆಫ್‌ಲೈನ್. ಅಪ್‌ಡೇಟ್‌ಗಳಿವೆಯೇ ಎಂದು ನೋಡಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
 <translation id="3513704683820682405">ವರ್ಧಿತ ವಾಸ್ತವತೆ</translation>
 <translation id="3518985090088779359">ಸಮ್ಮತಿಸು &amp; ಮುಂದುವರಿಸು</translation>
 <translation id="3522247891732774234">ಅಪ್‌ಡೇಟ್‌ ಲಭ್ಯವಿದೆ. ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು</translation>
@@ -366,6 +369,7 @@
 <translation id="3895926599014793903">ಒತ್ತಾಯದ ಝೂಮ್ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ</translation>
 <translation id="3909763690984331376">ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ <ph name="BEGIN_NEW" />ಹೊಸತು<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">ವೆಬ್‌ನಿಂದ ಅತ್ಯುತ್ತಮ ವಿಷಯಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> ಆನ್ ಆಗಿದೆ</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">ನನ್ನ ಡೇಟಾ ಒಂದುಗೂಡಿಸಿ</translation>
 <translation id="393697183122708255">ಯಾವುದೇ ಸಕ್ರಿಯಗೊಳಿಸಿದ ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ</translation>
@@ -373,6 +377,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{ಸಿದ್ಧವಾದಾಗ, ನಿಮ್ಮ ಪುಟವನ್ನು Chrome ಲೋಡ್ ಮಾಡುತ್ತದೆ}one{ಸಿದ್ಧವಾದಾಗ, ನಿಮ್ಮ ಪುಟಗಳನ್ನು Chrome ಲೋಡ್ ಮಾಡುತ್ತದೆ}other{ಸಿದ್ಧವಾದಾಗ, ನಿಮ್ಮ ಪುಟಗಳನ್ನು Chrome ಲೋಡ್ ಮಾಡುತ್ತದೆ}}</translation>
 <translation id="3963007978381181125">ಪಾಸ್‌ಫ್ರೇಸ್ ಎನ್‌ಕ್ರಿಪ್ಶನ್, Google Pay ನಿಂದ ಪಾವತಿ ವಿಧಾನಗಳು ಮತ್ತು ವಿಳಾಸಗಳನ್ನು ಒಳಗೊಂಡಿರುವುದಿಲ್ಲ. ನಿಮ್ಮ ಎನ್‍‍ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಪಾಸ್‌ಫ್ರೇಸ್ ಹೊಂದಿರುವ ಯಾರಾದರೂ ಮಾತ್ರ ಓದಬಹುದು. ಪಾಸ್‍‍ಫ್ರೇಸ್‍ ಅನ್ನು Google ಗೆ ಕಳುಹಿಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಅದನ್ನು Google ನಿಂದ ಸಂಗ್ರಹಿಸಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ಪಾಸ್‍‍ಫ್ರೇಸ್ ಅನ್ನು ನೀವು ಮರೆತರೆ ಅಥವಾ ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸಿದರೆ, ನೀವು ಸಿಂಕ್ ಅನ್ನು ಮರುಹೊಂದಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ.<ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">ಡೌನ್‌ಲೋಡ್‌‌ ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
+<translation id="3969142555815019568">Chrome ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" />, Chrome ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ. ಮುಂದುವರಿಯುವ ಮೂಲಕ, ನೀವು <ph name="BEGIN_LINK1" />Google ಸೇವಾ ನಿಯಮಗಳು<ph name="END_LINK1" />, ಹಾಗೂ <ph name="BEGIN_LINK2" />Google Chrome ಮತ್ತು Chrome OS ಹೆಚ್ಚುವರಿ ಸೇವಾ ನಿಯಮಗಳಿಗೆ<ph name="END_LINK2" /> ಸಮ್ಮತಿಸುತ್ತೀರಿ. <ph name="BEGIN_LINK3" />Family Link ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುವ Google ಖಾತೆಗಳಿಗಾಗಿ ಗೌಪ್ಯತೆ ಸೂಚನೆ<ph name="END_LINK3" /> ಸಹ ಅನ್ವಯಿಸುತ್ತದೆ.</translation>
 <translation id="397583555483684758">ಸಿಂಕ್ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದೆ</translation>
 <translation id="3976396876660209797">ಈ ಶಾರ್ಟ್‌ಕಟ್‌ ಅನ್ನು ತೆಗೆದುಹಾಕಿ ಮತ್ತು ಮರುರಚಿಸಿ</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> ತೆರೆಯಿರಿ</translation>
 <translation id="4634124774493850572">ಪಾಸ್‌ವರ್ಡ್ ಬಳಸಿ</translation>
 <translation id="4650364565596261010">ಸಿಸ್ಟಂ ಡಿಫಾಲ್ಟ್</translation>
+<translation id="465657074423018424">ಮೋಸಗೊಳಿಸುವ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಂದ ನಿಮ್ಮನ್ನು ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ ರಕ್ಷಿಸುತ್ತದೆ. ಇದನ್ನು ನೀವು ಆಫ್ ಮಾಡಿದರೆ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಮೂದಿಸುವ ಮೊದಲು ಬ್ರೌಸ್ ಮಾಡುವಾಗ ಹೆಚ್ಚುವರಿ ಜಾಗರೂಕರಾಗಿರಿ.</translation>
 <translation id="4662373422909645029">ಅಡ್ಡಹೆಸರಿಗೆ ಸಂಖ್ಯೆ ಇಲ್ಲ</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ಅನ್ನು ನಿಮ್ಮ ಹೋಮ್ ಪರದೆಗೆ ಸೇರಿಸಲಾಗಿದೆ</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">ಪುಟವನ್ನು ಮುದ್ರಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="4842092870884894799">ಪಾಸ್‌ವರ್ಡ್ ರಚನೆ ಪಾಪ್‌ಅಪ್ ತೋರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="4860895144060829044">ಕರೆ</translation>
+<translation id="4864369630010738180">ಸೈನ್ ಇನ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="4866368707455379617">Chrome ಗಾಗಿ <ph name="MODULE" /> ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="4875775213178255010">ವಿಷಯದ ಸಲಹೆಗಳು</translation>
 <translation id="4878404682131129617">ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಮೂಲಕ ಟ್ಯೂನಲ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ವಿಫಲವಾಗಿದೆ</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="7077143737582773186">ಎಸ್‌ಡಿ ಕಾರ್ಡ್‌</translation>
 <translation id="7080806333218412752">URL ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು, ಅವುಗಳನ್ನು ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ. ಹೊಸ ಬೆದರಿಕೆಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ನೆರವಾಗುವುದಕ್ಕಾಗಿ, ಪುಟಗಳು, ಡೌನ್‌ಲೋಡ್‌ಗಳು, ವಿಸ್ತರಣೆಯ ಚಟುವಟಿಕೆ ಮತ್ತು ಸಿಸ್ಟಂ ಮಾಹಿತಿಯ ಸಣ್ಣ ಮಾದರಿಯನ್ನು ಸಹ ಕಳುಹಿಸುತ್ತದೆ. ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Google ಆ್ಯಪ್‌ಗಳಾದ್ಯಂತ ನಿಮ್ಮನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸುವುದಕ್ಕಾಗಿ, ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯೊಂದಿಗೆ ತಾತ್ಕಾಲಿಕವಾಗಿ ಲಿಂಕ್ ಮಾಡುತ್ತದೆ.</translation>
+<translation id="7088681679121566888">Chrome ಅಪ್ ಟು ಡೇಟ್ ಆಗಿದೆ</translation>
 <translation id="7121362699166175603">ವಿಳಾಸ ಪಟ್ಟಿಯ ಇತಿಹಾಸ ಮತ್ತು ಸ್ವಯಂಪೂರ್ಣಗೊಳಿಸುವಿಕೆಯನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ. ನಿಮ್ಮ Google ಖಾತೆಯು <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ನಲ್ಲಿ ಇತರ ವಿಧಗಳ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಹೊಂದಿರಬಹುದು.</translation>
 <translation id="7128355412245153445">ನೀವು ಮುಖಪುಟ ಬಟನ್ ಟ್ಯಾಪ್ ಮಾಡಿದಾಗಲೆಲ್ಲಾ, ನಿಮ್ಮ ಪ್ರಮುಖ ಸೈಟ್‌ಗಳು ಮತ್ತು ಇತ್ತೀಚಿನ ಸುದ್ದಿಗಳನ್ನು ನೋಡಿ</translation>
 <translation id="7138678301420049075">ಇತರೆ</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು, "ನಿಮ್ಮ Chrome ಡೇಟಾ ಸಿಂಕ್ ಮಾಡಿ" ಆಯ್ಕೆಯನ್ನು ಆನ್ ಮಾಡಿ.</translation>
 <translation id="729975465115245577">ನಿಮ್ಮ ಸಾಧನವು ಪಾಸ್‌ವರ್ಡ್‌ ಫೈಲ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಿಡಲು ಅಪ್ಲಿಕೇಶನ್‌ ಅನ್ನು ಹೊಂದಿಲ್ಲ.</translation>
 <translation id="7302081693174882195">ವಿವರಗಳು: ಉಳಿಸಿದ ಡೇಟಾ ಪ್ರಮಾಣದ ಆಧಾರದಲ್ಲಿ ವಿಂಗಡಿಸಲಾಗಿದೆ</translation>
+<translation id="7304873321153398381">ಆಫ್‌ಲೈನ್. Chrome ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
 <translation id="7328017930301109123">ಲೈಟ್ ಮೋಡ್‍ನಲ್ಲಿ, Chrome ವೇಗವಾಗಿ ಪುಟಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಡೇಟಾವನ್ನು ಸುಮಾರು ಶೇಕಡಾ 60 ರಷ್ಟು ಕಡಿಮೆ ಬಳಸುತ್ತದೆ.</translation>
 <translation id="7333031090786104871">ಇನ್ನೂ ಹಿಂದಿನ ಸೈಟ್ ಅನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="7340958967809483333">Discover ಗಾಗಿ ಆಯ್ಕೆಗಳು</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">ಹೌದು, ನಾನಿದ್ದೇನೆ</translation>
 <translation id="7413229368719586778">ಪ್ರಾರಂಭ ದಿನಾಂಕ <ph name="DATE" /></translation>
 <translation id="7431991332293347422">ಹುಡುಕಾಟ ಮತ್ತು ಇನ್ನೂ ಹೆಚ್ಚಿನವುಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಹೇಗೆ ಬಳಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಿ</translation>
+<translation id="7435356471928173109">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಆಫ್ ಮಾಡಿದ್ದಾರೆ</translation>
 <translation id="7437998757836447326">Chrome ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="7438641746574390233">ಲೈಟ್ ಮೋಡ್ ಆನ್ ಆಗಿರುವಾಗ, ಪುಟಗಳು ವೇಗವಾಗಿ ಲೋಡ್ ಆಗುವಂತೆ ಮಾಡಲು, Google ಸರ್ವರ್‌ಗಳನ್ನು Chrome ಬಳಸುವುದು. ಅತ್ಯಗತ್ಯವಾದ ವಿಷಯವನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡಲು, ಬಹಳ ನಿಧಾನವಾಗಿ ಲೋಡ್ ಆಗುವ ಪುಟಗಳನ್ನು ಲೈಟ್ ಮೋಡ್ ಪುನಃ ಬರೆಯುತ್ತದೆ. ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌ಗಳಿಗೆ ಲೈಟ್ ಮೋಡ್ ಅನ್ವಯಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="7444811645081526538">ಇನ್ನಷ್ಟು ವರ್ಗಗಳು</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">ಪಾಸ್‌ಫ್ರೇಸ್</translation>
 <translation id="9063523880881406963">ಡೆಸ್ಕ್‌ಟಾಪ್ ಸೈಟ್ ವಿನಂತಿಯನ್ನು ಆಫ್ ಮಾಡಿ</translation>
 <translation id="9065203028668620118">ಎಡಿಟ್</translation>
+<translation id="9069543557624799859"><ph name="TIME" /> ರಂದು ಡೌನ್‌ಲೋಡ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation>
 <translation id="9070377983101773829">ಧ್ವನಿ ಹುಡುಕಾಟವನ್ನು ಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="9074336505530349563">Google ಸಲಹೆ ನೀಡಿದ ವೈಯಕ್ತೀಕರಿಸಲಾದ ವಿಷಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸೈನ್ ಇನ್ ಮಾಡಿ ಮತ್ತು ಸಿಂಕ್ ಆನ್ ಮಾಡಿ</translation>
 <translation id="9086302186042011942">ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ</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 9ab3814..eb21b0b6 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">옵션을 열어 페이지 인쇄</translation>
 <translation id="4842092870884894799">비밀번호 생성 팝업 표시</translation>
 <translation id="4860895144060829044">전화걸기</translation>
+<translation id="4864369630010738180">로그인 중...</translation>
 <translation id="4866368707455379617">Chrome에 <ph name="MODULE" />을(를) 설치할 수 없습니다.</translation>
 <translation id="4875775213178255010">콘텐츠 추천</translation>
 <translation id="4878404682131129617">프록시 서버를 통한 터널 설정에 실패했습니다</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 0f6f702..4c5419c 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Баракты басып чыгаруу параметрлерин ачуу</translation>
 <translation id="4842092870884894799">Сырсөз түзүү калкып чыкмасы көрсөтүлүүдө</translation>
 <translation id="4860895144060829044">Чалуу</translation>
+<translation id="4864369630010738180">Кирүүдө…</translation>
 <translation id="4866368707455379617">Chrome үчүн <ph name="MODULE" /> орнотулган жок</translation>
 <translation id="4875775213178255010">Мазмун сунуштары</translation>
 <translation id="4878404682131129617">Прокси сервер аркылуу тоннель түзүлбөй калды</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 9f3fc08..00dcd1e 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">ເປີດຕົວເລືອກຕໍ່ກັບໜ້າການພິມ</translation>
 <translation id="4842092870884894799">ກຳ​ລັງ​ສະ​ແດງ​ປັອບ​ອັບການສ້າງລະ​ຫັດ​ຜ່ານ​</translation>
 <translation id="4860895144060829044">ໂທ</translation>
+<translation id="4864369630010738180">ກຳລັງເຂົ້າສູ່ລະບົບ...</translation>
 <translation id="4866368707455379617">ບໍ່ສາມາດຕິດຕັ້ງ <ph name="MODULE" /> ສໍາລັບ Chrome ໄດ້</translation>
 <translation id="4875775213178255010">ການແນະນຳເນື້ອຫາ</translation>
 <translation id="4878404682131129617">ການສ້າງຊ່ອງທາງເຊື່ອມຕໍ່ຜ່ານພຣັອກຊີເຊີບເວີບໍ່ສຳເລັດ</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 3031b28..79d0c1e2 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Kopijuoti URL adresą</translation>
 <translation id="2156074688469523661">Likusios svetainės (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Norėdami bendrinti turinį iš savo telefono į kitą įrenginį, įjunkite sinchronizavimą abiejų įrenginių „Chrome“ nustatymuose</translation>
+<translation id="2158408438301413340">„Chrome“ nepavyko patikrinti visų slaptažodžių</translation>
 <translation id="2169830938017475061">Dabar</translation>
 <translation id="2175927920773552910">QR kodas</translation>
 <translation id="218608176142494674">Bendrinimas</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Valdykite pasakojimus naudodami mygtuką „Discover“ parinktys“</translation>
 <translation id="2259659629660284697">Eksportuoti slaptažodžius…</translation>
 <translation id="2268044343513325586">Patikslinti</translation>
+<translation id="2276696007612801991">Prisijunkite prie „Google“ paskyros, kad patikrintumėte slaptažodžius</translation>
 <translation id="2286841657746966508">Atsiskaitymo adresas</translation>
 <translation id="230115972905494466">Nerasta jokių suderinamų įrenginių</translation>
 <translation id="2318045970523081853">Palieskite ir skambinkite</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /> apie siūlomą turinį</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Įprasta apsauga įjungta</translation>
+<translation id="3509330069915219067">Neprisijungta. „Chrome“ negali tikrinti, ar yra naujinių.</translation>
 <translation id="3513704683820682405">Išplėstoji realybė</translation>
 <translation id="3518985090088779359">Sutikti ir tęsti</translation>
 <translation id="3522247891732774234">Pasiekiamas naujinys. Daugiau parinkčių</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Priverstinai įgalinti mastelio keitimą</translation>
 <translation id="3909763690984331376">Saugos patikra <ph name="BEGIN_NEW" />Naujiena<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Ieškoma geriausio žiniatinklio turinio…</translation>
+<translation id="3924911262913579434">„<ph name="SAFE_BROWSING_MODE" />“ įjungta</translation>
 <translation id="3927692899758076493">Be užraitų</translation>
 <translation id="3928666092801078803">Sujungti duomenis</translation>
 <translation id="393697183122708255">Neįgalinta paieška balsu</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{„Chrome“ įkels puslapį, kai bus paruošta}one{„Chrome“ įkels puslapius, kai bus paruošta}few{„Chrome“ įkels puslapius, kai bus paruošta}many{„Chrome“ įkels puslapius, kai bus paruošta}other{„Chrome“ įkels puslapius, kai bus paruošta}}</translation>
 <translation id="3963007978381181125">Slaptafrazės šifruotė neapima mokėjimo metodų ir adresų iš „Google Pay“. Tik jūsų slaptafrazę žinantis asmuo gali skaityti šifruotus duomenis. Slaptafrazė nesiunčiama į sistemą „Google“ ir joje nesaugoma. Pamiršę slaptafrazę arba norėdami pakeisti šį nustatymą turėsite iš naujo nustatyti sinchronizavimą. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Atsisiuntimas baigtas</translation>
+<translation id="3969142555815019568">„Chrome“ negali patikrinti jūsų slaptažodžių</translation>
 <translation id="3974987681202239636">„<ph name="APP_NAME" />“ bus atidaryta naršyklėje „Chrome“. Tęsdami sutinkate su <ph name="BEGIN_LINK1" />„Google“ paslaugų teikimo sąlygomis<ph name="END_LINK1" /> ir <ph name="BEGIN_LINK2" />„Google Chrome“ bei „Chrome“ OS papildomomis paslaugų teikimo sąlygomis<ph name="END_LINK2" />. Taip pat taikomas <ph name="BEGIN_LINK3" />„Google“ paskyrų, kurios tvarkomos naudojant „Family Link“, privatumo pranešimas<ph name="END_LINK3" />.</translation>
 <translation id="397583555483684758">Sinchronizavimas nebeveikia</translation>
 <translation id="3976396876660209797">Pašalinkite šį spartųjį klavišą ir sukurkite jį iš naujo</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Atidaryti „<ph name="WEBAPK_NAME" />“</translation>
 <translation id="4634124774493850572">Naudoti slaptažodį</translation>
 <translation id="4650364565596261010">Sistemos numatytasis nustatymas</translation>
+<translation id="465657074423018424">Saugaus naršymo funkcija apsaugo jus nuo apgaulingų svetainių. Jei ją išjungsite, būkite itin atsargūs naršydami, ypač prieš įvesdami slaptažodžius.</translation>
 <translation id="4662373422909645029">Skaičiai slapyvardyje negalimi</translation>
 <translation id="4663756553811254707">Ištrinta žymių: <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822">Svetainė „<ph name="NAME" />“ pridėta prie pagrindinio ekrano</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Atidaryti puslapio spausdinimo parinktis</translation>
 <translation id="4842092870884894799">Rodomas slaptažodžio generavimo iššokantysis langas</translation>
 <translation id="4860895144060829044">Skambinti</translation>
+<translation id="4864369630010738180">Prisijungiama...</translation>
 <translation id="4866368707455379617">Nepavyko įdiegti „Chrome“ skirto modulio „<ph name="MODULE" />“</translation>
 <translation id="4875775213178255010">Turinio pasiūlymai</translation>
 <translation id="4878404682131129617">Nepavyko užmegzti tunelinio ryšio per tarpinį serverį</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Tvarkyti paskyrą</translation>
 <translation id="7077143737582773186">SD kortelė</translation>
 <translation id="7080806333218412752">Siunčia URL Saugaus naršymo funkcijai, kad juos patikrintų. Taip pat siunčia nedaug puslapių, atsisiuntimų, plėtinių veiklos ir sistemos informacijos, kad padėtų aptikti naujas grėsmes. Laikinai susieja šiuos duomenis su „Google“ paskyra, kai esate prisijungę, kad apsaugotų jus „Google“ programose.</translation>
+<translation id="7088681679121566888">„Chrome“ atnaujinta</translation>
 <translation id="7121362699166175603">Išvaloma istorija ir automatiniai užbaigimai adreso juostoje. „Google“ paskyroje gali būti kito tipo naršymo istorijos, kuri pasiekiama adresu <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Peržiūrėkite populiariausias svetaines ir naujausius pasakojimus palietę pagrindinio ekrano mygtuką</translation>
 <translation id="7138678301420049075">Kitas</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Norėdami pradėti sinchronizuoti, įjunkite parinktį „Chrome“ duomenų sinchronizavimas“.</translation>
 <translation id="729975465115245577">Įrenginyje nėra slaptažodžių failo saugojimo programos.</translation>
 <translation id="7302081693174882195">Išsami informacija: surūšiuota pagal išsaugotų duomenų kiekį</translation>
+<translation id="7304873321153398381">Neprisijungta. „Chrome“ negali patikrinti jūsų slaptažodžių.</translation>
 <translation id="7328017930301109123">Kai įjungtas supaprastintasis režimas, sistemoje „Chrome“ puslapiai įkeliami sparčiau ir naudojama iki 60 proc. mažiau duomenų.</translation>
 <translation id="7333031090786104871">Vis dar pridedama ankstesnė svetainė</translation>
 <translation id="7340958967809483333">„Discover“ parinktys</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Taip, sutinku</translation>
 <translation id="7413229368719586778">Pradžios data: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Naršymo istorijos naudojimo paieškai ir kitoms funkcijoms suasmeninti valdymas</translation>
+<translation id="7435356471928173109">Išjungė jūsų administratorius</translation>
 <translation id="7437998757836447326">Atsijungimas nuo „Chrome“</translation>
 <translation id="7438641746574390233">Kai įjungtas supaprastintasis režimas, „Chrome“ naudoja „Google“ serverius, kad puslapiai būtų įkeliami greičiau. Kai įjungtas supaprastintasis režimas, itin lėti puslapiai perrašomi, kad būtų įkeliamas tik svarbiausias turinys. Supaprastintasis režimas netaikomas inkognito skirtukams.</translation>
 <translation id="7444811645081526538">Daugiau kategorijų</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Slaptafrazė</translation>
 <translation id="9063523880881406963">Išjungti stalinio kompiuterio svetainės užklausą</translation>
 <translation id="9065203028668620118">Redaguoti</translation>
+<translation id="9069543557624799859">Atsisiuntimas bus pradedamas <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Pradėti paiešką balsu</translation>
 <translation id="9074336505530349563">Jei norite gauti „Google“ siūlomo suasmeninto turinio, prisijunkite ir įjunkite sinchronizavimą</translation>
 <translation id="9086302186042011942">Sinchronizuojama</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 145d8aa..eb8db3f 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Kopēt URL</translation>
 <translation id="2156074688469523661">Pārējās vietnes (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Lai kopīgotu sava tālruņa saturu ar citu ierīci, ieslēdziet sinhronizāciju abu ierīču Chrome iestatījumos.</translation>
+<translation id="2158408438301413340">Pārlūkprogrammā Chrome nevarēja pārbaudīt visas paroles</translation>
 <translation id="2169830938017475061">Tikko</translation>
 <translation id="2175927920773552910">QR kods</translation>
 <translation id="218608176142494674">Kopīgošana</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Pārvaldiet ziņas, izmantojot opciju pogu lapā Discover.</translation>
 <translation id="2259659629660284697">Paroļu eksportēšana…</translation>
 <translation id="2268044343513325586">Uzlabot</translation>
+<translation id="2276696007612801991">Lai pārbaudītu paroles, pierakstieties Google kontā</translation>
 <translation id="2286841657746966508">Norēķinu adrese</translation>
 <translation id="230115972905494466">Netika atrastas saderīgas ierīces.</translation>
 <translation id="2318045970523081853">Pieskarieties, lai zvanītu</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" /> par ieteikto saturu.</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Ir ieslēgta standarta aizsardzība</translation>
+<translation id="3509330069915219067">Bezsaistē. Pārlūkprogrammā Chrome nevar pārbaudīt atjauninājumu pieejamību.</translation>
 <translation id="3513704683820682405">Papildinātā realitāte</translation>
 <translation id="3518985090088779359">Piekrist un turpināt</translation>
 <translation id="3522247891732774234">Pieejams atjauninājums. Citas iespējas</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Tālummaiņas piespiedu iespējošana</translation>
 <translation id="3909763690984331376">Drošības pārbaude <ph name="BEGIN_NEW" />Jaunums<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Notiek vislabākā tīmekļa satura meklēšana</translation>
+<translation id="3924911262913579434">Darbojas <ph name="SAFE_BROWSING_MODE" /></translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Datu apvienošana</translation>
 <translation id="393697183122708255">Nav iespējota meklēšana ar balsi.</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Kad ierīce būs gatava, jūsu lapa tiks ielādēta pārlūkā Chrome}zero{Kad ierīce būs gatava, jūsu lapas tiks ielādētas pārlūkā Chrome}one{Kad ierīce būs gatava, jūsu lapas tiks ielādētas pārlūkā Chrome}other{Kad ierīce būs gatava, jūsu lapas tiks ielādētas pārlūkā Chrome}}</translation>
 <translation id="3963007978381181125">Ieejas frāzes šifrējumā nav iekļauti maksājumu veidi un adreses no pakalpojuma Google Pay. Jūsu šifrētos datus var lasīt tikai personas, kurām ir zināma jūsu ieejas frāze. Ieejas frāze netiek sūtīta Google serveriem un netiek tajos glabāta. Ja aizmirsīsiet ieejas frāzi vai vēlēsieties mainīt šo iestatījumu, jums būs jāatiestata sinhronizācija. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation>
 <translation id="3967822245660637423">Lejupielāde pabeigta</translation>
+<translation id="3969142555815019568">Pārlūkprogrammā Chrome nevar pārbaudīt jūsu paroles</translation>
 <translation id="3974987681202239636">Lietotne <ph name="APP_NAME" /> tiks atvērta pārlūkprogrammā Chrome. Turpinot jūs piekrītat <ph name="BEGIN_LINK1" />Google pakalpojumu sniegšanas noteikumiem<ph name="END_LINK1" /> un <ph name="BEGIN_LINK2" />Google Chrome un Chrome OS pakalpojumu sniegšanas papildu noteikumiem<ph name="END_LINK2" />. Ir spēkā arī <ph name="BEGIN_LINK3" />konfidencialitātes paziņojums Google kontiem, kas tiek pārvaldīti lietotnē Family Link<ph name="END_LINK3" />.</translation>
 <translation id="397583555483684758">Sinhronizācija vairs nedarbojas</translation>
 <translation id="3976396876660209797">Noņemt un atkārtoti izveidot šo saīsni</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Atvērt <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Izmantot paroli</translation>
 <translation id="4650364565596261010">Sistēmas noklusējums</translation>
+<translation id="465657074423018424">Drošas pārlūkošanas režīmā jūs tiekat aizsargāts pret maldinošām tīmekļa vietnēm. Ja izslēgsiet šo režīmu, pārlūkošanas laikā ievērojiet īpašu piesardzību, it sevišķi tad, kad grasāties ievadīt paroli.</translation>
 <translation id="4662373422909645029">Segvārdā nedrīkst būt cipari</translation>
 <translation id="4663756553811254707">Dzēstas <ph name="NUMBER_OF_BOOKMARKS" /> grāmatzīmes</translation>
 <translation id="4665282149850138822">Vietne <ph name="NAME" /> tika pievienota sākuma ekrānam.</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Atvērt iespējas, lai izdrukātu lapu</translation>
 <translation id="4842092870884894799">Tiek rādīts paroles ģenerēšanas uznirstošais logs</translation>
 <translation id="4860895144060829044">Zvanīt</translation>
+<translation id="4864369630010738180">Pierakstīšanās...</translation>
 <translation id="4866368707455379617">Nevar instalēt moduli <ph name="MODULE" /> pārlūkprogrammai Chrome.</translation>
 <translation id="4875775213178255010">Satura ieteikumi</translation>
 <translation id="4878404682131129617">Neizdevās iestatīt porta pārsūtīšanu, izmantojot starpniekserveri.</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Pārvaldīt kontu</translation>
 <translation id="7077143737582773186">SD karte</translation>
 <translation id="7080806333218412752">Vietrāži URL tiek sūtīti uz funkciju Droša pārlūkošana, lai tos pārbaudītu. Lai palīdzētu atklāt jaunus draudus, tiek nosūtīti arī nelieli datu paraugi, kas ietver lapas, lejupielādes, paplašinājumu aktivitāti un sistēmas informāciju. Lai aizsargātu jūs dažādās Google lietotnēs, šie dati tiek īslaicīgi saistīti ar jūsu Google kontu, kad esat pierakstījies.</translation>
+<translation id="7088681679121566888">Chrome jaunākā versija jau ir instalēta</translation>
 <translation id="7121362699166175603">Notīra vēsturi un automātiskās pabeigšanas datus adreses joslā. Jūsu Google kontam var būt cita veida pārlūkošanas vēstures dati vietnē <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Skatiet vietnes, ko apmeklējat visbiežāk, kā arī jaunākos stāstus katru reizi, kad pieskaraties pogai Sākums.</translation>
 <translation id="7138678301420049075">Cits</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Lai sāktu sinhronizāciju, ieslēdziet iestatījumu “Jūsu Chrome datu sinhronizācija”.</translation>
 <translation id="729975465115245577">Ierīcē nav lietotnes, kurā uzglabāt paroļu failu.</translation>
 <translation id="7302081693174882195">Detalizēta informācija: kārtota pēc ietaupīto datu apjoma</translation>
+<translation id="7304873321153398381">Bezsaistē. Pārlūkprogrammā Chrome nevar pārbaudīt jūsu paroles.</translation>
 <translation id="7328017930301109123">Vienkāršotajā režīmā Chrome ielādē lapas ātrāk un patērē pat par 60 procentiem mazāk datu.</translation>
 <translation id="7333031090786104871">Joprojām notiek iepriekšējās vietnes pievienošana</translation>
 <translation id="7340958967809483333">Discover iespējas</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Jā, piekrītu</translation>
 <translation id="7413229368719586778">Sākuma datums: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Kontrolējiet, kā jūsu pārlūkošanas vēsture tiek izmantota Meklēšanas un cita satura personalizēšanai</translation>
+<translation id="7435356471928173109">Izslēdza jūsu administrators</translation>
 <translation id="7437998757836447326">Izrakstīšanās no pārlūka Chrome</translation>
 <translation id="7438641746574390233">Ja ir ieslēgts vienkāršotais režīms, pārlūkā Chrome tiek izmantoti Google serveri, lai ielādētu lapas ātrāk. Vienkāršotajā režīmā ļoti lēnas lapas tiek pārrakstītas, lai tās ielādētu tikai nepieciešamo saturu. Vienkāršotais režīms netiek piemērots inkognito režīma cilnēm.</translation>
 <translation id="7444811645081526538">Vairāk kategoriju</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Ieejas frāze</translation>
 <translation id="9063523880881406963">Izslēgt iestatījumu “Pieprasīt datora vietni”</translation>
 <translation id="9065203028668620118">Labot</translation>
+<translation id="9069543557624799859">Lejupielāde sāksies <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Sākt meklēšanu ar balsi</translation>
 <translation id="9074336505530349563">Lai saņemtu Google ieteikto personalizēto saturu, pierakstieties un ieslēdziet sinhronizāciju.</translation>
 <translation id="9086302186042011942">Notiek sinhronizācija</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 f4155cb3..0512600 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Копирај URL</translation>
 <translation id="2156074688469523661">Останати сајтови (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">За да споделите нешто од телефонот на друг уред, вклучете ја синхронизацијата во поставките за Chrome на двата уреди</translation>
+<translation id="2158408438301413340">Chrome не можеше да ги провери сите лозинки</translation>
 <translation id="2169830938017475061">Сега</translation>
 <translation id="2175927920773552910">QR-код</translation>
 <translation id="218608176142494674">Се споделува</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Контролирајте ги сториите од копчето „Опции за Discover“</translation>
 <translation id="2259659629660284697">Извезување лозинки…</translation>
 <translation id="2268044343513325586">Подобри</translation>
+<translation id="2276696007612801991">Најавете се на сметката на Google за да ги проверите лозинките</translation>
 <translation id="2286841657746966508">Адреса за наплата</translation>
 <translation id="230115972905494466">Не се најдени компатибилни уреди</translation>
 <translation id="2318045970523081853">Допрете за да остварите повик</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /> за предложените содржини</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Вклучена е „Стандардната заштита“</translation>
+<translation id="3509330069915219067">Офлајн. Chrome не може да провери дали има ажурирања.</translation>
 <translation id="3513704683820682405">Проширена реалност</translation>
 <translation id="3518985090088779359">Прифати и продолжи</translation>
 <translation id="3522247891732774234">Достапно е ажурирање. Повеќе опции</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Присилно овозможи зумирање</translation>
 <translation id="3909763690984331376">Безбедносна проверка <ph name="BEGIN_NEW" />Нова<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Го наоѓаме најдоброто на интернет…</translation>
+<translation id="3924911262913579434">Распоредот „<ph name="SAFE_BROWSING_MODE" />“ е вклучен</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Комбинирај ги моите податоци</translation>
 <translation id="393697183122708255">Нема достапно овозможено гласовно барање</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome ќе ја вчита страницата кога ќе биде спремна}one{Chrome ќе ги вчита страниците кога ќе бидат спремни}other{Chrome ќе ги вчита страниците кога ќе бидат спремни}}</translation>
 <translation id="3963007978381181125">Шифрирањето на лозинката не ги вклучува начините на плаќање и адресите од Google Pay. Само некој што ја има вашата лозинка може да ги чита вашите шифрирани податоци. Лозинката не се испраќа, ниту зачувува во Google. Доколку ја заборавите лозинката или сакате да ја промените поставкава, ќе треба да ја ресетирате синхронизацијата. <ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Преземањето е завршено</translation>
+<translation id="3969142555815019568">Chrome не може да ги провери вашите лозинки</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> ќе се отвори во Chrome. Ако продолжите, се согласувате со <ph name="BEGIN_LINK1" />Условите за користење на Google<ph name="END_LINK1" />и <ph name="BEGIN_LINK2" />Дополнителните услови за користење на Google Chrome и Chrome OS<ph name="END_LINK2" />. <ph name="BEGIN_LINK3" />Известувањето за приватност за сметките на Google управувани со Family Link<ph name="END_LINK3" /> исто така важи.</translation>
 <translation id="397583555483684758">Синхронизирањето престана да работи</translation>
 <translation id="3976396876660209797">Отстранете ја и создајте ја повторно кратенкава</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Отвори <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Употреби ја лозинката</translation>
 <translation id="4650364565596261010">Стандардна поставка за системот</translation>
+<translation id="465657074423018424">„Безбедното прелистување“ ве заштитува од измамнички веб-сајтови. Ако го исклучите, бидете многу внимателни при прелистувањето, особено пред внесување лозинки.</translation>
 <translation id="4662373422909645029">Прекарот не може да содржи броеви</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> обележувачи се избришани</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> е додадена на вашиот Почетен екран</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Отворете опции за печатење страница</translation>
 <translation id="4842092870884894799">Се прикажува појавен прозорец за генерирање лозинки</translation>
 <translation id="4860895144060829044">Повикајте</translation>
+<translation id="4864369630010738180">Се најавува…</translation>
 <translation id="4866368707455379617">Не може да се инсталира <ph name="MODULE" /> за Chrome</translation>
 <translation id="4875775213178255010">Предлози за содржина</translation>
 <translation id="4878404682131129617">Воспоставувањето тунел преку прокси-сервер не успеа</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Управувајте со сметката</translation>
 <translation id="7077143737582773186">SD-картичка</translation>
 <translation id="7080806333218412752">Испраќа URL-адреси во „Безбедно прелистување“ за да се проверат. Испраќа и мал примерок од страници, преземања, активност на екстензиите и информации за системот за да помогне да се откријат нови закани. Привремено ги поврзува податоциве со вашата сметка на Google кога сте најавени за да ве заштити на апликациите на Google.</translation>
+<translation id="7088681679121566888">Chrome е ажуриран</translation>
 <translation id="7121362699166175603">Ја чисти историјата и автоматските довршувања во лентата за адреси. Вашата сметка на Google можеби има други видови историја на прелистување на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Гледајте ги најдобрите сајтови и неодамнешните приказни секојпат кога ќе го допрете копчето за почетен екран</translation>
 <translation id="7138678301420049075">Друго</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">За да започне синхронизацијата, вклучете „Синхронизирајте ги податоците од Chrome“.</translation>
 <translation id="729975465115245577">Уредот нема апликација за складирање на датотеката со лозинки.</translation>
 <translation id="7302081693174882195">Детали: подредени по количината на зачувани податоци</translation>
+<translation id="7304873321153398381">Офлајн. Chrome не може да ги провери вашите лозинки.</translation>
 <translation id="7328017930301109123">Во Lite-режим, Chrome побрзо ги вчитува страниците и користи до 60 проценти помалку интернет.</translation>
 <translation id="7333031090786104871">Сè уште се додава претходниот сајт</translation>
 <translation id="7340958967809483333">Опции за Discover</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Да, може</translation>
 <translation id="7413229368719586778">Датум на почеток: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Контролирајте како вашата историја на прелистување се користи за персонализирање на „Пребарувањето“ и друго</translation>
+<translation id="7435356471928173109">Исклучено од администраторот</translation>
 <translation id="7437998757836447326">Одјавете се од Chrome</translation>
 <translation id="7438641746574390233">Кога е вклучен „Лесниот режим“, Chrome ги користи серверите на Google за да овозможи побрзо вчитување на страниците. „Лесниот режим“ ги презапишува страниците што се премногу бавни и ги вчитува само нивните основни содржини. „Лесниот режим“ не се применува кај инкогнито картичките.</translation>
 <translation id="7444811645081526538">Повеќе категории</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Пристапна фраза</translation>
 <translation id="9063523880881406963">Исклучи „Барај локација на работна површина“</translation>
 <translation id="9065203028668620118">Измени</translation>
+<translation id="9069543557624799859">Преземањето ќе започне во <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Започнете гласовно пребарување</translation>
 <translation id="9074336505530349563">За да добивате персонализирани содржини предложени од Google, најавете се и вклучете ја синхронизацијата</translation>
 <translation id="9086302186042011942">Синхронизирање</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 52a290e7..3a77583 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL പകര്‍ത്തുക</translation>
 <translation id="2156074688469523661">ശേഷിക്കുന്ന സൈറ്റുകൾ (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">നിങ്ങളുടെ ഫോണിൽ നിന്നും മറ്റൊരു ഉപകരണത്തിലേക്ക് എന്തെങ്കിലും പങ്കിടാൻ, രണ്ട് ഉപകരണങ്ങളിലെയും Chrome ക്രമീകരണത്തിൽ സമന്വയിപ്പിക്കൽ ഓണാക്കുക</translation>
+<translation id="2158408438301413340">Chrome-ന് എല്ലാ പാസ്‌വേഡുകളും പരിശോധിക്കാനായില്ല</translation>
 <translation id="2169830938017475061">ഇപ്പോൾ</translation>
 <translation id="2175927920773552910">QR കോഡ്</translation>
 <translation id="218608176142494674">പങ്കിടൽ</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">'Discover-നുള്ള ഓപ്‌ഷനുകൾ' ബട്ടൺ അമർത്തി നിങ്ങളുടെ സ്‌റ്റോറികൾ നിയന്ത്രിക്കുക</translation>
 <translation id="2259659629660284697">പാസ്‌വേഡുകൾ എക്‌സ്‌പോർട്ട് ചെയ്യുക...</translation>
 <translation id="2268044343513325586">പരിഷ്‌ക്കരിക്കുക</translation>
+<translation id="2276696007612801991">പാസ്‌വേഡുകൾ പരിശോധിക്കാൻ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സെെൻ ഇൻ ചെയ്യുക</translation>
 <translation id="2286841657746966508">ബില്ലിംഗ് വിലാസം</translation>
 <translation id="230115972905494466">അനുയോജ്യമായ ഉപകരണങ്ങളൊന്നും കണ്ടെത്തിയില്ല</translation>
 <translation id="2318045970523081853">കോൾ ചെയ്യാൻ ടാപ്പ് ചെയ്യുക</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708">നിർദ്ദേശിച്ച ഉള്ളടക്കത്തെക്കുറിച്ച് <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">സാധാരണ പരിരക്ഷ ഓണാക്കിയിരിക്കുന്നു</translation>
+<translation id="3509330069915219067">ഓഫ്‌ലൈൻ. Chrome-ന് അപ്‌ഡേറ്റുകൾക്കായി പരിശോധിക്കാനാകില്ല.</translation>
 <translation id="3513704683820682405">അനുബന്ധയാഥാർത്ഥ്യം</translation>
 <translation id="3518985090088779359">അംഗീകരിച്ച് തുടരുക</translation>
 <translation id="3522247891732774234">അപ്‌ഡേറ്റ് ലഭ്യമല്ല. കൂടുതൽ ഓപ്‌ഷനുകൾ</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">നിർബന്ധിത സൂം പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="3909763690984331376">സുരക്ഷാ പരിശോധന <ph name="BEGIN_NEW" />പുതിയത്<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">വെബിൽ നിന്നുള്ള ഏറ്റവും മികച്ചത് കണ്ടെത്തുന്നു…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> ഓണാണ്</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">എന്റെ വിവരങ്ങൾ സംയോജിപ്പിക്കുക</translation>
 <translation id="393697183122708255">പ്രവർത്തനക്ഷമമാക്കിയ വോയ്‌സ് തിരയലുകൾ ഒന്നും ലഭ്യമല്ല</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{നിങ്ങളുടെ പേജ് തയ്യാറാകുമ്പോൾ Chrome ലോഡ് ചെയ്യും}other{നിങ്ങളുടെ പേജുകൾ തയ്യാറാകുമ്പോൾ Chrome ലോഡ് ചെയ്യും}}</translation>
 <translation id="3963007978381181125">പാസ്‌ഫ്രെയ്‌സ് എൻക്രിപ്ഷനിൽ, Google Pay-ൽ നിന്നുള്ള പേയ്മെന്‍റ് രീതികളും വിലാസങ്ങളും ഉൾപ്പെടുന്നില്ല. നിങ്ങളുടെ പാസ്‌ഫ്രെയ്‌സുള്ള വ്യക്തിക്ക് മാത്രമേ എൻക്രി‌പ്‌റ്റ് ചെയ്‌ത ഡാറ്റ വായിക്കാനാവൂ. പാസ്‌ഫ്രെയ്‌സ് Google-ലേക്ക് അയയ്‌ക്കുകയോ സംഭരിക്കുകയോ ചെയ്യുന്നില്ല. പാസ്‌ഫ്രെയ്‌സ് മറന്നുപോവുകയോ ഈ ക്രമീകരണം മാറ്റുകയോ ചെയ്യണമെങ്കിൽ, സമന്വയം പുനഃക്രമീകരിക്കേണ്ടി വരും. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">ഡൗൺലോഡ് പൂർത്തിയായി</translation>
+<translation id="3969142555815019568">Chrome-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാകുന്നില്ല</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" />, Chrome-ൽ തുറക്കും. തുടരുന്നതിലൂടെ, നിങ്ങൾ <ph name="BEGIN_LINK1" />Google സേവന നിബന്ധനകളും<ph name="END_LINK1" /> <ph name="BEGIN_LINK2" />Google Chrome, Chrome OS അധിക സേവന നിബന്ധനകളും<ph name="END_LINK2" /> അംഗീകരിക്കുന്നു. <ph name="BEGIN_LINK3" />Family Link ഉപയോഗിച്ച് മാനേജ് ചെയ്യുന്ന Google അക്കൗണ്ടുകൾക്കുള്ള സ്വകാര്യതാ കുറിപ്പും<ph name="END_LINK3" /> ബാധകമാണ്.</translation>
 <translation id="397583555483684758">'സമന്വയം' പ്രവർത്തനം നിർത്തി</translation>
 <translation id="3976396876660209797">ഈ കുറുക്കുവഴി നീക്കംചെയ്‌ത് പുനസൃഷ്‌ടിക്കുക</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> തുറക്കുക</translation>
 <translation id="4634124774493850572">പാസ്‌വേഡ് ഉപയോഗിക്കുക</translation>
 <translation id="4650364565596261010">സിസ്‌റ്റം ഡിഫോൾട്ട്</translation>
+<translation id="465657074423018424">വഞ്ചനാപരമായ സൈറ്റുകളിൽ നിന്നും സുരക്ഷിത ബ്രൗസിംഗ് നിങ്ങളെ പരിരക്ഷിക്കുന്നു. നിങ്ങൾ ഇത് ഓഫാക്കുകയാണെങ്കിൽ, ബ്രൗസ് ചെയ്യുമ്പോൾ, പ്രത്യേകിച്ചും പാസ്‌വേഡുകൾ നൽകുന്നതിനുമുമ്പ് കൂടുതൽ ശ്രദ്ധിക്കുക.</translation>
 <translation id="4662373422909645029">വിളിപ്പേരിൽ അക്കങ്ങൾ പാടില്ല</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ബുക്ക്‌മാർക്കുകൾ ഇല്ലാതാക്കി</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> എന്നയാളെ നിങ്ങളുടെ ഹോം സ്‌ക്രീനിൽ ചേർത്തു</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">പേജ് അച്ചടിക്കുന്നതിനുള്ള ഓപ്‌ഷനുകൾ തുറക്കുക</translation>
 <translation id="4842092870884894799">പാസ്‌വേഡ് സൃഷ്ടിക്കൽ പോപ്പ് അപ്പ് കാണിക്കുന്നു</translation>
 <translation id="4860895144060829044">വിളിക്കുക</translation>
+<translation id="4864369630010738180">സൈൻ ഇൻ ചെയ്യുന്നു...</translation>
 <translation id="4866368707455379617">Chrome-നായി <ph name="MODULE" /> ഇൻസ്‌റ്റാൾ ചെയ്യാനായില്ല</translation>
 <translation id="4875775213178255010">ഉള്ളടക്ക നിർദ്ദേശങ്ങൾ</translation>
 <translation id="4878404682131129617">പ്രോക്‌സി സെർവർ മുഖേന ഒരു ടണൽ രൂപപ്പെടുത്താനായില്ല</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">അക്കൗണ്ട് മാനേജ് ചെയ്യുക</translation>
 <translation id="7077143737582773186">SD കാർഡ്</translation>
 <translation id="7080806333218412752">URL-കൾ പരിശോധിക്കുന്നതിന് അവ സുരക്ഷിത ബ്രൗസിംഗിലേക്ക് അയയ്‌ക്കുന്നു. പുതിയ ഭീഷണികൾ കണ്ടെത്താൻ സഹായിക്കുന്നതിന് പേജുകൾ, ഡൗൺലോഡുകൾ, വിപുലീകരണ ആക്റ്റിവിറ്റി, സിസ്റ്റം വിവരങ്ങൾ എന്നിവയുടെ ഒരു ചെറിയ സാമ്പിൾ അയയ്‌ക്കുകയും ചെയ്യുന്നു. നിങ്ങളെ Google ആപ്പുകളിലുടനീളം പരിരക്ഷിക്കുന്നതിന് സൈൻ ഇൻ ആയിരിക്കുമ്പോൾ ഈ ഡാറ്റ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് താൽക്കാലികമായി ലിങ്ക് ചെയ്യുന്നു.</translation>
+<translation id="7088681679121566888">Chrome അപ് റ്റു ഡേറ്റാണ്</translation>
 <translation id="7121362699166175603">ചരിത്രവും വിലാസ ബാറിലെ സ്വയം പൂർത്തീകരണങ്ങളും മായ്ക്കുന്നു. നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation>
 <translation id="7128355412245153445">നിങ്ങൾ ഹോം ബട്ടൺ ടാപ്പ് ചെയ്യുമ്പോഴൊക്കെ പ്രധാന സൈറ്റുകളും അടുത്തിടെയുള്ള സ്റ്റോറികളും കാണുക</translation>
 <translation id="7138678301420049075">മറ്റുള്ളവ</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">സമന്വയം ആരംഭിക്കാൻ, "നിങ്ങളുടെ Chrome ഡാറ്റാ സമന്വയിപ്പിക്കൽ" ഓണാക്കുക.</translation>
 <translation id="729975465115245577">നിങ്ങളുടെ ഉപകരണത്തിൽ പാസ്‍വേഡ് ഫയൽ സംഭരിക്കാനുള്ള ആപ്പ് ഇല്ല.</translation>
 <translation id="7302081693174882195">വിശദാംശങ്ങൾ: സംരക്ഷിച്ച ഡാറ്റയുടെ അളവനുസരിച്ച് അടുക്കിയത്</translation>
+<translation id="7304873321153398381">ഓഫ്‌ലൈൻ. Chrome-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാകുന്നില്ല.</translation>
 <translation id="7328017930301109123">ലൈറ്റ് മോഡിൽ, Chrome 60 ശതമാനം വരെ കുറവ് ഡാറ്റ ഉപയോഗിക്കുകയും പേജുകൾ വേഗത്തിൽ ലോഡ് ചെയ്യുകയും ചെയ്യുന്നു.</translation>
 <translation id="7333031090786104871">ഇപ്പോഴും മുമ്പത്തെ സൈറ്റ് ചേർത്തുകൊണ്ടിരിക്കുകയാണ്</translation>
 <translation id="7340958967809483333">Discover-നുള്ള ഓപ്ഷനുകൾ</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">ഞാൻ തയ്യാറാണ്</translation>
 <translation id="7413229368719586778">ആരംഭിക്കുന്ന തീയതി <ph name="DATE" /></translation>
 <translation id="7431991332293347422">തിരയലും മറ്റും വ്യക്തിപരമാക്കുന്നതിന് നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഉപയോഗിക്കുന്ന വിധം നിയന്ത്രിക്കുക</translation>
+<translation id="7435356471928173109">നിങ്ങളുടെ അഡ്‌മിൻ ഓഫാക്കിയിരിക്കുന്നു</translation>
 <translation id="7437998757836447326">Chrome-ൽ നിന്നും സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="7438641746574390233">ലൈറ്റ് മോഡ് ഓണായിരിക്കുമ്പോൾ, പേജുകൾ കൂടുതൽ വേഗത്തിൽ ലോഡ് ചെയ്യുന്ന തരത്തിലാക്കാൻ Google സെര്‍വറുകൾ Chrome ഉപയോഗിക്കുന്നു. വേഗത വളരെ കുറഞ്ഞ പേജുകളിൽ അത്യാവശ്യ ഉള്ളടക്കം മാത്രം ലോഡ് ചെയ്യാൻ, ലൈറ്റ് മോഡ് പേജ് മാറ്റി എഴുതുന്നു. അദൃശ്യ ടാബുകളിൽ ലൈറ്റ് മോഡ് ബാധകമാവില്ല.</translation>
 <translation id="7444811645081526538">കൂടുതൽ‍ വിഭാഗങ്ങള്‍</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">പാസ്ഫ്രെയ്‍സ്</translation>
 <translation id="9063523880881406963">'ഡെസ്‌ക്‌ടോപ്പ് സൈറ്റ് അഭ്യർത്ഥിക്കുക' ഓഫാക്കുക</translation>
 <translation id="9065203028668620118">എഡിറ്റ് ചെയ്യുക</translation>
+<translation id="9069543557624799859"><ph name="TIME" />-ന് ഡൗൺലോഡ് ആരംഭിക്കും.</translation>
 <translation id="9070377983101773829">ശബ്ദ തിരയൽ ആരംഭിക്കുക</translation>
 <translation id="9074336505530349563">Google നിർദേശിക്കുന്ന വ്യക്തിപരമാക്കിയ ഉള്ളടക്കം ലഭിക്കാൻ, സൈൻ ഇൻ ചെയ്‌ത് സമന്വയിപ്പിക്കൽ ഓണാക്കുക</translation>
 <translation id="9086302186042011942">സമന്വയിപ്പിക്കുന്നു</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 c605305..702ca7b 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
@@ -476,6 +476,7 @@
 <translation id="4837753911714442426">Хуудас хэвлэхийн тулд сонголтыг нээнэ үү</translation>
 <translation id="4842092870884894799">Нууц үг үүсгэх цонхыг харуулж байна</translation>
 <translation id="4860895144060829044">Дуудлага</translation>
+<translation id="4864369630010738180">Нэвтэрч байна…</translation>
 <translation id="4866368707455379617"><ph name="MODULE" />-г Chrome-д суулгах боломжгүй байна</translation>
 <translation id="4875775213178255010">Агуулгын зөвлөмж</translation>
 <translation id="4878404682131129617">Прокси серверээр туннель үүсгэж чадсангүй</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 cc97e0d..584cdc7 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL कॉपी करा</translation>
 <translation id="2156074688469523661">उर्वरित साइट (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">तुमच्या फोनवरून दुसऱ्या डिव्हाइसवर शेअर करण्यासाठी, दोन्ही डिव्हाइसवरील Chrome सेटिंग्जमध्ये सिंक सुरू करा</translation>
+<translation id="2158408438301413340">Chrome ला सर्व पासवर्ड तपासता आले नाहीत</translation>
 <translation id="2169830938017475061">Now</translation>
 <translation id="2175927920773552910">QR कोड</translation>
 <translation id="218608176142494674">शेअर करत आहे</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Discover साठी पर्याय बटणावरून तुमच्या स्टोरी नियंत्रित करा</translation>
 <translation id="2259659629660284697">पासवर्ड एक्सपोर्ट करा…</translation>
 <translation id="2268044343513325586">सुधारित करा</translation>
+<translation id="2276696007612801991">तुमचे पासवर्ड तपासण्यासाठी तुमच्या Google खात्यामध्ये साइन इन करा</translation>
 <translation id="2286841657746966508">बिलिंग पत्ता</translation>
 <translation id="230115972905494466">कोणतीही कंपॅटिबल डिव्हाइस आढळली नाहीत</translation>
 <translation id="2318045970523081853">कॉल करण्यासाठी टॅप करा</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708">सूचित केलेल्या आशयविषयी <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">मानक संरक्षण सुरू आहे</translation>
+<translation id="3509330069915219067">ऑफलाइन. Chrome ला अपडेट तपासता आले नाहीत.</translation>
 <translation id="3513704683820682405">ऑगमेंटेड रिअ‍ॅलिटी</translation>
 <translation id="3518985090088779359">स्वीकारा आणि सुरू ठेवा</translation>
 <translation id="3522247891732774234">अपडेट उपलब्ध आहे. आणखी पर्याय</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">झूम सुरू करण्याची सक्ती</translation>
 <translation id="3909763690984331376">सुरक्षा तपासण्या <ph name="BEGIN_NEW" />नवीन<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">वेबवरून सर्वोत्तम शोधत आहे…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> सुरू आहे</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">माझा डेटा एकत्र करा</translation>
 <translation id="393697183122708255">सक्षम केलेला कोणताही व्हॉइस शोध उपलब्ध नाही</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{तयार झाल्यावर, Chrome तुमचे पेज लोड करेल}other{तयार झाल्यावर, Chrome तुमची पेज लोड करेल}}</translation>
 <translation id="3963007978381181125">पासफ्रेज एंक्रिप्शनमध्ये Google Pay वरील पेमेंट पद्धतींचा आणि पत्त्यांचा समावेश नसतो. फक्त तुमचा पासफ्रेज असलेली एखादी व्यक्ती तुमचा एंक्रिप्ट केलेला डेटा वाचू शकते. पासफ्रेज Google कडे पाठवला किंवा त्याद्वारे स्टोअर केला जात नाही. तुम्ही तुमचा पासफ्रेज विसरल्यास किंवा तुम्हाला हे सेटिंग बदलायचे असल्यास, तुम्हाला सिंक रीसेट करण्याची आवश्यकता असेल. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">पूर्ण डाउनलोड करा</translation>
+<translation id="3969142555815019568">Chrome तुमचे पासवर्ड तपासू शकत नाही</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> हे Chrome मध्ये उघडेल. सुरू ठेवून, तुम्ही <ph name="BEGIN_LINK1" />Google सेवा अटी<ph name="END_LINK1" /> आणि <ph name="BEGIN_LINK2" />Google Chrome व Chrome OS अतिरिक्त सेवा अटी<ph name="END_LINK2" /> यांना सहमती दर्शवता. <ph name="BEGIN_LINK3" />Family Link सोबत व्यवस्थापित केलेली Google खाती यांसाठी गोपनीयतेची सूचना<ph name="END_LINK3" /> देखील लागू होते.</translation>
 <translation id="397583555483684758">संकालनाने कार्य करणे थांबविले आहे</translation>
 <translation id="3976396876660209797">हा शॉर्टकट काढून टाका आणि पुन्हा तयार करा</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> उघडा</translation>
 <translation id="4634124774493850572">पासवर्ड वापरा</translation>
 <translation id="4650364565596261010">सिस्टम डीफॉल्ट</translation>
+<translation id="465657074423018424">सुरक्षित ब्राउझिंग फसव्या वेबसाइटपासून तुमचे संरक्षण करते. तुम्ही ते बंद केल्यास, ब्राउझ करताना, विशेषत: पासवर्ड एंटर करताना अतिरिक्त सावधगिरी बाळगा.</translation>
 <translation id="4662373422909645029">टोपणनावामध्ये अंकांचा समावेश असू शकत नाही</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> बुकमार्क हटविले</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ला तुमच्या होम स्क्रीनवर पेअरिंग आले</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">पेज प्रिंट करण्‍यासाठी पर्याय उघडा</translation>
 <translation id="4842092870884894799">पासवर्ड निर्मिती पॉपअप दाखवत आहे</translation>
 <translation id="4860895144060829044">कॉल करा</translation>
+<translation id="4864369630010738180">साइन इन करत आहे...</translation>
 <translation id="4866368707455379617">Chrome साठी <ph name="MODULE" /> इंस्टॉल करू शकत नाही</translation>
 <translation id="4875775213178255010">आशय सूचना</translation>
 <translation id="4878404682131129617">प्रॉक्सी सर्व्हर मार्फत टनेल स्थापन करणे अयशस्वी झाले</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">खाते व्यवस्थापित करा</translation>
 <translation id="7077143737582773186">SD कार्ड</translation>
 <translation id="7080806333218412752">URL तपासण्यासाठी त्या सुरक्षित ब्राउझिंग ला पाठवतो. तसेच नवीन धोके शोधण्यात मदत करण्यासाठी पेज, डाउनलोड, एक्स्टेंशन अ‍ॅक्टिव्हिटी आणि सिस्टम माहिती यांचे लहान नमुने पाठवतो. सर्व Google अ‍ॅप्सवर तुमचे संरक्षण करण्यासाठी, तुम्ही साइन इन केलेले असताना हा डेटा तुमच्या Google खाते शी तात्पुरता लिंक करतो.</translation>
+<translation id="7088681679121566888">Chrome अप टू डेट आहे</translation>
 <translation id="7121362699166175603">अ‍ॅड्रेस बारवरील इतिहास आणि आपोआप पूर्ण करण्याचे दाखले साफ करते. तुमच्या Google खात्यामध्ये <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर कदाचित ब्राउझिंगचे इतर फॉर्म असतील.</translation>
 <translation id="7128355412245153445">तुम्ही होम बटण टॅप करता तेव्हा तुमच्या टॉप साइट आणि अलीकडील स्टोरी पहा</translation>
 <translation id="7138678301420049075">इतर</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">सिंक सुरू करण्यासाठी, "तुमचा Chrome डेटा सिंक करा" सुरू करा.</translation>
 <translation id="729975465115245577">पासवर्ड फाइल स्टोअर करण्यासाठी तुमच्या डिव्हाइसमध्ये अ‍ॅप नाही.</translation>
 <translation id="7302081693174882195">तपशील: सेव्ह केलेल्या डेटाच्या प्रमाणानुसार क्रमाने लावलेले</translation>
+<translation id="7304873321153398381">ऑफलाइन. Chrome तुमचे पासवर्ड तपासू शकत नाही.</translation>
 <translation id="7328017930301109123">लाइट मोडमध्ये, Chrome पेज आणखी जलद लोड करते आणि ६० टक्के पर्यंत कमी डेटा वापरते.</translation>
 <translation id="7333031090786104871">अद्याप मागील साइट जोडत आहे</translation>
 <translation id="7340958967809483333">Discover चे पर्याय</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">होय, मला मान्य आहे</translation>
 <translation id="7413229368719586778">सुरू होण्याची तारीख <ph name="DATE" /></translation>
 <translation id="7431991332293347422">शोध पर्सनलाइझ करण्यासाठी तुमचा ब्राउझिंग इतिहास कसा वापरला जातो ते आणि बरेच काही नियंत्रित करा</translation>
+<translation id="7435356471928173109">तुमच्या अ‍ॅडमिनिस्ट्रेटरने बंद केले</translation>
 <translation id="7437998757836447326">Chrome मधून साइन आउट करा</translation>
 <translation id="7438641746574390233">लाइट मोड सुरू असताना, Chrome पेज आणखी जलद लोड होण्यासाठी Google सर्व्हर वापरते. फक्त अत्यावश्यक आशय लोड होण्यासाठी लाइट मोड खूप धीमी पेज पुनर्लिखित करते. लाइट मोड गुप्त टॅबना लागू होत नाही.</translation>
 <translation id="7444811645081526538">अधिक वर्गवाऱ्या</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">सांकेतिक पासफ्रेझ</translation>
 <translation id="9063523880881406963">डेस्कटॉप साइट विनंती बंद करा</translation>
 <translation id="9065203028668620118">संपादन</translation>
+<translation id="9069543557624799859">डाउनलोड <ph name="TIME" /> वाजता सुरू होईल.</translation>
 <translation id="9070377983101773829">व्हॉइस शोध प्रारंभ करा</translation>
 <translation id="9074336505530349563">Google ने सुचवलेला पर्सनलाइझ केलेला आशय मिळवण्यासाठी, साइन इन करा आणि सिंक सुरू करा</translation>
 <translation id="9086302186042011942">समक्रमण करीत आहे</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 f8b4de41..5bc99cd 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
@@ -262,7 +262,7 @@
 <translation id="305593374596241526">Lokasi dimatikan, hidupkannya dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation>
 <translation id="3058498974290601450">Anda boleh mematikan penyegerakan pada bila-bila masa dalam tetapan</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> penanda halaman}other{<ph name="BOOKMARKS_COUNT_MANY" /> penanda halaman}}</translation>
-<translation id="3062802207422175757">Artikel tentang minat anda pada Chrome</translation>
+<translation id="3062802207422175757">Artikel tentang minat anda di Chrome</translation>
 <translation id="3089395242580810162">Buka dalam tab inkognito</translation>
 <translation id="3114012059975132928">Pemain video</translation>
 <translation id="3114507951000454849">Baca berita hari ini <ph name="NEWS_ICON" /></translation>
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Buka pilihan untuk mencetak halaman</translation>
 <translation id="4842092870884894799">Menunjukkan tetingkap timbul penjanaan kata laluan</translation>
 <translation id="4860895144060829044">Hubungi</translation>
+<translation id="4864369630010738180">Sedang log masuk...</translation>
 <translation id="4866368707455379617">Tidak dapat memasang <ph name="MODULE" /> untuk Chrome</translation>
 <translation id="4875775213178255010">Cadangan Kandungan</translation>
 <translation id="4878404682131129617">Gagal mewujudkan terowong melalui pelayan proksi</translation>
@@ -1055,7 +1056,7 @@
 <translation id="9209888181064652401">Tidak dapat membuat panggilan</translation>
 <translation id="9219103736887031265">Imej</translation>
 <translation id="926205370408745186">Alih keluar aktiviti Chrome anda daripada Kesejahteraan Digital</translation>
-<translation id="927968626442779827">Gunakan Mod ringkas pada Google Chrome</translation>
+<translation id="927968626442779827">Gunakan mod Ringkas pada Google Chrome</translation>
 <translation id="932327136139879170">Laman Utama</translation>
 <translation id="93753284658583800">Halaman utama ditukar</translation>
 <translation id="938850635132480979">Ralat: <ph name="ERROR_CODE" /></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 92475cf3..38dd8c1 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL ကူးယူရန်</translation>
 <translation id="2156074688469523661">ကျန်ရှိသေးသောဝဘ်ဆိုက်များ (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">သင့်ဖုန်းမှ အခြားစက်သို့ တစ်စုံတစ်ခုမျှဝေရန် စက်နှစ်ခုလုံးရှိ Chrome ဆက်တင်များထဲတွင် စင့်ခ်လုပ်ခြင်းကို ဖွင့်ထားရပါမည်။</translation>
+<translation id="2158408438301413340">Chrome က စကားဝှက်အားလုံးကို စစ်ဆေး၍မရပါ</translation>
 <translation id="2169830938017475061">ယခု</translation>
 <translation id="2175927920773552910">QR ကုဒ်</translation>
 <translation id="218608176142494674">မျှဝေခြင်း</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">သင့်သတင်းဆောင်းပါးများကို 'Discover အတွက် ရွေးစရာများ' ခလုတ်မှ ထိန်းချုပ်ပါ</translation>
 <translation id="2259659629660284697">စကားဝှက်များကို တင်ပို့ခြင်း…</translation>
 <translation id="2268044343513325586">ပြန်မွမ်းမံ</translation>
+<translation id="2276696007612801991">သင့်စကားဝှက်များကိုစစ်ရန် သင့် Google အကောင့်သို့ လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="2286841657746966508">ငွေတောင်းခံလွှာပို့ရန် လိပ်စာ</translation>
 <translation id="230115972905494466">ကိုက်ညီမှုရှိသည့် စက်ပစ္စည်းများ မတွေ့ပါ</translation>
 <translation id="2318045970523081853">ခေါ်ဆိုရန် တို့ပါ</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708">အကြံပြုထားသည့် အကြောင်းအရာအကြောင်း <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">'ပုံမှန် ကာကွယ်မှု' ကို ဖွင့်ထားသည်</translation>
+<translation id="3509330069915219067">အော့ဖ်လိုင်း။ Chrome က အပ်ဒိတ်များကို စစ်ဆေး၍မရပါ။</translation>
 <translation id="3513704683820682405">လွန်ကဲပကတိအသွင်</translation>
 <translation id="3518985090088779359">လက်ခံရန် &amp; ဆက်ရန်</translation>
 <translation id="3522247891732774234">အပ်ဒိတ်ရပါပြီ။ နောက်ထပ်ရွေးစရာများ</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">ဇူးမ် အတင်း ဖွင့်ရန်</translation>
 <translation id="3909763690984331376">လုံခြုံရေး စစ်ဆေးမှု <ph name="BEGIN_NEW" />အသစ်<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">ဝဘ်မှ အကောင်းဆုံးကို ရှာနေသည်…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> ကို ဖွင့်ထားသည်</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">ကျွန်ုပ်၏ ဒေတာများကို ပေါင်းပါ</translation>
 <translation id="393697183122708255">အသံဖြင့် ရှာဖွေနိုင်ခြင်းအား ဖွင့်မထားပါ</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{အဆင်သင့်ဖြစ်သည့်အခါ Chrome က သင့်စာမျက်နှာကို ဖွင့်ပါမည်}other{အဆင်သင့်ဖြစ်သည့်အခါ Chrome က သင့်စာမျက်နှာများကို ဖွင့်ပါမည်}}</translation>
 <translation id="3963007978381181125">စကားဝှက်စာ အသွင်ဝှက်ခြင်းတွင် ငွေပေးချေနည်းလမ်းများနှင့် Google Pay မှ လိပ်စာများ မပါဝင်ပါ။ သင့်စကားဝှက်ရှိသူသာ သင်အသွင်ဝှက်ထားသည့် ဒေတာများကို ဖတ်နိုင်မည် ဖြစ်သည်။ စကားဝှက်ကို Google သို့ပို့ခြင်း သို့မဟုတ် သိမ်းဆည်းထားခြင်း မရှိပါ။ သင့်စကားဝှက်ကို မေ့သွားလျှင် သို့မဟုတ် ဤဆက်တင်ကို ပြောင်းလဲလိုလျှင် စင့်ခ်လုပ်ခြင်းကို ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်ပါသည်။ <ph name="BEGIN_LINK" />ပိုမို လေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">ဒေါင်းလုဒ်လုပ်ခြင်း ပြည့်စုံပါပြီ</translation>
+<translation id="3969142555815019568">Chrome က သင့်စကားဝှက်များကို စစ်ဆေး၍မရပါ</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> ကို Chrome တွင် ဖွင့်ပါမည်။ ရှေ့ဆက်ခြင်းအားဖြင့် သင်သည် <ph name="BEGIN_LINK1" />Google ဝန်ဆောင်မှုစည်းမျဉ်းများ<ph name="END_LINK1" /> နှင့် <ph name="BEGIN_LINK2" />Google Chrome နှင့် Chrome OS ထပ်တိုး ဝန်ဆောင်မှုစည်းမျဉ်းများ<ph name="END_LINK2" /> ကို သဘောတူရာရောက်သည်။ <ph name="BEGIN_LINK3" />Family Link ဖြင့် ကြီးကြပ်ထားသည့် Google Account များအတွက် ပုဂ္ဂိုလ်ရေးဆိုင်ရာ ကြေညာချက်<ph name="END_LINK3" /> လည်း အကျုံးဝင်သည်။</translation>
 <translation id="397583555483684758">စင့်ခ်ပြုလုပ်ခြင်း ရပ်တန့်သွားပါပြီ</translation>
 <translation id="3976396876660209797">ဤဖြတ်လမ်းလင့်ခ်ကို ဖယ်ရှားပြီး အသစ်ပြန်လုပ်ပါ</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> ကို ဖွင့်ပါ</translation>
 <translation id="4634124774493850572">စကားဝှက်ကို အသုံးပြုရန်</translation>
 <translation id="4650364565596261010">စက်စနစ် မူရင်း</translation>
+<translation id="465657074423018424">'လုံခြုံစွာ ဖွင့်ကြည့်ခြင်း' က သင့်ကို လှည့်ဖြားတတ်သော ဝဘ်ဆိုက်များမှ ကာကွယ်ပေးသည်။ ၎င်းကိုပိတ်လိုက်ပါက ဖွင့်ကြည့်ချိန်တွင် အထူးသဖြင့် စကားဝှက်မထည့်မီတွင် အလွန်ဂရုစိုက်ပါ။</translation>
 <translation id="4662373422909645029">ကိန်းဂဏန်းများ မပါဝင်ရပါ</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> စာညှပ် တွေ့ရှိပါသည်</translation>
 <translation id="4665282149850138822"><ph name="NAME" />ကို သင်၏ ပင်မ မျက်နှာပြင်သို့ ထည့်ပေးခဲ့သည်</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">စာမျက်နှာကို ပုံနှိပ်ဖို့ နည်းလမ်း အားဖွင့်ရန်</translation>
 <translation id="4842092870884894799">စကားဝှက် ထုတ်လုပ်ခြင်း ပေါ့ပ်အပ် ပြနေစဉ်</translation>
 <translation id="4860895144060829044">ဖုန်းခေါ်ရန်</translation>
+<translation id="4864369630010738180">လက်မှတ်ထိုးဝင်နေသည်...</translation>
 <translation id="4866368707455379617">Chrome အတွက် <ph name="MODULE" /> ကို စနစ်ထည့်သွင်း၍ မရပါ</translation>
 <translation id="4875775213178255010">အကြောင်းအရာ အကြံပြုချက်များ</translation>
 <translation id="4878404682131129617">ပရောက်စီဆာဗာမှ လမ်းကြောင်းတစ်ခု စတင်မှု မအောင်မြင်ပါ</translation>
@@ -782,6 +789,7 @@
 <translation id="7071521146534760487">အကောင့်ကို စီမံရန်</translation>
 <translation id="7077143737582773186">SD ကတ်</translation>
 <translation id="7080806333218412752">URL များကို စစ်ဆေးရန် Safe Browsing သို့ ပို့ပေးသည်။ အန္တရာယ်အသစ်များကို ရှာဖွေရာ၌ အထောက်အကူဖြစ်စေရန် စာမျက်နှာများ၊ ဒေါင်းလုဒ်များ၊ နောက်ဆက်တွဲလုပ်ဆောင်ချက်နှင့် စနစ်အချက်အလက်များ၏ နမူနာအချို့ကိုလည်း ပို့သည်။ သင်လက်မှတ်ထိုးဝင်ထားသည့်အခါ Google အက်ပ်များတစ်လျှောက် သင့်အားကာကွယ်ရန် ဤဒေတာကို သင့် Google Account သို့ ယာယီလင့်ခ်ချိတ်ပေးသည်။</translation>
+<translation id="7088681679121566888">Chrome က အပ်ဒိတ်ဖြစ်နေပြီ</translation>
 <translation id="7121362699166175603">လိပ်စာဘားရှိ မှတ်တမ်းနှင့် အလိုအလျောက်ဖြည့်ပေးခြင်းများကို ဖျက်လိုက်ပါလိမ့်မည်။ သင့်  Google အကောင့်က ဖွင့်ကြည့်ထားသောမှတ်တမ်းသည် <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> တွင် အခြားပုံစံများဖြင့် ရှိနေနိုင်ပါသည်။</translation>
 <translation id="7128355412245153445">'ပင်မခလုတ်' တို့လိုက်တိုင်း သင်၏ ထိပ်တန်းဝဘ်ဆိုက်နှင့် လတ်တလော သတင်းဆောင်းပါးများကို ကြည့်နိုင်သည်</translation>
 <translation id="7138678301420049075">အခြား</translation>
@@ -803,6 +811,7 @@
 <translation id="7293171162284876153">စင့်ခ် စတင်ရန်အတွက် "သင်၏ Chrome ဒေတာ စင့်ခ်လုပ်ပါ" ကို ဖွင့်ပါ။</translation>
 <translation id="729975465115245577">သင့်စက်ပစ္စည်းတွင် စကားဝှက်ဖိုင်ကို သိမ်းရန် အက်ပ်မရှိပါ။</translation>
 <translation id="7302081693174882195">အသေးစိတ်များ− သိမ်းဆည်းထားသည့် ဒေတာပမာဏအလိုက် စီထားသည်</translation>
+<translation id="7304873321153398381">အော့ဖ်လိုင်း။ Chrome က သင့်စကားဝှက်များကို စစ်ဆေး၍မရပါ။</translation>
 <translation id="7328017930301109123">'အပေါ့စားမုဒ်' တွင် Chrome သည် စာမျက်နှာများကို ပိုမိုမြန်ဆန်စွာဖွင့်ပြီး ဒေတာကို ၆၀ ရာခိုင်နှုန်းအထိ လျှော့သုံးပါသည်။</translation>
 <translation id="7333031090786104871">ယခင်ဆိုက်ကို ထည့်သွင်းနေဆဲဖြစ်သည်</translation>
 <translation id="7340958967809483333">Discover အတွက် ရွေးစရာများ</translation>
@@ -816,6 +825,7 @@
 <translation id="741204030948306876">ပါဝင်ပါမည်</translation>
 <translation id="7413229368719586778">စတင်သည့်ရက် <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Search နှင့် အခြားအရာများကို ပုဂ္ဂိုလ်ရေးသီးသန့် သတ်မှတ်ရန်အတွက် အသုံးပြုမှုမှတ်တမ်းအား မည်သို့အသုံးချကြောင်း ထိန်းချုပ်ပါ</translation>
+<translation id="7435356471928173109">သင်၏စီမံခန့်ခွဲသူက ပိတ်ထားသည်</translation>
 <translation id="7437998757836447326">Chrome ထဲမှ ထွက်သွားရန်</translation>
 <translation id="7438641746574390233">'အပေါ့စားမုဒ်' ဖွင့်ထားသည့်အခါ စာမျက်နှာများ ပိုမိုမြန်ဆန်စွာ ဖွင့်နိုင်ရန် Chrome က Google ဆာဗာများကို အသုံးပြုသည်။ အရေးကြီး အကြောင်းအရာများကိုသာ ဖွင့်ရန် 'အပေါ့စားမုဒ်' က အလွန်နှေးသော ဝဘ်စာမျက်နှာများကို ပြန်ရေးသည်။ 'အပေါ့စားမုဒ်' ကို 'ရုပ်ဖျက်' တဘ်များတွင် သုံး၍မရပါ။</translation>
 <translation id="7444811645081526538">နောက်ထပ် အမျိုးအစားများ</translation>
@@ -1031,6 +1041,7 @@
 <translation id="9050666287014529139">စကားစုဝှက်</translation>
 <translation id="9063523880881406963">ဆိုဒ်အကြီး တောင်းဆိုချက် ပိတ်မည်</translation>
 <translation id="9065203028668620118">ပြင်ဆင်ရန်</translation>
+<translation id="9069543557624799859"><ph name="TIME" /> တွင် ဒေါင်းလုဒ်စတင်မည်။</translation>
 <translation id="9070377983101773829">အသံဖြင့် ရှာဖွေမှု စတင်ရန်</translation>
 <translation id="9074336505530349563">Google က အကြံပြုထားသည့် ပုဂ္ဂိုလ်ရေးသီးသန့် အကြောင်းအရာကို ရယူနိုင်ရန် လက်မှတ်ထိုးဝင်ပြီး စင့်ခ်လုပ်ခြင်းကို ဖွင့်ပါ</translation>
 <translation id="9086302186042011942">စင့်က် လုပ်နေ</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 1a291f85..a191cb5 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
@@ -476,6 +476,7 @@
 <translation id="4837753911714442426">पृष्ठ छाप्ने सम्बन्धी विकल्पहरू खोल्नुहोस्</translation>
 <translation id="4842092870884894799">पासवर्ड उत्पादन पपअप देखाउँदै</translation>
 <translation id="4860895144060829044">कल गर्नुहोस्</translation>
+<translation id="4864369630010738180">साइन इन गरिँदै...</translation>
 <translation id="4866368707455379617">Chrome को <ph name="MODULE" /> स्थापना गर्न सकिएन</translation>
 <translation id="4875775213178255010">सामग्रीसम्बन्धी सुझावहरू</translation>
 <translation id="4878404682131129617">प्रोक्सी सर्भरमार्फत कुनै टनेल स्थापना गर्न सकिएन</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 b5d2d60..e6f91d24 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL kopiëren</translation>
 <translation id="2156074688469523661">Resterende sites (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Als je iets op je telefoon wilt delen met een ander apparaat, schakel je de synchronisatie in de Chrome-instellingen op beide apparaten in</translation>
+<translation id="2158408438301413340">Chrome kan niet alle wachtwoorden checken</translation>
 <translation id="2169830938017475061">Nu</translation>
 <translation id="2175927920773552910">QR-code</translation>
 <translation id="218608176142494674">Delen</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Beheer je artikelen met de knop 'Opties voor Discover'</translation>
 <translation id="2259659629660284697">Wachtwoorden exporteren…</translation>
 <translation id="2268044343513325586">Verfijnen</translation>
+<translation id="2276696007612801991">Log in met je Google-account om je wachtwoorden te checken</translation>
 <translation id="2286841657746966508">Factuuradres</translation>
 <translation id="230115972905494466">Geen geschikte apparaten gevonden</translation>
 <translation id="2318045970523081853">Tik om te bellen</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /> over voorgestelde content</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Standaardbeveiliging is ingeschakeld</translation>
+<translation id="3509330069915219067">Offline. Chrome kan niet checken op updates.</translation>
 <translation id="3513704683820682405">Augmented reality</translation>
 <translation id="3518985090088779359">Accept. en doorgaan</translation>
 <translation id="3522247891732774234">Update beschikbaar. Meer opties</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Zoom inschakelen forceren</translation>
 <translation id="3909763690984331376">Veiligheidscheck <ph name="BEGIN_NEW" />Nieuw<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">We zoeken naar het beste op internet…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> is ingeschakeld</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Mijn gegevens combineren</translation>
 <translation id="393697183122708255">Gesproken zoekopdracht niet beschikbaar</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome laadt de pagina wanneer deze gereed is}other{Chrome laadt de pagina's wanneer deze gereed zijn}}</translation>
 <translation id="3963007978381181125">Wachtwoordzinversleuteling is niet van toepassing op betaalmethoden en adressen van Google Pay. Alleen iemand met je wachtwoordzin kan je versleutelde gegevens lezen. De wachtwoordzin wordt niet verzonden naar of opgeslagen door Google. Als je je wachtwoordzin vergeet of deze instelling wilt wijzigen, moet je de synchronisatie resetten. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Downloaden voltooid</translation>
+<translation id="3969142555815019568">Chrome kan je wachtwoorden niet checken</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> wordt geopend in Chrome. Als je doorgaat, ga je akkoord met de <ph name="BEGIN_LINK1" />servicevoorwaarden van Google<ph name="END_LINK1" /> en met de <ph name="BEGIN_LINK2" />aanvullende servicevoorwaarden van Google Chrome en Chrome OS<ph name="END_LINK2" />. Ook is de <ph name="BEGIN_LINK3" />privacyverklaring voor Google-accounts die worden beheerd met Family Link<ph name="END_LINK3" /> van toepassing.</translation>
 <translation id="397583555483684758">Synchronisatie werkt niet meer</translation>
 <translation id="3976396876660209797">Verwijder de snelkoppeling en maak deze opnieuw</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> openen</translation>
 <translation id="4634124774493850572">Wachtwoord gebruiken</translation>
 <translation id="4650364565596261010">Systeemstandaard</translation>
+<translation id="465657074423018424">Safe Browsing beschermt je tegen misleidende websites. Als je deze functie uitschakelt, moet je extra voorzichtig zijn als je browst, met name voordat je wachtwoorden opgeeft.</translation>
 <translation id="4662373422909645029">Cijfers niet toegestaan</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bookmarks verwijderd</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> is toegevoegd aan je startscherm</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Afdrukopties voor de pagina openen</translation>
 <translation id="4842092870884894799">Pop-upvenster voor wachtwoord genereren wordt weergegeven</translation>
 <translation id="4860895144060829044">Bellen</translation>
+<translation id="4864369630010738180">Inloggen...</translation>
 <translation id="4866368707455379617">Kan <ph name="MODULE" /> niet installeren voor Chrome</translation>
 <translation id="4875775213178255010">Contentsuggesties</translation>
 <translation id="4878404682131129617">Kan geen tunnel tot stand brengen via de proxyserver</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Account beheren</translation>
 <translation id="7077143737582773186">SD-kaart</translation>
 <translation id="7080806333218412752">Stuurt URL's naar Safe Browsing om deze te checken. Stuurt ook een klein gedeelte pagina's, downloads, extensie-activiteit en systeeminformatie om nieuwe dreigingen te kunnen detecteren. Koppelt deze gegevens tijdelijk aan je Google-account als je bent ingelogd om je te beschermen binnen de Google-apps.</translation>
+<translation id="7088681679121566888">Chrome is up-to-date</translation>
 <translation id="7121362699166175603">Hiermee worden de geschiedenis en automatische aanvullingen voor de adresbalk gewist. Er kunnen andere vormen van browsegeschiedenis zijn opgeslagen voor je Google-account op <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Zie je topsites en recente artikelen als je op de startknop tikt</translation>
 <translation id="7138678301420049075">Overige</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Schakel 'Je Chrome-gegevens synchroniseren' in om de synchronisatie te starten.</translation>
 <translation id="729975465115245577">Je apparaat bevat geen app om het wachtwoordbestand in op te slaan.</translation>
 <translation id="7302081693174882195">Details: gesorteerd op de hoeveelheid bespaarde data</translation>
+<translation id="7304873321153398381">Offline. Chrome kan je wachtwoorden niet checken.</translation>
 <translation id="7328017930301109123">In de Lite-versie van Chrome worden pagina's sneller geladen en wordt tot wel 60 procent minder data verbruikt.</translation>
 <translation id="7333031090786104871">Nog steeds bezig met toevoegen van vorige site</translation>
 <translation id="7340958967809483333">Opties voor Discover</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Ja, inschakelen</translation>
 <translation id="7413229368719586778">Begindatum: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Beheren hoe je browsegeschiedenis wordt gebruikt om Google Zoeken en meer te personaliseren</translation>
+<translation id="7435356471928173109">Uitgeschakeld door je beheerder</translation>
 <translation id="7437998757836447326">Uitloggen bij Chrome</translation>
 <translation id="7438641746574390233">Wanneer de Lite-modus is ingeschakeld, gebruikt Chrome Google-servers om pagina's sneller te laden. In de Lite-versie worden erg trage pagina's herschreven zodat alleen essentiële content wordt geladen. De Lite-modus werkt niet op incognitotabbladen.</translation>
 <translation id="7444811645081526538">Meer categorieën</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Wachtwoordzin</translation>
 <translation id="9063523880881406963">'Desktopsite opvragen' uitschakelen</translation>
 <translation id="9065203028668620118">Bewerken</translation>
+<translation id="9069543557624799859">Download wordt gestart om <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Gesproken zoekopdracht starten</translation>
 <translation id="9074336505530349563">Log in en schakel synchronisatie in om suggesties voor gepersonaliseerde content van Google te ontvangen</translation>
 <translation id="9086302186042011942">Synchroniseren</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 3e28c77..2566643 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Åpne alternativene for å skrive ut siden</translation>
 <translation id="4842092870884894799">Viser forgrunnsvinduet for passordgenerering</translation>
 <translation id="4860895144060829044">Ring</translation>
+<translation id="4864369630010738180">Logger på ...</translation>
 <translation id="4866368707455379617">Kan ikke installere <ph name="MODULE" /> for Chrome</translation>
 <translation id="4875775213178255010">Innholdsforslag</translation>
 <translation id="4878404682131129617">Kunne ikke opprette tunnel via proxy-tjener.</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 7b8dbb1c..4dd3266 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">ପୃଷ୍ଠା ପ୍ରିଣ୍ଟ କରିବାକୁ ବିକଳ୍ପଗୁଡ଼ିକ ଖୋଲନ୍ତୁ</translation>
 <translation id="4842092870884894799">ପାସ୍‌ୱର୍ଡ ତିଆରି ପପ୍-ଅପ୍ ଦେଖାଉଛି</translation>
 <translation id="4860895144060829044">କଲ୍ କରନ୍ତୁ</translation>
+<translation id="4864369630010738180">ସାଇନ୍ ଇନ୍ ହେଉଛି…</translation>
 <translation id="4866368707455379617">Chrome ପାଇଁ <ph name="MODULE" /> ଇନ୍‌ଷ୍ଟଲ୍ କରିବାରେ ଅକ୍ଷମ</translation>
 <translation id="4875775213178255010">ବିଷୟବସ୍ତୁ ପରାମର୍ଶ</translation>
 <translation id="4878404682131129617">ପ୍ରକ୍ସି ସର୍ଭର୍ ମାଧ୍ୟମରେ ଗୋଟିଏ ଟନେଲ୍ ସ୍ଥାପନ କରିବା ବିଫଳ ହେଲା</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 2e897b935..e37a903 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL ਕਾਪੀ ਕਰੋ</translation>
 <translation id="2156074688469523661">ਬਾਕੀ ਸਾਈਟਾਂ (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">ਕਿਸੇ ਚੀਜ਼ ਨੂੰ ਆਪਣੇ ਫ਼ੋਨ ਤੋਂ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ 'ਤੇ ਸਾਂਝਾ ਕਰਨ ਲਈ, ਦੋਵੇਂ ਡੀਵਾਈਸਾਂ 'ਤੇ Chrome ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਕਰੋ</translation>
+<translation id="2158408438301413340">Chrome ਸਾਰੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਿਆ</translation>
 <translation id="2169830938017475061">ਹੁਣੇ</translation>
 <translation id="2175927920773552910">QR ਕੋਡ</translation>
 <translation id="218608176142494674">ਸਾਂਝਾਕਰਨ</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">'ਡਿਸਕਵਰ' ਬਟਨ ਲਈ 'ਵਿਕਲਪ' ਤੋਂ ਆਪਣੀਆਂ ਕਹਾਣੀਆਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ</translation>
 <translation id="2259659629660284697">ਪਾਸਵਰਡ ਨਿਰਯਾਤ ਕਰੋ...</translation>
 <translation id="2268044343513325586">ਸੋਧੋ</translation>
+<translation id="2276696007612801991">ਆਪਣੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="2286841657746966508">ਬਿਲਿੰਗ ਪਤਾ</translation>
 <translation id="230115972905494466">ਕੋਈ ਅਨੁਰੂਪ ਡੀਵਾਈਸ ਨਹੀਂ ਮਿਲੇ</translation>
 <translation id="2318045970523081853">ਕਾਲ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708">ਸੁਝਾਈ ਗਈ ਸਮੱਗਰੀ ਬਾਰੇ <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">ਮਿਆਰੀ ਸੁਰੱਖਿਆ ਚਾਲੂ ਹੈ</translation>
+<translation id="3509330069915219067">ਆਫ਼ਲਾਈਨ। Chrome ਅੱਪਡੇਟਾਂ ਲਈ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦਾ।</translation>
 <translation id="3513704683820682405">ਆਗਮੈਂਟਿਡ ਰਿਐਲਿਟੀ</translation>
 <translation id="3518985090088779359">ਸਵੀਕਾਰ ਕਰੋ &amp; ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="3522247891732774234">ਅੱਪਡੇਟ ਉਪਲਬਧ ਹੈ। ਹੋਰ ਵਿਕਲਪ</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">ਜ਼ੂਮ ਨੂੰ ਚਾਲੂ ਕਰਨ 'ਤੇ ਜ਼ੋਰ ਦਿਓ</translation>
 <translation id="3909763690984331376">ਸੁਰੱਖਿਆ ਜਾਂਚ <ph name="BEGIN_NEW" />ਨਵਾਂ<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">ਵੈੱਬ ਤੋਂ ਬਿਹਤਰੀਨ ਜਾਣਕਾਰੀ ਲੱਭ ਰਹੇ ਹਾਂ…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> ਚਾਲੂ ਹੈ</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">ਮੇਰੇ ਡਾਟੇ ਨੂੰ ਮਿਲਾਓ</translation>
 <translation id="393697183122708255">ਕੋਈ ਸਮਰਥਿਤ ਅਵਾਜ਼ੀ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{ਤਿਆਰ ਹੋਣ 'ਤੇ Chrome ਤੁਹਾਡੇ ਪੰਨੇ ਨੂੰ ਲੋਡ ਕਰੇਗਾ}one{ਤਿਆਰ ਹੋਣ 'ਤੇ Chrome ਤੁਹਾਡੇ ਪੰਨੇ ਨੂੰ ਲੋਡ ਕਰੇਗਾ}other{ਤਿਆਰ ਹੋਣ 'ਤੇ Chrome ਤੁਹਾਡੇ ਪੰਨਿਆਂ ਨੂੰ ਲੋਡ ਕਰੇਗਾ}}</translation>
 <translation id="3963007978381181125">ਪਾਸਫਰੇਜ਼ ਇਨਕ੍ਰਿਪਸ਼ਨ ਵਿੱਚ Google Pay ਦੀਆਂ ਭੁਗਤਾਨ ਵਿਧੀਆਂ ਅਤੇ ਪਤੇ ਸ਼ਾਮਲ ਨਹੀਂ ਹਨ। ਤੁਹਾਡੇ ਇਨਕ੍ਰਿਪਟਡ ਡਾਟੇ ਨੂੰ ਸਿਰਫ਼ ਓਹੀ ਵਿਅਕਤੀ ਪੜ੍ਹ ਸਕਦਾ ਹੈ ਜਿਸ ਕੋਲ ਤੁਹਾਡਾ ਪਾਸਫਰੇਜ਼ ਹੁੰਦਾ ਹੈ। ਪਾਸਫਰੇਜ਼ Google ਨੂੰ ਭੇਜਿਆ ਜਾਂ ਉਸ ਵੱਲੋਂ ਸਟੋਰ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਫਰੇਜ਼ ਭੁੱਲ ਜਾਂਦੇ ਹੋ ਜਾਂ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਸਮਕਾਲੀਕਰਨ ਨੂੰ ਰੀਸੈੱਟ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">ਡਾਊਨਲੋਡ ਪੂਰਾ ਹੋਇਆ</translation>
+<translation id="3969142555815019568">Chrome ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦਾ</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> ਨੂੰ Chrome ਵਿੱਚ ਖੋਲ੍ਹਿਆ ਜਾਵੇਗਾ। ਜਾਰੀ ਰੱਖ ਕੇ, ਤੁਸੀਂ <ph name="BEGIN_LINK1" />Google ਦੇ ਸੇਵਾ ਦੇ ਨਿਯਮਾਂ<ph name="END_LINK1" /> ਅਤੇ <ph name="BEGIN_LINK2" />Google Chrome ਅਤੇ Chrome OS ਦੇ ਵਧੀਕ ਸੇਵਾ ਦੇ ਨਿਯਮਾਂ<ph name="END_LINK2" /> ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ। <ph name="BEGIN_LINK3" />Family Link ਨਾਲ ਪ੍ਰਤੀਬੰਧਿਤ ਕੀਤੇ ਜਾਂਦੇ Google ਖਾਤਿਆਂ ਲਈ ਪਰਦੇਦਾਰੀ ਨੋਟਿਸ<ph name="END_LINK3" /> ਵੀ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।</translation>
 <translation id="397583555483684758">ਸਮਕਾਲੀਕਰਨ ਨੇ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ</translation>
 <translation id="3976396876660209797">ਇਸ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਹਟਾ ਕੇ ਮੁੜ-ਬਣਾਓ</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> ਖੋਲ੍ਹੋ</translation>
 <translation id="4634124774493850572">ਪਾਸਵਰਡ ਵਰਤੋ</translation>
 <translation id="4650364565596261010">ਸਿਸਟਮ ਪੂਰਵ-ਨਿਰਧਾਰਤ</translation>
+<translation id="465657074423018424">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਧੋਖੇਬਾਜ਼ ਵੈੱਬਸਾਈਟਾਂ ਤੋਂ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਕਰਦੀ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬੰਦ ਕਰਦੇ ਹੋ, ਤਾਂ ਬ੍ਰਾਊਜ਼ਿੰਗ ਕਰਨ ਦੌਰਾਨ ਜ਼ਿਆਦਾ ਸਾਵਧਾਨ ਰਹੋ, ਖਾਸ ਕਰਕੇ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ।</translation>
 <translation id="4662373422909645029">ਉਪਨਾਮ 'ਚ ਅੰਕ ਨਹੀਂ ਹੋ ਸਕਦੇ</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ਬੁੁੱਕਮਾਰਕ ਮਿਟਾਏ ਗਏ</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ਨੂੰ ਤੁਹਾਡੀ ਹੋਮ ਸਕ੍ਰੀਨ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">ਪੰਨਾ ਪ੍ਰਿੰਟ ਕਰਨ ਲਈ ਵਿਕਲਪਾਂ ਨੂੰ ਖੋਲ੍ਹੋ</translation>
 <translation id="4842092870884894799">ਪਾਸਵਰਡ ਜੈਨਰੇਸ਼ਨ ਪੌਪਅੱਪ  ਦਿਖਾ ਰਿਹਾ ਹੈ</translation>
 <translation id="4860895144060829044">ਕਾਲ ਕਰੋ</translation>
+<translation id="4864369630010738180">ਸਾਈਨ ਇਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...</translation>
 <translation id="4866368707455379617">Chrome ਲਈ <ph name="MODULE" /> ਨੂੰ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ</translation>
 <translation id="4875775213178255010">ਸਮੱਗਰੀ ਦੇ ਸੁਝਾਅ</translation>
 <translation id="4878404682131129617">ਪ੍ਰੌਕਸੀ ਸਰਵਰ ਰਾਹੀਂ ਕੋਈ ਟਨਲ ਸਥਾਪਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="7077143737582773186">SD ਕਾਰਡ</translation>
 <translation id="7080806333218412752">URL ਨੂੰ ਜਾਂਚਣ ਲਈ ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਨੂੰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ਨਵੇਂ ਖਤਰਿਆਂ ਨੂੰ ਖੋਜਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ ਪੰਨਿਆਂ, ਡਾਊਨਲੋਡਾਂ, ਐਕਸਟੈਂਸ਼ਨ ਸਰਗਰਮੀ ਅਤੇ ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਦਾ ਇੱਕ ਛੋਟਾ ਨਮੂਨਾ ਵੀ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ਤੁਹਾਡੇ ਸਾਈਨ-ਇਨ ਹੋਣ 'ਤੇ, ਤੁਹਾਨੂੰ Google ਐਪਾਂ 'ਤੇ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਲਈ, ਇਸ ਡਾਟੇ ਨੂੰ ਤੁਹਾਡੇ Google ਖਾਤੇ ਨਾਲ ਅਸਥਾਈ ਤੌਰ 'ਤੇ ਲਿੰਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।</translation>
+<translation id="7088681679121566888">Chrome ਅੱਪ-ਟੂ-ਡੇਟ ਹੈ</translation>
 <translation id="7121362699166175603">ਪਤਾ ਬਾਰ ਵਿੱਚ ਇਤਿਹਾਸ ਅਤੇ ਸਵੈ-ਮੁਕੰਮਲ ਚੀਜ਼ਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰੋ। ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 'ਤੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਦੀਆਂ ਹੋਰ ਕਿਸਮਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ।</translation>
 <translation id="7128355412245153445">ਹੋਮ ਬਟਨ 'ਤੇ ਟੈਪ ਕਰਨ 'ਤੇ ਆਪਣੀਆਂ ਪ੍ਰਮੁੱਖ ਸਾਈਟਾਂ ਅਤੇ ਹਾਲੀਆ ਕਹਾਣੀਆਂ ਦੇਖੋ</translation>
 <translation id="7138678301420049075">ਹੋਰ</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">ਸਮਕਾਲੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ, "ਆਪਣੇ Chrome ਡਾਟੇ ਦਾ ਸਮਕਾਲੀਕਰਨ ਕਰੋ" ਨੂੰ ਚਾਲੂ ਕਰੋ।</translation>
 <translation id="729975465115245577">ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਵਿੱਚ ਪਾਸਵਰਡ ਫ਼ਾਈਲ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਕੋਈ ਐਪ ਨਹੀਂ ਹੈ।</translation>
 <translation id="7302081693174882195">ਵੇਰਵੇ: ਰੱਖਿਅਤ ਕੀਤੇ ਗਏ ਡਾਟੇ ਦੀ ਮਾਤਰਾ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕੀਤਾ ਗਿਆ</translation>
+<translation id="7304873321153398381">ਆਫ਼ਲਾਈਨ। Chrome ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦਾ।</translation>
 <translation id="7328017930301109123">ਲਾਈਟ ਮੋਡ ਵਿੱਚ, Chrome ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਪੰਨੇ ਲੋਡ ਕਰਦਾ ਹੈ ਅਤੇ 60 ਪ੍ਰਤੀਸ਼ਤ ਤੱਕ ਘੱਟ ਡਾਟਾ ਵਰਤਦਾ ਹੈ।</translation>
 <translation id="7333031090786104871">ਹਾਲੇ ਪਿਛਲੀ ਸਾਈਟ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
 <translation id="7340958967809483333">'ਡਿਸਕਵਰ' ਲਈ ਵਿਕਲਪ</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">ਹਾਂ, ਸਹਿਮਤ ਹਾਂ</translation>
 <translation id="7413229368719586778">ਸ਼ੁਰੂਆਤੀ ਤਾਰੀਖ <ph name="DATE" /></translation>
 <translation id="7431991332293347422">'ਖੋਜ' ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਦੇ ਵਰਤੇ ਜਾਣ ਦੇ ਤਰੀਕੇ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ</translation>
+<translation id="7435356471928173109">ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਬੰਦ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="7437998757836447326">Chrome ਤੋਂ ਸਾਈਨ-ਆਉਟ ਕਰੋ</translation>
 <translation id="7438641746574390233">ਲਾਈਟ ਮੋਡ ਚਾਲੂ ਹੋਣ 'ਤੇ, Chrome ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਪੰਨੇ ਲੋਡ ਕਰਨ ਲਈ Google ਸਰਵਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਲਾਈਟ ਮੋਡ ਸਿਰਫ਼ ਜ਼ਰੂਰੀ ਸਮੱਗਰੀ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਬਹੁਤ ਹੀ ਧੀਮੇ ਪੰਨਿਆਂ ਨੂੰ ਮੁੜ-ਲੋਡ ਕਰਦਾ ਹੈ। ਲਾਈਟ ਮੋਡ ਇਨਕੋਗਨਿਟੋ ਟੈਬਾਂ 'ਤੇ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦਾ ਹੈ।</translation>
 <translation id="7444811645081526538">ਹੋਰ ਸ਼੍ਰੇਣੀਆਂ</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">ਪਾਸਫਰੇਜ਼</translation>
 <translation id="9063523880881406963">ਬੇਨਤੀ ਡੈਸਕਟਾਪ ਸਾਈਟ ਬੰਦ ਕਰੋ</translation>
 <translation id="9065203028668620118">ਸੰਪਾਦਿਤ ਕਰੋ</translation>
+<translation id="9069543557624799859"><ph name="TIME" /> ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨਾ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਵੇਗਾ।</translation>
 <translation id="9070377983101773829">ਅਵਾਜ਼ੀ ਖੋਜ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="9074336505530349563">Google ਵੱਲੋਂ ਸੁਝਾਈ ਵਿਅਕਤੀਗਤ ਬਣਾਈ ਗਈ ਸਮੱਗਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਸਾਈਨ-ਇਨ ਕਰਕੇ ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="9086302186042011942">ਸਿੰਕ ਕਰ ਰਿਹਾ ਹੈ</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 4d06eb50..e16e85d 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Otwórz opcje drukowania strony</translation>
 <translation id="4842092870884894799">Pokazuję wyskakujące okienko generowania hasła</translation>
 <translation id="4860895144060829044">Zadzwoń</translation>
+<translation id="4864369630010738180">Loguję...</translation>
 <translation id="4866368707455379617">Nie można zainstalować modułu <ph name="MODULE" /> do Chrome</translation>
 <translation id="4875775213178255010">Polecane treści</translation>
 <translation id="4878404682131129617">Nie udało się utworzyć tunelu przez serwer proxy</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 4e23c09..e390b44 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Copiar URL</translation>
 <translation id="2156074688469523661">Sites restantes (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Para compartilhar conteúdo do seu smartphone com outro dispositivo, ative a sincronização nas configurações do Chrome nos dois dispositivos</translation>
+<translation id="2158408438301413340">Não foi possível verificar todas as senhas com o Chrome</translation>
 <translation id="2169830938017475061">Agora</translation>
 <translation id="2175927920773552910">Código QR</translation>
 <translation id="218608176142494674">Compartilhamento</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Controle suas matérias com o botão "Opções do Discover"</translation>
 <translation id="2259659629660284697">Exportar senhas…</translation>
 <translation id="2268044343513325586">Refinar</translation>
+<translation id="2276696007612801991">Faça login na Conta do Google para verificar suas senhas</translation>
 <translation id="2286841657746966508">Endereço de faturamento</translation>
 <translation id="230115972905494466">Nenhum dispositivo compatível encontrado</translation>
 <translation id="2318045970523081853">Toque para ligar</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> sobre o conteúdo sugerido</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">A "Proteção padrão" está ativada</translation>
+<translation id="3509330069915219067">Off-line. O Chrome não pode verificar se há atualizações.</translation>
 <translation id="3513704683820682405">Realidade aumentada</translation>
 <translation id="3518985090088779359">Aceitar e continuar</translation>
 <translation id="3522247891732774234">Atualização disponível. Mais opções</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Forçar zoom</translation>
 <translation id="3909763690984331376">Confirmação de segurança <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Procurando o melhor da Web…</translation>
+<translation id="3924911262913579434">O modo <ph name="SAFE_BROWSING_MODE" /> está ativado</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Combinar meus dados</translation>
 <translation id="393697183122708255">Nenhuma pesq. por voz ativada disponível</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{O Chrome carregará sua página quando ela estiver pronta}one{O Chrome carregará sua página quando ela estiver pronta}other{O Chrome carregará suas páginas quando elas estiverem prontas}}</translation>
 <translation id="3963007978381181125">A criptografia por senha longa não inclui formas de pagamento e endereços do Google Pay. Apenas uma pessoa que tenha sua senha longa pode ler seus dados criptografados. Essa senha não é enviada ou armazenada pelo Google. Se você esquecer a senha longa ou quiser alterar essa configuração, será necessário redefinir a sincronização. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Download concluído</translation>
+<translation id="3969142555815019568">Não é possível verificar suas senhas com o Chrome</translation>
 <translation id="3974987681202239636">O app <ph name="APP_NAME" /> será aberto no Chrome. Ao continuar, você concorda com os <ph name="BEGIN_LINK1" />Termos de Serviço do Google<ph name="END_LINK1" /> e os <ph name="BEGIN_LINK2" />Termos de Serviço adicionais do Google Chrome e do Chrome OS<ph name="END_LINK2" />. O <ph name="BEGIN_LINK3" />Aviso de privacidade para Contas do Google gerenciadas no Family Link<ph name="END_LINK3" /> também é aplicável.</translation>
 <translation id="397583555483684758">A sincronização parou de funcionar</translation>
 <translation id="3976396876660209797">Remova e recrie este atalho</translation>
@@ -448,6 +453,7 @@
 <translation id="4616150815774728855">Abrir <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Usar senha</translation>
 <translation id="4650364565596261010">Padrão do sistema</translation>
+<translation id="465657074423018424">O "Navegação segura" protege você de sites enganosos. Se você o desativar, tenha cuidado redobrado ao navegar pela Internet, principalmente quando for digitar senhas.</translation>
 <translation id="4662373422909645029">O apelido não pode ter números</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> favoritos excluídos</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> foi adicionado à sua tela inicial</translation>
@@ -478,6 +484,7 @@
 <translation id="4837753911714442426">Abrir opções de impressão de página</translation>
 <translation id="4842092870884894799">Mostrando pop-up da criação de senhas</translation>
 <translation id="4860895144060829044">Ligar</translation>
+<translation id="4864369630010738180">Fazendo login...</translation>
 <translation id="4866368707455379617">Não é possível instalar <ph name="MODULE" /> para o Chrome</translation>
 <translation id="4875775213178255010">Sugestões de conteúdo</translation>
 <translation id="4878404682131129617">Falha ao estabelecer encapsulamento via servidor proxy</translation>
@@ -784,6 +791,7 @@
 <translation id="7071521146534760487">Gerenciar conta</translation>
 <translation id="7077143737582773186">Cartão SD</translation>
 <translation id="7080806333218412752">Envia URLs para a verificação pelo Navegação segura. Também envia uma pequena amostra de páginas, downloads, atividades de extensões e informações do sistema para ajudar a descobrir novas ameaças. Vincula temporariamente esses dados à sua Conta do Google quando ela está conectada para proteger você nos apps do Google.</translation>
+<translation id="7088681679121566888">O Chrome está atualizado</translation>
 <translation id="7121362699166175603">Limpa o histórico e os preenchimentos automáticos na barra de endereço. Sua Conta do Google pode ter outras formas de histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Veja os principais sites e as matérias recentes sempre que tocar no botão home</translation>
 <translation id="7138678301420049075">Outro</translation>
@@ -805,6 +813,7 @@
 <translation id="7293171162284876153">Para iniciar a sincronização, ative a opção "Sincronizar seus dados do Chrome".</translation>
 <translation id="729975465115245577">Seu dispositivo não tem um app para armazenar o arquivo de senhas.</translation>
 <translation id="7302081693174882195">Detalhes: classificados pela quantidade de dados economizados</translation>
+<translation id="7304873321153398381">Off-line. Não é possível verificar suas senhas com o Chrome.</translation>
 <translation id="7328017930301109123">Com o Modo Lite, as páginas são carregadas mais rapidamente no Chrome, e há uma economia de dados de até 60 por cento.</translation>
 <translation id="7333031090786104871">Ainda adicionando o site anterior</translation>
 <translation id="7340958967809483333">Opções do Discover</translation>
@@ -818,6 +827,7 @@
 <translation id="741204030948306876">Sim</translation>
 <translation id="7413229368719586778">Data de início: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Controlar como o histórico de navegação é usado para personalizar a Pesquisa e muito mais</translation>
+<translation id="7435356471928173109">Desativado pelo administrador</translation>
 <translation id="7437998757836447326">Sair do Google Chrome</translation>
 <translation id="7438641746574390233">Quando o Modo Lite está ativado, o Chrome usa os servidores do Google para carregar páginas mais rapidamente. O Modo Lite reescreve páginas muito lentas de forma a carregar apenas o conteúdo essencial. O Modo Lite não se aplica a guias anônimas.</translation>
 <translation id="7444811645081526538">Mais categorias</translation>
@@ -1033,6 +1043,7 @@
 <translation id="9050666287014529139">Senha</translation>
 <translation id="9063523880881406963">Desativar "Ver versão para computador"</translation>
 <translation id="9065203028668620118">Editar</translation>
+<translation id="9069543557624799859">O download começará às <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Iniciar pesquisa por voz</translation>
 <translation id="9074336505530349563">Para receber conteúdo personalizado sugerido pelo Google, ative a sincronização</translation>
 <translation id="9086302186042011942">Sincronizando</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 0698f3c..aef7dd4 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Copiar URL</translation>
 <translation id="2156074688469523661">Sites restantes (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Para partilhar conteúdos do seu telemóvel com outro dispositivo, ative a sincronização nas definições do Chrome em ambos os dispositivos.</translation>
+<translation id="2158408438301413340">O Chrome não conseguiu verificar todas as palavras-passe.</translation>
 <translation id="2169830938017475061">Agora</translation>
 <translation id="2175927920773552910">Código QR</translation>
 <translation id="218608176142494674">Partilha</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Controle as notícias a partir do botão Opções para o Discover</translation>
 <translation id="2259659629660284697">Exportar palavras-passe</translation>
 <translation id="2268044343513325586">Refinar</translation>
+<translation id="2276696007612801991">Inicie sessão na sua Conta Google para verificar as suas palavras-passe.</translation>
 <translation id="2286841657746966508">Endereço de faturação</translation>
 <translation id="230115972905494466">Não foram encontrados dispositivos compatíveis.</translation>
 <translation id="2318045970523081853">Toque para efetuar uma chamada</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> acerca do conteúdo sugerido</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">A Proteção padrão está ativada.</translation>
+<translation id="3509330069915219067">Está offline. O Chrome não consegue verificar se existem atualizações.</translation>
 <translation id="3513704683820682405">Realidade aumentada</translation>
 <translation id="3518985090088779359">Aceitar e continuar</translation>
 <translation id="3522247891732774234">Atualização disponível. Mais opções</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Forçar ativação do zoom</translation>
 <translation id="3909763690984331376">Verificação de segurança <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">A procurar o melhor da Web…</translation>
+<translation id="3924911262913579434">A funcionalidade <ph name="SAFE_BROWSING_MODE" /> está ativada.</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Combinar os meus dados</translation>
 <translation id="393697183122708255">Nenhuma pesq. por voz ativada disponível</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{O Chrome irá carregar a página quando estiver pronta.}other{O Chrome irá carregar as páginas quando estiverem prontas.}}</translation>
 <translation id="3963007978381181125">A encriptação da frase de acesso não inclui métodos de pagamento nem endereços do Google Pay. Apenas alguém que conheça a sua frase de acesso pode ler os seus dados encriptados. A frase de acesso não é enviada para a Google nem armazenada pela mesma. Se se esquecer da frase de acesso ou pretender alterar esta definição, tem de repor a sincronização. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Transferência concluída</translation>
+<translation id="3969142555815019568">O Chrome não consegue verificar as suas palavras-passe.</translation>
 <translation id="3974987681202239636">A app <ph name="APP_NAME" /> vai abrir no Chrome. Ao continuar, aceita os <ph name="BEGIN_LINK1" />Termos de Utilização do Google<ph name="END_LINK1" /> e os <ph name="BEGIN_LINK2" />Termos de Utilização Adicionais do Google Chrome e Chrome OS<ph name="END_LINK2" />. O <ph name="BEGIN_LINK3" />Aviso de Privacidade para Contas Google geridas com o Family Link<ph name="END_LINK3" /> também se aplica.</translation>
 <translation id="397583555483684758">A sincronização deixou de funcionar</translation>
 <translation id="3976396876660209797">Remova este atalho e crie-o novamente</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Abrir <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Utilizar palavra-passe</translation>
 <translation id="4650364565596261010">Predefinição do sistema</translation>
+<translation id="465657074423018424">A Navegação segura protege contra Websites fraudulentos. Se a desativar, tenha um cuidado adicional ao navegar, especialmente antes de introduzir palavras-passe.</translation>
 <translation id="4662373422909645029">O pseudónimo n/ pode ter núm.</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> marcadores eliminados</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> foi adicionado ao seu Ecrã principal</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Abrir opções para imprimir página</translation>
 <translation id="4842092870884894799">A mostrar pop-up de geração de palavra-passe</translation>
 <translation id="4860895144060829044">Telefonar</translation>
+<translation id="4864369630010738180">A iniciar sessão...</translation>
 <translation id="4866368707455379617">Não é possível instalar o módulo <ph name="MODULE" /> para o Chrome.</translation>
 <translation id="4875775213178255010">Sugestões de conteúdo</translation>
 <translation id="4878404682131129617">Falha ao estabelecer um túnel através do servidor proxy.</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Gerir conta</translation>
 <translation id="7077143737582773186">Cartão SD</translation>
 <translation id="7080806333218412752">Envia URLs para a Navegação segura para os verificar. Envia também um pequeno exemplo de páginas, transferências, atividade de extensões e informações do sistema para ajudar a detetar novas ameaças. Associa temporariamente estes dados à sua Conta Google quando tiver sessão iniciada, para garantir a sua proteção nas apps Google.</translation>
+<translation id="7088681679121566888">O Chrome está atualizado.</translation>
 <translation id="7121362699166175603">Limpa o histórico e os preenchimentos automáticos na barra de endereço. A sua Conta Google pode ter outras formas do histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Veja os seus sites principais e notícias recentes sempre que tocar no botão página inicial.</translation>
 <translation id="7138678301420049075">Outros</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Para iniciar a sincronização, ative a opção "Sincronizar dados do Chrome".</translation>
 <translation id="729975465115245577">O dispositivo não tem uma aplicação para armazenar o ficheiro de palavras-passe.</translation>
 <translation id="7302081693174882195">Detalhes: ordenado por quantidade de dados guardados</translation>
+<translation id="7304873321153398381">Está offline. O Chrome não consegue verificar as suas palavras-passe.</translation>
 <translation id="7328017930301109123">No Modo Lite, o Chrome carrega páginas mais rapidamente e utiliza até menos 60 por cento de dados.</translation>
 <translation id="7333031090786104871">Ainda a adicionar o site anterior…</translation>
 <translation id="7340958967809483333">Opções para o Discover</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Sim, aceito</translation>
 <translation id="7413229368719586778">Data de início: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Controle a forma como o histórico de navegação é utilizado para personalizar a Pesquisa e muito mais.</translation>
+<translation id="7435356471928173109">Desativada pelo seu administrador.</translation>
 <translation id="7437998757836447326">Terminar sessão no Chrome</translation>
 <translation id="7438641746574390233">Quando o Modo Lite está ativado, o Chrome utiliza os servidores Google para carregar as páginas mais rapidamente. O Modo Lite reescreve páginas muito lentas para carregar apenas o conteúdo essencial. O Modo Lite não se aplica aos separadores de navegação anónima.</translation>
 <translation id="7444811645081526538">Mais categorias</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Frase de acesso</translation>
 <translation id="9063523880881406963">Desativar Pedir site para computador</translation>
 <translation id="9065203028668620118">Editar</translation>
+<translation id="9069543557624799859">A transferência vai começar à(s) <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Iniciar pesquisa por voz</translation>
 <translation id="9074336505530349563">Para obter conteúdo personalizado sugerido pelo Google, inicie sessão e ative a sincronização.</translation>
 <translation id="9086302186042011942">A sincronizar</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 f571f07b..deeef99c 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Deschide opțiunile pentru a printa pagina</translation>
 <translation id="4842092870884894799">Fereastra pop-up pentru generarea parolelor este afișată</translation>
 <translation id="4860895144060829044">Apelează</translation>
+<translation id="4864369630010738180">Se conectează...</translation>
 <translation id="4866368707455379617">Nu se poate instala <ph name="MODULE" /> pentru Chrome</translation>
 <translation id="4875775213178255010">Sugestii de conținut</translation>
 <translation id="4878404682131129617">Nu s-a putut stabili un tunel prin serverul proxy</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 54a85a2..b85ea10 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
@@ -42,7 +42,7 @@
 <translation id="1283039547216852943">Нажмите, чтобы развернуть</translation>
 <translation id="1291207594882862231">Удалить файлы cookie и данные сайтов, очистить историю и кеш</translation>
 <translation id="129553762522093515">Недавно закрытые</translation>
-<translation id="1298077576058087471">Экономьте до 60 % трафика и читайте ежедневные новости</translation>
+<translation id="1298077576058087471">Экономьте до 60 % трафика и читайте ежедневные новости.</translation>
 <translation id="1303339473099049190">Пароль не найден. Убедитесь, что он указан правильно, и повторите попытку.</translation>
 <translation id="1303507811548703290">Домен: <ph name="DOMAIN" />. Отправлено с устройства "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1310482092992808703">Сгруппировать вкладки</translation>
@@ -262,10 +262,10 @@
 <translation id="305593374596241526">Определение местоположения отключено. Включите его в <ph name="BEGIN_LINK" />настройках Android<ph name="END_LINK" />.</translation>
 <translation id="3058498974290601450">Ее можно включить в настройках в любой момент.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> закладка}one{<ph name="BOOKMARKS_COUNT_MANY" /> закладка}few{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}many{<ph name="BOOKMARKS_COUNT_MANY" /> закладок}other{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}}</translation>
-<translation id="3062802207422175757">Мы будем предлагать вам в Chrome статьи, подобранные на основе ваших интересов.</translation>
+<translation id="3062802207422175757">Прочитайте в Chrome статьи, подобранные с учетом ваших интересов.</translation>
 <translation id="3089395242580810162">Открыть в режиме инкогнито</translation>
 <translation id="3114012059975132928">Видеопроигрыватель</translation>
-<translation id="3114507951000454849">Читайте ежедневные новости <ph name="NEWS_ICON" /></translation>
+<translation id="3114507951000454849">Будьте в курсе новостей <ph name="NEWS_ICON" /></translation>
 <translation id="3123734510202723619">Оповещения</translation>
 <translation id="3137521801621304719">Выключить режим инкогнито</translation>
 <translation id="3143515551205905069">Отмена</translation>
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Открыть параметры печати страницы</translation>
 <translation id="4842092870884894799">Открыто всплывающее окно создания пароля</translation>
 <translation id="4860895144060829044">Позвонить</translation>
+<translation id="4864369630010738180">Вход в систему...</translation>
 <translation id="4866368707455379617">Не удается установить модуль "<ph name="MODULE" />" для Chrome</translation>
 <translation id="4875775213178255010">Предлагаемый контент</translation>
 <translation id="4878404682131129617">Не удалось создать туннель через прокси-сервер.</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 6421024..bad8cd4 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">පිටුවක් මුද්‍රණය කිරීමට විකල්ප විවෘත කරන්න</translation>
 <translation id="4842092870884894799">මුරපදය උත්පාදන උත්පතන පෙන්වමින්</translation>
 <translation id="4860895144060829044">අමතන්න</translation>
+<translation id="4864369630010738180">පුරමින්...</translation>
 <translation id="4866368707455379617">Chrome සඳහා <ph name="MODULE" /> ස්ථාපන කළ නොහැක</translation>
 <translation id="4875775213178255010">අන්තර්ගත යෝජනා</translation>
 <translation id="4878404682131129617">ප්‍රොක්සි සේවාදායකය හරහා උමගක් ස්ථාපනය කිරීම අසාර්ථක විය</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 c6fbfe8..9925cd6 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Otvorenie možností tlače stránky</translation>
 <translation id="4842092870884894799">Zobrazuje sa okno generovania hesiel</translation>
 <translation id="4860895144060829044">Volajte</translation>
+<translation id="4864369630010738180">Prebieha prihlasovanie...</translation>
 <translation id="4866368707455379617">Modul <ph name="MODULE" /> pre Chrome sa nepodarilo nainštalovať</translation>
 <translation id="4875775213178255010">Návrhy obsahu</translation>
 <translation id="4878404682131129617">Vytvorenie tunela prostredníctvom proxy servera zlyhalo</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 fdad670..b8834eb 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Odpiranje možnosti za tiskanje strani</translation>
 <translation id="4842092870884894799">Prikaz pojavnega okna za ustvarjanje gesel</translation>
 <translation id="4860895144060829044">Pokličite</translation>
+<translation id="4864369630010738180">Prijavljanje ...</translation>
 <translation id="4866368707455379617">Modula <ph name="MODULE" /> za Chrome ni mogoče namestiti</translation>
 <translation id="4875775213178255010">Predlogi za vsebino</translation>
 <translation id="4878404682131129617">Vzpostavljanje tunela prek strežnika proxy ni uspelo</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 f12e78a..e79e554 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Hap opsionet për të printuar faqen</translation>
 <translation id="4842092870884894799">Po shfaq dritaren kërcyese të krijimit të fjalëkalimit</translation>
 <translation id="4860895144060829044">Telefono</translation>
+<translation id="4864369630010738180">Po identifikohet...</translation>
 <translation id="4866368707455379617"><ph name="MODULE" /> nuk mund të instalohet për Chrome</translation>
 <translation id="4875775213178255010">Sugjerimet e përmbajtjes</translation>
 <translation id="4878404682131129617">Dështoi krijimi i një tuneli përmes serverit përfaqësues</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 f0ce186..ea06c698 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Otvaranje opcija za štampanje stranice</translation>
 <translation id="4842092870884894799">Prikazivanje iskačućeg prozora za generisanje lozinke</translation>
 <translation id="4860895144060829044">Pozovite</translation>
+<translation id="4864369630010738180">Prijavljivanje...</translation>
 <translation id="4866368707455379617">Instaliranje modula <ph name="MODULE" /> za Chrome nije uspelo</translation>
 <translation id="4875775213178255010">Predlozi za sadržaj</translation>
 <translation id="4878404682131129617">Uspostavljanje tunela preko proksi servera nije uspelo</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 eabc5a8..5c85492 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
@@ -483,6 +483,7 @@
 <translation id="4837753911714442426">Отварање опција за штампање странице</translation>
 <translation id="4842092870884894799">Приказивање искачућег прозора за генерисање лозинке</translation>
 <translation id="4860895144060829044">Позовите</translation>
+<translation id="4864369630010738180">Пријављивање...</translation>
 <translation id="4866368707455379617">Инсталирање модула <ph name="MODULE" /> за Chrome није успело</translation>
 <translation id="4875775213178255010">Предлози за садржај</translation>
 <translation id="4878404682131129617">Успостављање тунела преко прокси сервера није успело</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 1cc5d67..f307b6ee 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Öppna utskriftsalternativ</translation>
 <translation id="4842092870884894799">Visar popupfönster för lösenordsgenerering</translation>
 <translation id="4860895144060829044">Ring</translation>
+<translation id="4864369630010738180">Loggar in ...</translation>
 <translation id="4866368707455379617">Det gick inte att installera <ph name="MODULE" /> i Chrome</translation>
 <translation id="4875775213178255010">Förslag på innehåll</translation>
 <translation id="4878404682131129617">Det gick inte att upprätta en tunnel via proxyserver</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 5e03e27f..48de69e 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Nakili UR:</translation>
 <translation id="2156074688469523661">Tovuti zilizosalia (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Ili ushiriki kitu kutoka simu yako hadi kifaa kingine, washa usawazishaji katika mipangilio ya Chrome kwenye vifaa vyote viwili</translation>
+<translation id="2158408438301413340">Chrome imeshindwa kukagua manenosiri yote</translation>
 <translation id="2169830938017475061">Sasa</translation>
 <translation id="2175927920773552910">Msimbo wa QR</translation>
 <translation id="218608176142494674">Inashiriki</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Dhibiti taarifa zako kutoka kwenye kitufe cha Chaguo za Dokezo</translation>
 <translation id="2259659629660284697">Hamisha manenosiri…</translation>
 <translation id="2268044343513325586">Chuja</translation>
+<translation id="2276696007612801991">Ingia katika akaunti yako ya Google ili uangalie manenosiri yako</translation>
 <translation id="2286841657746966508">Anwani ya kutoza</translation>
 <translation id="230115972905494466">Haikupata vifaa vyovyote vinavyooana</translation>
 <translation id="2318045970523081853">Gusa ili upige simu</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /> kuhusu maudhui yaliyopendekezwa</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Kipengele cha Ulinzi wa Kawaida kimewashwa</translation>
+<translation id="3509330069915219067">Nje ya mtandao. Chrome imeshindwa kukagua kama kuna masasisho.</translation>
 <translation id="3513704683820682405">Uhalisia Ulioboreshwa</translation>
 <translation id="3518985090088779359">Kubali na uendelee</translation>
 <translation id="3522247891732774234">Kuna toleo jipya. Chaguo zaidi</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Lazimisha kuwasha ukuzaji</translation>
 <translation id="3909763690984331376">Angalizo la usalama <ph name="BEGIN_NEW" />Mpya<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Inatafuta maudhui bora zaidi kwenye wavuti…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> imewashwa</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Unganisha data yangu</translation>
 <translation id="393697183122708255">Hakuna kutafuta kwa kutamka kulikowashwa</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome itapakia ukurasa wako ukiwa tayari}other{Chrome itapakia kurasa zako zikiwa tayari}}</translation>
 <translation id="3963007978381181125">Usimbaji fiche kwa kutumia kauli ya siri haujumuishi njia za kulipa na anwani kutoka Google Pay. Mtu aliye na kauli yako ya siri pekee ndiye anayeweza kusoma data yako iliyosimbwa kwa njia fiche. Kauli ya siri haitumwi kwa au kuhifadhiwa na Google. Ukisahau kauli yako ya siri au utake kubadilisha mipangilio hii, utahitaji kufanya usawazishaji upya. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Faili imekamilika kupakuliwa</translation>
+<translation id="3969142555815019568">Chrome imeshindwa kukagua manenosiri yako</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> itafunguka kwenye Chrome. Kwa kuendelea, unakubali <ph name="BEGIN_LINK1" />Sheria na Masharti ya Google<ph name="END_LINK1" /> na <ph name="BEGIN_LINK2" />Sheria na Masharti ya Ziada ya Google Chrome na Mfumo wa Uendeshaji wa Chrome<ph name="END_LINK2" />. <ph name="BEGIN_LINK3" />Ilani ya Faragha ya Akaunti za Google Zinazodhibitiwa na Family Link<ph name="END_LINK3" /> inatumika pia.</translation>
 <translation id="397583555483684758">Usawazishaji umeacha kufanya kazi</translation>
 <translation id="3976396876660209797">Ondoa na uunde upya njia hii ya mkato</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Fungua <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Tumia nenosiri</translation>
 <translation id="4650364565596261010">Mipangilio chaguomsingi ya mfumo</translation>
+<translation id="465657074423018424">Kipengele cha Kuvinjari Salama hukulinda dhidi ya tovuti zinazopotosha. Ukikizima, kuwa makini zaidi unapovinjari hasa kabla ya kuweka manenosiri.</translation>
 <translation id="4662373422909645029">Jina la kuwakilisha halipaswi kuwa na nambari</translation>
 <translation id="4663756553811254707">Alamisho <ph name="NUMBER_OF_BOOKMARKS" /> zimefutwa</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> iliongezwa kwenye Skrini yako ya kwanza</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Fungua chaguo za kuchapisha ukurasa</translation>
 <translation id="4842092870884894799">Inaonyesha dirisha ibukizi la uundaji wa nenosiri</translation>
 <translation id="4860895144060829044">Piga simu</translation>
+<translation id="4864369630010738180">Unaingia katika akaunti...</translation>
 <translation id="4866368707455379617">Imeshindwa kusakinisha <ph name="MODULE" /> kwenye Chrome</translation>
 <translation id="4875775213178255010">Mapendekezo ya Maudhui</translation>
 <translation id="4878404682131129617">Imeshindwa kuanzisha mkondo kupitia seva mbadala</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Dhibiti akaunti</translation>
 <translation id="7077143737582773186">Kadi ya SD</translation>
 <translation id="7080806333218412752">Hutuma URL kwenye kipengele cha Kuvinjari Salama ili zikaguliwe. Hutuma pia sampuli ndogo ya kurasa, vipakuliwa, shughuli za viendelezi na maelezo ya mfumo ili kusaidia kugundua matukio mapya hatari. Huunganisha data hii kwenye Akaunti yako ya Google kwa muda mfupi ukiwa umeingia katika akaunti, ili kukulinda kwenye programu zote za Google.</translation>
+<translation id="7088681679121566888">Chrome imesasishwa</translation>
 <translation id="7121362699166175603">Hufuta historia na ukamilishaji kiotomatiki kwenye sehemu ya anwani. Huenda Akaunti yako ya Google ikawa na aina nyingine za historia ya kuvinjari kwenye <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Angalia tovuti zako kuu na taarifa za hivi punde unapogusa kitufe cha Ukurasa wa Mwanzo</translation>
 <translation id="7138678301420049075">Nyingine</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Ili uanze kusawazisha, washa mipangilio ya "Sawazisha data yako kwenye Chrome".</translation>
 <translation id="729975465115245577">Kifaa chako hakina programu ya kuhifadhi faili ya manenosiri.</translation>
 <translation id="7302081693174882195">Maelezo: Imepangwa kulingana na kiasi cha data kilichookolewa</translation>
+<translation id="7304873321153398381">Nje ya mtandao. Chrome imeshindwa kukagua manenosiri yako.</translation>
 <translation id="7328017930301109123">Katika Hali nyepesi, Chrome hupakia kurasa haraka zaidi na huokoa data kwa hadi asilimia 60.</translation>
 <translation id="7333031090786104871">Bado inaongeza tovuti ya awali</translation>
 <translation id="7340958967809483333">Chaguo za Dokezo</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Ndiyo, ninakubali</translation>
 <translation id="7413229368719586778">Tarehe ya kuanza <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Dhibiti namna historia yako ya kuvinjari inavyotumika kuweka mapendeleo kwenye huduma ya Tafuta na Google na zaidi</translation>
+<translation id="7435356471928173109">Kimezimwa na msimamizi wako</translation>
 <translation id="7437998757836447326">Ondoka kwenye Chrome</translation>
 <translation id="7438641746574390233">Wakati umewasha Hali nyepesi, Chrome hutumia seva za Google kupakia kurasa haraka. Hali nyepesi hubadilisha kurasa zinazopakia polepole ili zipakie maudhui muhimu pekee. Hali nyepesi haitumiki kwenye vichupo katika hali Fiche.</translation>
 <translation id="7444811645081526538">Aina zingine</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Kaulisiri</translation>
 <translation id="9063523880881406963">Zima Omba Tovuti ya Eneo-kazi</translation>
 <translation id="9065203028668620118">Badilisha</translation>
+<translation id="9069543557624799859">Itaanza kupakua <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Anza kutafuta kwa kutamka</translation>
 <translation id="9074336505530349563">Ingia katika akaunti na uwashe kipengee cha usawazishaji ili upate maudhui yanayokufaa unayopendekezewa na Google</translation>
 <translation id="9086302186042011942">Inasawazisha</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 f8e34c8..60399e5 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">பக்கத்தை அச்சிடுவதற்கான விருப்பங்களைத் திறக்கும்</translation>
 <translation id="4842092870884894799">கடவுச்சொல் உருவாக்க பாப்-அப்பைக் காட்டுகிறது</translation>
 <translation id="4860895144060829044">அழை</translation>
+<translation id="4864369630010738180">உள்நுழைகிறீர்கள்...</translation>
 <translation id="4866368707455379617">Chromeமுக்கான <ph name="MODULE" />ஐ நிறுவ முடியவில்லை</translation>
 <translation id="4875775213178255010">உள்ளடக்கப் பரிந்துரைகள்</translation>
 <translation id="4878404682131129617">ப்ராக்ஸி சர்வர் மூலமாக டனல் இணைப்பை உருவாக்க முடியவில்லை</translation>
@@ -720,7 +721,7 @@
 <translation id="6573431926118603307">உங்கள் பிற சாதனங்களில் பயன்படுத்திய Chrome இல் திறந்த தாவல்கள் இங்கே தோன்றும்.</translation>
 <translation id="6583199322650523874">தற்போதைய பக்கத்தைப் புத்தகக்குறியிடும்</translation>
 <translation id="6588043302623806746">பாதுகாப்பான DNSஸைப் பயன்படுத்து</translation>
-<translation id="6590471736817333463">60% வரை டேட்டாவைச் சேமிக்கலாம்</translation>
+<translation id="6590471736817333463">60% வரை டேட்டாவைச் சேமியுங்கள்</translation>
 <translation id="6593061639179217415">டெஸ்க்டாப் தளம்</translation>
 <translation id="6597891566292541626">இந்த ஃப்ரேமில் QR/பார்கோடு தெரியுமாறு வைக்கவும்.</translation>
 <translation id="6600954340915313787">Chromeக்கு நகலெடுக்கப்பட்டது</translation>
@@ -1055,7 +1056,7 @@
 <translation id="9209888181064652401">அழைப்புகளைச் செய்ய இயலவில்லை</translation>
 <translation id="9219103736887031265">படங்கள்</translation>
 <translation id="926205370408745186">Chrome செயல்பாட்டை டிஜிட்டல் வெல்பீயிங்கிலிருந்து நீக்குதல்</translation>
-<translation id="927968626442779827">Google Chromeமில் லைட் பயன்முறையை பயன்படுத்துங்கள்</translation>
+<translation id="927968626442779827">Google Chrome உலாவியில் லைட் பயன்முறையைப் பயன்படுத்தலாம்</translation>
 <translation id="932327136139879170">முகப்பு</translation>
 <translation id="93753284658583800">முகப்புப்பக்கம் மாற்றப்பட்டது</translation>
 <translation id="938850635132480979">பிழை: <ph name="ERROR_CODE" /></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 596e1a8..b75bec3 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">పేజీని ముద్రించడానికి ఎంపికలను తెరవండి</translation>
 <translation id="4842092870884894799">పాస్‌వర్డ్ ఉత్పత్తి పాప్ అప్ చూపబడుతోంది</translation>
 <translation id="4860895144060829044">కాల్ చేయండి</translation>
+<translation id="4864369630010738180">సైన్ ఇన్ అవుతోంది...</translation>
 <translation id="4866368707455379617">Chromeలో <ph name="MODULE" />ని ఇన్‌స్టాల్ చేయడం సాధ్యపడలేదు</translation>
 <translation id="4875775213178255010">కంటెంట్ సూచనలు</translation>
 <translation id="4878404682131129617">ప్రాక్సీ సర్వర్ ద్వారా ఒక సొరంగంను ఏర్పాటు చేయడం విఫలమైంది</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 9a9e0d3..703fcf1 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">เปิดตัวเลือกในการพิมพ์หน้า</translation>
 <translation id="4842092870884894799">กำลังแสดงป๊อปอัปการสร้างรหัสผ่าน</translation>
 <translation id="4860895144060829044">โทร</translation>
+<translation id="4864369630010738180">กำลังลงชื่อเข้าใช้...</translation>
 <translation id="4866368707455379617">ติดตั้ง <ph name="MODULE" /> สำหรับ Chrome ไม่ได้</translation>
 <translation id="4875775213178255010">การแนะนำเนื้อหา</translation>
 <translation id="4878404682131129617">สร้างช่องทางผ่านพร็อกซีเซิร์ฟเวอร์ไม่ได้</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 489b44e..4c39c45 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Sayfayı yazdırma seçeneklerini açar</translation>
 <translation id="4842092870884894799">Şifre oluşturma pop-up'ı gösteriliyor</translation>
 <translation id="4860895144060829044">Telefon et</translation>
+<translation id="4864369630010738180">Oturum açılıyor...</translation>
 <translation id="4866368707455379617">Chrome için <ph name="MODULE" /> yüklenemiyor</translation>
 <translation id="4875775213178255010">İçerik Önerileri</translation>
 <translation id="4878404682131129617">Proxy sunucu üzerinden tünel oluşturulamadı</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 848e6032..6395774 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Копіювати URL-адресу</translation>
 <translation id="2156074688469523661">Інші сайти (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Щоб файли з вашого телефона були доступними на іншому вашому пристрої, увімкніть синхронізацію в налаштуваннях Chrome на обох пристроях</translation>
+<translation id="2158408438301413340">Chrome не вдалося перевірити всі паролі</translation>
 <translation id="2169830938017475061">Щойно</translation>
 <translation id="2175927920773552910">QR-код</translation>
 <translation id="218608176142494674">Спільний доступ</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Контролюйте новини за допомогою кнопки "Налаштування рекомендацій"</translation>
 <translation id="2259659629660284697">Експортувати паролі…</translation>
 <translation id="2268044343513325586">Уточнити</translation>
+<translation id="2276696007612801991">Щоб перевірити паролі, увійдіть в обліковий запис Google</translation>
 <translation id="2286841657746966508">Розрахункова адреса</translation>
 <translation id="230115972905494466">Сумісних пристроїв не знайдено</translation>
 <translation id="2318045970523081853">Натисніть, щоб зателефонувати</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /> про рекомендований контент</translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Стандартний захист увімкнено</translation>
+<translation id="3509330069915219067">Офлайн. Chrome не може перевірити наявність оновлень.</translation>
 <translation id="3513704683820682405">Доповнена реальність</translation>
 <translation id="3518985090088779359">Продовжити</translation>
 <translation id="3522247891732774234">Доступне оновлення. Більше опцій</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Примусово ввімкнути масштабування</translation>
 <translation id="3909763690984331376">Перевірка безпеки <ph name="BEGIN_NEW" />Новинка<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Шукаємо найкраще в Інтернеті…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> увімкнено</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Об’єднати мої дані</translation>
 <translation id="393697183122708255">Голосовий пошук вимкнено</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Коли все буде готово, Chrome завантажить сторінку}one{Коли все буде готово, Chrome завантажить сторінки}few{Коли все буде готово, Chrome завантажить сторінки}many{Коли все буде готово, Chrome завантажить сторінки}other{Коли все буде готово, Chrome завантажить сторінки}}</translation>
 <translation id="3963007978381181125">Парольна фраза не стосується способів оплати й адрес із Google Pay. Ваші зашифровані дані можуть переглядати лише користувачі, які знають вашу парольну фразу. Вона не надсилається й не зберігається в Google. Якщо ви забули її або хочете змінити це налаштування, скиньте параметри синхронізації. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Завантажено</translation>
+<translation id="3969142555815019568">Chrome не може перевірити паролі</translation>
 <translation id="3974987681202239636">Додаток <ph name="APP_NAME" /> відкриється в Chrome. Продовжуючи, ви погоджуєтесь із <ph name="BEGIN_LINK1" />Загальними положеннями та умовами Google<ph name="END_LINK1" /> і <ph name="BEGIN_LINK2" />Додатковими умовами використання Google Chrome і ОС Chrome<ph name="END_LINK2" />. Також застосовується <ph name="BEGIN_LINK3" />Примітка про конфіденційність для облікових записів Google, керованих у Family Link<ph name="END_LINK3" />.</translation>
 <translation id="397583555483684758">Синхронізація перестала працювати</translation>
 <translation id="3976396876660209797">Вилучити й знову створити цей ярлик</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Відкрити файл <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Прийняти пароль</translation>
 <translation id="4650364565596261010">За умовчанням у системі</translation>
+<translation id="465657074423018424">Безпечний перегляд захищає вас від оманливих веб-сайтів. Якщо ви вимкнете цю функцію, будьте обережні під час перегляду веб-сторінок, особливо, коли вводите паролі.</translation>
 <translation id="4662373422909645029">Не можна додавати цифри</translation>
 <translation id="4663756553811254707">Видалено закладок: <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822">Веб-сайт <ph name="NAME" /> додано на головний екран</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Відкрити налаштування друку сторінки</translation>
 <translation id="4842092870884894799">Показ спливаючих вікон для створення пароля</translation>
 <translation id="4860895144060829044">Зателефонувати</translation>
+<translation id="4864369630010738180">Вхід…</translation>
 <translation id="4866368707455379617">Не вдалося встановити модуль <ph name="MODULE" /> для Chrome</translation>
 <translation id="4875775213178255010">Пропозиції вмісту</translation>
 <translation id="4878404682131129617">Не вдалося налагодити зв’язок через проксі-сервер</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Керувати обліковим записом</translation>
 <translation id="7077143737582773186">Карта SD</translation>
 <translation id="7080806333218412752">Надсилає URL-адреси в Безпечний перегляд на перевірку. Також надсилає невеликі зразки сторінок, завантаження, дані про дії розширень та інформацію про систему, щоб виявляти нові загрози. Тимчасово зв'язує ці дані з обліковим записом Google, у який ви ввійшли, щоб захищати вас у всіх додатках Google.</translation>
+<translation id="7088681679121566888">Chrome оновлено</translation>
 <translation id="7121362699166175603">Видалення історії й варіантів автозавершень в адресному рядку. Історія веб-перегляду може також зберігатися у вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Переглядайте улюблені сайти й нещодавні історії щоразу, коли натискаєте кнопку головного екрана</translation>
 <translation id="7138678301420049075">Інше</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Щоб почати синхронізацію, увімкніть параметр "Синхронізувати дані Chrome".</translation>
 <translation id="729975465115245577">На пристрої немає додатка для зберігання файлу з паролями.</translation>
 <translation id="7302081693174882195">Деталі: відсортовано за кількістю заощадженого трафіку</translation>
+<translation id="7304873321153398381">Офлайн. Chrome не може перевірити паролі.</translation>
 <translation id="7328017930301109123">У спрощеному режимі Chrome завантажує сторінки швидше та використовує на 60 відсотків менше трафіку.</translation>
 <translation id="7333031090786104871">Попередній сайт ще додається</translation>
 <translation id="7340958967809483333">Налаштування рекомендацій</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Увімкнути</translation>
 <translation id="7413229368719586778">Дата початку: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Указуйте, як використовувати історію веб-перегляду для персоналізації Пошуку тощо</translation>
+<translation id="7435356471928173109">Вимкнено адміністратором</translation>
 <translation id="7437998757836447326">Вихід із Chrome</translation>
 <translation id="7438641746574390233">Коли ввімкнено спрощений режим, Chrome використовує сервери Google, щоб швидше завантажувати сторінки. Спрощений режим переписує дуже повільні сторінки, щоб завантажувати лише основний вміст. Це не стосується анонімних вкладок.</translation>
 <translation id="7444811645081526538">Інші категорії</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Парольна фраза</translation>
 <translation id="9063523880881406963">Вимкнути функцію "Запитувати версію сайту для комп’ютера"</translation>
 <translation id="9065203028668620118">Редагувати</translation>
+<translation id="9069543557624799859">Завантаження почнеться <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Почати голосовий пошук</translation>
 <translation id="9074336505530349563">Щоб отримувати персоналізовані пропозиції від Google, увійдіть в обліковий запис і ввімкніть синхронізацію</translation>
 <translation id="9086302186042011942">Синхронізація</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 252054a..14c92e7 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">صفحہ پرنٹ کرنے کیلئے اختیارات کھولیں</translation>
 <translation id="4842092870884894799">پاس ورڈ بنانے کے پاپ اپ کو دکھا رہا ہے</translation>
 <translation id="4860895144060829044">کال کریں</translation>
+<translation id="4864369630010738180">سائن ان کر رہا ہے…</translation>
 <translation id="4866368707455379617">‏Chrome کیلئے <ph name="MODULE" /> انسٹال کرنے سے قاصر</translation>
 <translation id="4875775213178255010">مواد کی تجاویز</translation>
 <translation id="4878404682131129617">پراکسی سرور کے ذریعہ سرنگ بنانا ناکام ہو گیا</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 b15d871d..c404051 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
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">URL manzilni nusxalash</translation>
 <translation id="2156074688469523661">Qolgan saytlar (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Telefoningizdan biror narsani boshqa qurilmaga ulashish uchun har ikki qurilmadagi Chrome brauzerida sinxronizatsiyani yoqing</translation>
+<translation id="2158408438301413340">Chrome barcha parollarni tekshira olmadi.</translation>
 <translation id="2169830938017475061">Hozir</translation>
 <translation id="2175927920773552910">QR kod</translation>
 <translation id="218608176142494674">Ulashish</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Parametrlar orqali Discover yangiliklarini boshqarish tugmasi</translation>
 <translation id="2259659629660284697">Parollarni eksport qilish…</translation>
 <translation id="2268044343513325586">Aniqlashtirish</translation>
+<translation id="2276696007612801991">Parollaringizni tekshirish uchun Google hisobingizga kiring</translation>
 <translation id="2286841657746966508">To‘lov manzili</translation>
 <translation id="230115972905494466">Mos qurilmalar topilmadi</translation>
 <translation id="2318045970523081853">Chaqirish uchun bosing</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708">Bildirgi takliflar haqida <ph name="BEGIN_LINK" />batafsil ma’lumot<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Standart himoya yoniq</translation>
+<translation id="3509330069915219067">Oflayn. Chrome yangilanishlar chiqqanini tekshira olmadi.</translation>
 <translation id="3513704683820682405">Boyitilgan reallik</translation>
 <translation id="3518985090088779359">Davom etish</translation>
 <translation id="3522247891732774234">Yangilanish mavjud. Qo‘shimcha parametrlarni ko‘rish</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Hajmni majburiy o‘zgartirish funksiyasini yoqish</translation>
 <translation id="3909763690984331376"><ph name="BEGIN_NEW" />Yangi<ph name="END_NEW" /> xavfsizlik tekshiruvi</translation>
 <translation id="3912508018559818924">Internetdan maʼlumotlar yuklanmoqda…</translation>
+<translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> yoniq</translation>
 <translation id="3927692899758076493">Sans Serif</translation>
 <translation id="3928666092801078803">Ma’lumotlarni birlashtirish</translation>
 <translation id="393697183122708255">Ovozli qidiruv fuksiyasi yoqilmagan</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome sahifani tayyor boʻlishi bilan ochadi}other{Chrome sahifalarni tayyor boʻlishi bilan ochadi}}</translation>
 <translation id="3963007978381181125">Kodli ibora yordamida shifrlaganda Google Pay manzillari va toʻlov usullari shifrlanmaydi. Shifrlangan maʼlumotlaringizni faqat kodli iborani biladiganlar koʻra oladi. Bu iborani Google bilmaydi va serverlarida saqlamaydi. Agar kodli iborani unutsangiz, sinxronizatsiya sozlamalarini qayta tiklash kerak bo‘ladi. <ph name="BEGIN_LINK" />Batafsil<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Yuklab olindi</translation>
+<translation id="3969142555815019568">Chrome parollaringizni tekshira olmadi</translation>
 <translation id="3974987681202239636"><ph name="APP_NAME" /> ilovasi Chrome ichida ochiladi. Davom etish bilan siz <ph name="BEGIN_LINK1" />Google xizmat shartlari<ph name="END_LINK1" /> bilan <ph name="BEGIN_LINK2" />Google Chrome va Chrome OS qoʻshimcha xizmat shartlariga<ph name="END_LINK2" /> rozilik bildirgan hisoblanasiz. <ph name="BEGIN_LINK3" />Family Link bilan boshqariladigan Google hisoblari uchun Maxfiylik eslatmasi<ph name="END_LINK3" /> ham tatbiq qilinadi.</translation>
 <translation id="397583555483684758">Sinxronizatsiya to‘xtadi</translation>
 <translation id="3976396876660209797">Yorliqni o‘chirib qaytadan yarating</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> veb-ilovasini ochish</translation>
 <translation id="4634124774493850572">Paroldan foydalanish</translation>
 <translation id="4650364565596261010">Tizim standarti</translation>
+<translation id="465657074423018424">Saytlarni xavfsiz kezish sizni firibgar saytlardan himoya qiladi. Agar bu funksiyani faolsizlantirsangiz, notanish va shubhali saytlarga parol kiritishda ehtiyot boʻling.</translation>
 <translation id="4662373422909645029">Taxallusga raqam kiritish mumkin emas</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ta xatcho‘p o‘chirib tashlandi</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> sayti bosh ekranga qo‘shildi</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Sahifani chop etish uchun sozlamalarni ochish</translation>
 <translation id="4842092870884894799">Qalqib chiquvchi parol yaratish oynasi ochildi</translation>
 <translation id="4860895144060829044">Chaqiruv</translation>
+<translation id="4864369630010738180">Kirilmoqda…</translation>
 <translation id="4866368707455379617">Chrome uchun <ph name="MODULE" /> oʻrnatilmadi</translation>
 <translation id="4875775213178255010">Kontent takliflari</translation>
 <translation id="4878404682131129617">Proksi-server orqali tunel yaratib bo‘lmadi</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Hisobni boshqarish</translation>
 <translation id="7077143737582773186">SD karta</translation>
 <translation id="7080806333218412752">URL manzillarni Saytlarni xavfsiz kezish tizimi tekshiruviga yuboradi. Sahifa, yuklanma, kengaytma harakati va tizim axboroti parchalarini ham yangi tahdidlarni aniqlashga yordam berishi uchun yuboradi. Hisobingizga kirganingizda Google ilovalaridan foydalanishingizni himoyalash maqsadida bu axborotni vaqtincha Google hisobingizga ulaydi.</translation>
+<translation id="7088681679121566888">Chrome eng oxirgi versiyada</translation>
 <translation id="7121362699166175603">Manzil qatoridagi tarix va avto‘ldirishlarni tozalaydi. Google hisobingiz orqali bajargan internetdagi faoliyatingizni <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> orqali ko‘rishingiz mumkin.</translation>
 <translation id="7128355412245153445">Eng sara saytlar va yangi maqolalarni koʻrish uchun bosh sahifa tugmasini bosishingiz kifoya.</translation>
 <translation id="7138678301420049075">Boshqa</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Sinxronlashni boshlash uchun “Chrome axborotini sinxronlash” tugmasini bosing.</translation>
 <translation id="729975465115245577">Qurilmangizda parollarni saqlovchi ilova yo‘q.</translation>
 <translation id="7302081693174882195">Tafsilot: Tejalgan trafik asosida saralandi</translation>
+<translation id="7304873321153398381">Oflayn. Chrome parollaringizni tekshira olmadi.</translation>
 <translation id="7328017930301109123">Lite rejimida Chrome sahifalarni tezroq yuklaydi va 60 foizgacha trafik tejaydi.</translation>
 <translation id="7333031090786104871">Avvalgi sayt qo‘shilmoqda</translation>
 <translation id="7340958967809483333">Discover parametrlari</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Ha, roziman</translation>
 <translation id="7413229368719586778">Boshlanish sanasi: <ph name="DATE" /></translation>
 <translation id="7431991332293347422">Moslashtirilgan qidiruv, reklama va boshqa tashriflar tarixi parametrlarini tanlang</translation>
+<translation id="7435356471928173109">Administrator tomonidan faolsizlantirilgan</translation>
 <translation id="7437998757836447326">Chrome’dan chiqish</translation>
 <translation id="7438641746574390233">Lite rejimi yoniqligida, Chrome sahifalarni tezroq yuklash uchun Google serverlaridan foydalanadi. Lite rejimi eng asosiy kontentni yuklash uchun eng sekin sahifalarni qaytadan yozib chiqadi. Lite rejimi inkognito sahifalarda ishlamaydi.</translation>
 <translation id="7444811645081526538">Boshqa turkumlar</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Kodli ibora</translation>
 <translation id="9063523880881406963">Saytning to‘liq versiyasi ko‘rinishini o‘chirib qo‘yish</translation>
 <translation id="9065203028668620118">O‘zgartirish</translation>
+<translation id="9069543557624799859">Yuklab olish boshlanadi: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Ovozli qidiruv</translation>
 <translation id="9074336505530349563">Bildirgilar Google tomonidan faqat sizning qiziqishlaringiz bo‘yicha taklif qilinishi uchun hisobingizga kiring va sinxronizatsiyani yoqing</translation>
 <translation id="9086302186042011942">Sinxronlanmoqda</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 15e2c8b4..505f4f2 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">Mở tùy chọn để in trang</translation>
 <translation id="4842092870884894799">Hiển thị cửa sổ bật lên tạo mật khẩu</translation>
 <translation id="4860895144060829044">Gọi</translation>
+<translation id="4864369630010738180">Đang đăng nhập...</translation>
 <translation id="4866368707455379617">Không thể cài đặt <ph name="MODULE" /> cho Chrome</translation>
 <translation id="4875775213178255010">Đề xuất nội dung</translation>
 <translation id="4878404682131129617">Thiết lập đường hầm qua máy chủ proxy không thành cô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 6c36814..f5ccd2b 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">打开选项以打印网页</translation>
 <translation id="4842092870884894799">目前显示的是密码生成弹出式窗口</translation>
 <translation id="4860895144060829044">拨打</translation>
+<translation id="4864369630010738180">正在登录…</translation>
 <translation id="4866368707455379617">无法为 Chrome 安装<ph name="MODULE" /></translation>
 <translation id="4875775213178255010">内容建议</translation>
 <translation id="4878404682131129617">未能成功通过代理服务器建立隧道</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 b19436c..57f0de6a 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">開啟列印網頁選項</translation>
 <translation id="4842092870884894799">正在顯示密碼產生彈出式視窗</translation>
 <translation id="4860895144060829044">撥號</translation>
+<translation id="4864369630010738180">正在登入…</translation>
 <translation id="4866368707455379617">無法為 Chrome 安裝 <ph name="MODULE" /></translation>
 <translation id="4875775213178255010">內容建議</translation>
 <translation id="4878404682131129617">透過 Proxy 伺服器建立通道失敗</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 184a9a0..b4b04a3 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
@@ -477,6 +477,7 @@
 <translation id="4837753911714442426">開啟列印網頁的選項</translation>
 <translation id="4842092870884894799">目前顯示的是密碼產生彈出式視窗</translation>
 <translation id="4860895144060829044">撥號</translation>
+<translation id="4864369630010738180">登入中...</translation>
 <translation id="4866368707455379617">無法為 Chrome 安裝 <ph name="MODULE" /></translation>
 <translation id="4875775213178255010">內容建議</translation>
 <translation id="4878404682131129617">無法透過 Proxy 伺服器建立通道</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 5d3b39b..91bbbf0 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
@@ -42,7 +42,7 @@
 <translation id="1283039547216852943">Thepha ukuze unwebe</translation>
 <translation id="1291207594882862231">Sula umlando, amakhukhi, idatha yesayithi, inqolobane…</translation>
 <translation id="129553762522093515">Ivalwe kamuva nje</translation>
-<translation id="1298077576058087471">Yonga idatha efika ku-60%, funda izindaba zanamuhla</translation>
+<translation id="1298077576058087471">Londoloza idatha efikela ku-60%, funda izindaba zanamuhla</translation>
 <translation id="1303339473099049190">Akuyitholi leyo phasiwedi. Hlola isipelingi sakho bese uzama futhi.</translation>
 <translation id="1303507811548703290"><ph name="DOMAIN" /> - Ithunyelwe kusukela ku-<ph name="DEVICE_NAME" /></translation>
 <translation id="1310482092992808703">Faka kuqembu amathebhu</translation>
@@ -152,6 +152,7 @@
 <translation id="2154710561487035718">Kopisa i-URL</translation>
 <translation id="2156074688469523661">Amasayithi asele (<ph name="NUMBER_OF_SITES" />)</translation>
 <translation id="2157851137955077194">Ukuze wabelane ngokuthile kusuka efonini yakho kuya kwenye idivayisi, vula ukuvumelanisa kuzilungiselelo ze-Chrome kuwo womabili amadivayisi</translation>
+<translation id="2158408438301413340">I-Chrome ayikwazanga ukuhlola wonke amaphasiwedi</translation>
 <translation id="2169830938017475061">Manje</translation>
 <translation id="2175927920773552910">Ikhodi ye-QR</translation>
 <translation id="218608176142494674">Ukwabelana</translation>
@@ -160,6 +161,7 @@
 <translation id="2239812875700136898">Lawula izindaba zakho kusukela Kuzinketho zenkinobho ye-Discover</translation>
 <translation id="2259659629660284697">Thumela amaphasiwedi...</translation>
 <translation id="2268044343513325586">Yenza ngcono</translation>
+<translation id="2276696007612801991">Ngena ngemvume ku-akhawunti yakho ye-Google uhlole amaphasiwedi akho</translation>
 <translation id="2286841657746966508">Ikheli lokukhokha</translation>
 <translation id="230115972905494466">Awekho amadivayisi asebenzisanayo atholakele</translation>
 <translation id="2318045970523081853">Thepha ukuze wenze ikholi</translation>
@@ -316,6 +318,7 @@
 <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /> mayelana nokuqukethwe okuphakamisiwe</translation>
 <translation id="3499246418971111862">i-chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="3507132249039706973">Ukuvikelwa okujwayelekile kuvuliwe</translation>
+<translation id="3509330069915219067">Okungaxhunyiwe ku-inthanethi. I-Chrome ayikwazi ukuhlola izibuyekezo.</translation>
 <translation id="3513704683820682405">I-Augmented Reality</translation>
 <translation id="3518985090088779359">Yamukela uphinde uqhubeke</translation>
 <translation id="3522247891732774234">Isibuyekezo siyatholakala. Izinketho eziningi</translation>
@@ -365,6 +368,7 @@
 <translation id="3895926599014793903">Phoqa ukunika amandla ukusondeza</translation>
 <translation id="3909763690984331376">Ukuhlola kokuphepha <ph name="BEGIN_NEW" />Okusha<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Ithola okuhamba phambili kusukela kuwebhu…</translation>
+<translation id="3924911262913579434">I-<ph name="SAFE_BROWSING_MODE" /> ivuliwe</translation>
 <translation id="3927692899758076493">I-Sans Serif</translation>
 <translation id="3928666092801078803">Hlanganisa idatha yami</translation>
 <translation id="393697183122708255">Akukho ukusesha ngezwi okunikwe amandla okutholakalayo</translation>
@@ -372,6 +376,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{I-Chrome izolayisha ikhasi lakho uma isilungele}one{I-Chrome izolayisha amakhasi akho uma isilungile}other{I-Chrome izolayisha amakhasi akho uma isilungile}}</translation>
 <translation id="3963007978381181125">Othile kuphela onomushwana wakho wokungena ongafunda idatha yakho ebetheliwe. Umushwana wokungena awuthunyelwa noma ugcinwe yi-Google. Uma ukhohlwa umushwana wakho wokungena noma ufuna ukushintsha lesi silungiselelo, kuzomele usethe kabusha ukuvumelanisa. <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">Ukulanda kuqedile</translation>
+<translation id="3969142555815019568">I-Chrome ayikwazi ukuhlola amaphasiwedi akho</translation>
 <translation id="3974987681202239636">I-<ph name="APP_NAME" /> izovuleka ku-Chrome. Ngokuqhubeka, uvumelana <ph name="BEGIN_LINK1" />Nemigomo Yesevisi ye-Google<ph name="END_LINK1" />, kanye <ph name="BEGIN_LINK2" />ne-Google Chrome Nemigomo Yesevisi ye-Chrome OS Engeziwe<ph name="END_LINK2" />. <ph name="BEGIN_LINK3" />Isaziso Esemfihlo yama-Akhawunti e-Google Aphethwe nge-Family Link<ph name="END_LINK3" /> naso sizosebenza.</translation>
 <translation id="397583555483684758">Ukuvumelanisa kuyeke ukusebenza</translation>
 <translation id="3976396876660209797">Susa futhi udale kabusha lesi sinqamuleli</translation>
@@ -447,6 +452,7 @@
 <translation id="4616150815774728855">Vula i-<ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Sebenzisa iphasiwedi</translation>
 <translation id="4650364565596261010">Okuzenzakalelayo kwesistimu</translation>
+<translation id="465657074423018424">Ukuphequlula okuphephile kuyakuvikela kumawebhusayithi akhohlisayo. Uma uyivula, cikelela ngokwengeziwe uma uphequlula, ikakhulukazi ngaphambi kokufaka amaphasiwedi.</translation>
 <translation id="4662373422909645029">Isiteketiso asikwazi ukuba nezinombolo</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> amabhukhimakhi asusiwe</translation>
 <translation id="4665282149850138822">I-<ph name="NAME" /> iye yangezwa kusikrini sakho sasekhaya</translation>
@@ -477,6 +483,7 @@
 <translation id="4837753911714442426">Vula izinketho ukuze uphrinte ikhasi</translation>
 <translation id="4842092870884894799">Kuboniswa okuzivelelayo okukhiqiza iphasiwedi</translation>
 <translation id="4860895144060829044">Shaya</translation>
+<translation id="4864369630010738180">Iyangena ngemvume...</translation>
 <translation id="4866368707455379617">Ayikwazi ukufaka i-<ph name="MODULE" /> ye-Chrome</translation>
 <translation id="4875775213178255010">Iziphakamiso zokuqukethwe</translation>
 <translation id="4878404682131129617">Ukusungula ithaneli ngeseva elibamba kuhlulekile</translation>
@@ -720,7 +727,7 @@
 <translation id="6573431926118603307">Amathebhu owavule ku-Chrome kwamanye amadivayisi akho azovela lapha.</translation>
 <translation id="6583199322650523874">Yenza ibhukhimakhi ikhasi lamanje</translation>
 <translation id="6588043302623806746">Sebenzisa i-DNS evikelekile</translation>
-<translation id="6590471736817333463">Yonga idatha efika ku-60%</translation>
+<translation id="6590471736817333463">Londoloza idatha efikela ku-60%</translation>
 <translation id="6593061639179217415">Isayithi ledeskithophu</translation>
 <translation id="6597891566292541626">Misa i-QR/ibhakhodi kulo zimele.</translation>
 <translation id="6600954340915313787">Ikopishelwe ku-Chrome</translation>
@@ -783,6 +790,7 @@
 <translation id="7071521146534760487">Phatha i-akhawunti</translation>
 <translation id="7077143737582773186">Ikhadi le-SD</translation>
 <translation id="7080806333218412752">Ithumela ama-URL Ekuphequluleni Okuphephile ukuze iwahlole. Iphinde ithumele namasampula wamakhasi ambalwa, okulandwayo, imisebenzi yezandiso, nokwaziswa kwesistimu ukukusiza uthole izinsongo ezintsha. Ixhumanisa idatha yakho ne-Akhawunti ye-Google okwesikhashana uma ungene ngemvume, ukuze ikuvikele kuzinhlelo zakho zokusebenza ze-Google.</translation>
+<translation id="7088681679121566888">I-Chrome isesimweni sakamuva</translation>
 <translation id="7121362699166175603">Isula umlando nokuqedelelwa okuzenzakalelayo kubha yekheli. I-akhawunti yakho ye-Google ingaba namanye amafomu omlando okuphequlula ku-<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7128355412245153445">Bona amasayithi akho aphezulu nezindaba zakamuva noma nini lapho uthepha inkinobho Yasekhaya</translation>
 <translation id="7138678301420049075">Okunye</translation>
@@ -804,6 +812,7 @@
 <translation id="7293171162284876153">Ukuze uqale ukuvumelanisa, vula idatha yokuthi "Vumelanisa i-Chrome yakho".</translation>
 <translation id="729975465115245577">Idivayisi yakho ayinalo uhlelo lokusebenza lokulondoloza ifayela yephasiwedi.</translation>
 <translation id="7302081693174882195">Imininingwane: Ihlungwe ngenani ledatha elilondoloziwe</translation>
+<translation id="7304873321153398381">Okungaxhunyiwe ku-inthanethi. I-Chrome ayikwazi ukuhlola amaphasiwedi akho.</translation>
 <translation id="7328017930301109123">Kumodi elula, i-Chrome ilayisha amakhasi ngokushesha futhi isebenzisa kufikela kudatha encane ngokungu-60 wamaphesenti.</translation>
 <translation id="7333031090786104871">Isangeza isayithi langaphambilini</translation>
 <translation id="7340958967809483333">Izinketho zokuthola</translation>
@@ -817,6 +826,7 @@
 <translation id="741204030948306876">Yebo, ngingenile</translation>
 <translation id="7413229368719586778">Idethi yokuqala ngumhla ka-<ph name="DATE" /></translation>
 <translation id="7431991332293347422">Lawula ukuthi umlando wakho wokuphequlula usetshenziswa kanjani ukuze kwenziwe kube ngokwakho Usesho nokuningi</translation>
+<translation id="7435356471928173109">Ivalwe ngumlawuli wakho</translation>
 <translation id="7437998757836447326">Phuma ku-Chrome</translation>
 <translation id="7438641746574390233">Uma imodi elula ivuliwe, i-Chrome isebenzisa amaseva e-Google ukuze yenze amakhasi alayishe ngokushesha. Imodi elula ibhala kabusha amakhasi ahamba kancane kakhulu ukuze ilayishe kuphela okuqukethwe okubalulekile Imodi elula ayisebenzi kumathebhu e-Incognito</translation>
 <translation id="7444811645081526538">Izigaba eziningi</translation>
@@ -1032,6 +1042,7 @@
 <translation id="9050666287014529139">Umushwana wokungena</translation>
 <translation id="9063523880881406963">Vala ukucela isayithi yedeskithophu</translation>
 <translation id="9065203028668620118">Hlela</translation>
+<translation id="9069543557624799859">Ukulanda kuzoqala ngo-<ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Qala ukusesha ngezwi</translation>
 <translation id="9074336505530349563">Ukuze uthole okuqukethwe okwenziwe kwaba ngokwakho okuphakanyiswe i-Google, ngena ngemvume uphinde uvule ukuvumelanisa</translation>
 <translation id="9086302186042011942">Iyavumelanisa</translation>
diff --git a/chrome/browser/ui/app_list/arc/arc_app_icon.cc b/chrome/browser/ui/app_list/arc/arc_app_icon.cc
index 4f2b2ae..786befa 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_icon.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_icon.cc
@@ -330,20 +330,6 @@
   std::vector<base::FilePath> paths;
   std::vector<base::FilePath> default_app_paths;
   switch (icon_type_) {
-    case IconType::kUncompressed: {
-      // Deliberately fall through to IconType::kCompressed to add |path| to
-      // |paths|.
-      FALLTHROUGH;
-    }
-    case IconType::kCompressed: {
-      base::FilePath path = prefs->GetIconPath(mapped_app_id_, descriptor);
-      if (path.empty())
-        return;
-      paths.emplace_back(path);
-      default_app_paths.emplace_back(
-          prefs->MaybeGetIconPathForDefaultApp(mapped_app_id_, descriptor));
-      break;
-    }
     case IconType::kAdaptive: {
       base::FilePath foreground_path =
           prefs->GetForegroundIconPath(mapped_app_id_, descriptor);
@@ -360,6 +346,24 @@
       default_app_paths.emplace_back(
           prefs->MaybeGetBackgroundIconPathForDefaultApp(mapped_app_id_,
                                                          descriptor));
+      // Deliberately fall through to IconType::kCompressed to add |path| to
+      // |paths|. For the migration scenario, when the foreground icon file
+      // doesn't exist, load the original icon file to resolve the icon lag
+      // issue.
+      FALLTHROUGH;
+    }
+    case IconType::kUncompressed: {
+      // Deliberately fall through to IconType::kCompressed to add |path| to
+      // |paths|.
+      FALLTHROUGH;
+    }
+    case IconType::kCompressed: {
+      base::FilePath path = prefs->GetIconPath(mapped_app_id_, descriptor);
+      if (path.empty())
+        return;
+      paths.emplace_back(path);
+      default_app_paths.emplace_back(
+          prefs->MaybeGetIconPathForDefaultApp(mapped_app_id_, descriptor));
       break;
     }
   }
@@ -441,34 +445,21 @@
     ui::ScaleFactor scale_factor,
     const std::vector<base::FilePath>& paths,
     const std::vector<base::FilePath>& default_app_paths) {
-  DCHECK_EQ(2u, paths.size());
+  DCHECK_EQ(3u, paths.size());
 
   const base::FilePath& foreground_path = paths[0];
   const base::FilePath& background_path = paths[1];
   if (!base::PathExists(foreground_path)) {
-    DCHECK_EQ(2u, default_app_paths.size());
-    const base::FilePath& default_app_foreground_path = default_app_paths[0];
-    const base::FilePath& default_app_background_path = default_app_paths[1];
-    if (default_app_foreground_path.empty() ||
-        !base::PathExists(default_app_foreground_path)) {
-      return std::make_unique<ArcAppIcon::ReadResult>(
-          false /* error */, true /* request_to_install */, scale_factor,
-          false /* resize_allowed */,
-          std::vector<std::string>() /* unsafe_icon_data */);
-    }
-
-    if (default_app_background_path.empty() ||
-        !base::PathExists(default_app_background_path)) {
-      // For non-adaptive icon, there could be a |default_app_foreground_path|
-      // file only without a |default_app_background_path| file.
+    // For the migration scenario, when the foreground icon file doesn't
+    // exist, load the original icon file to resolve the icon lag issue.
+    if (!paths[2].empty() && base::PathExists(paths[2])) {
       return ArcAppIcon::ReadFile(true /* request_to_install */, scale_factor,
-                                  true /* resize_allowed */,
-                                  default_app_foreground_path);
+                                  false /* resize_allowed */, paths[2]);
     }
 
-    return ArcAppIcon::ReadFiles(
-        true /* request_to_install */, scale_factor, true /* resize_allowed */,
-        default_app_foreground_path, default_app_background_path);
+    // Check and read the default app icon path for the default app if the files
+    // exist.
+    return ReadDefaultAppAdaptiveIconFiles(scale_factor, default_app_paths);
   }
 
   if (!base::PathExists(background_path)) {
@@ -484,6 +475,48 @@
 }
 
 // static
+std::unique_ptr<ArcAppIcon::ReadResult>
+ArcAppIcon::ReadDefaultAppAdaptiveIconFiles(
+    ui::ScaleFactor scale_factor,
+    const std::vector<base::FilePath>& default_app_paths) {
+  // Check the default app icon path, and read the icon files for the default
+  // app if the files exist.
+  DCHECK_EQ(3u, default_app_paths.size());
+  const base::FilePath& default_app_foreground_path = default_app_paths[0];
+  const base::FilePath& default_app_background_path = default_app_paths[1];
+  if (default_app_foreground_path.empty() ||
+      !base::PathExists(default_app_foreground_path)) {
+    // For the migration scenario, when the foreground icon file doesn't
+    // exist, load the original icon file to resolve the icon lag issue for
+    // the default app.
+    if (default_app_paths.size() == 3u && !default_app_paths[2].empty() &&
+        base::PathExists(default_app_paths[2])) {
+      return ArcAppIcon::ReadFile(true /* request_to_install */, scale_factor,
+                                  true /* resize_allowed */,
+                                  default_app_paths[2]);
+    }
+
+    return std::make_unique<ArcAppIcon::ReadResult>(
+        false /* error */, true /* request_to_install */, scale_factor,
+        false /* resize_allowed */,
+        std::vector<std::string>() /* unsafe_icon_data */);
+  }
+
+  if (default_app_background_path.empty() ||
+      !base::PathExists(default_app_background_path)) {
+    // For non-adaptive icon, there could be a |default_app_foreground_path|
+    // file only without a |default_app_background_path| file.
+    return ArcAppIcon::ReadFile(true /* request_to_install */, scale_factor,
+                                true /* resize_allowed */,
+                                default_app_foreground_path);
+  }
+
+  return ArcAppIcon::ReadFiles(
+      true /* request_to_install */, scale_factor, true /* resize_allowed */,
+      default_app_foreground_path, default_app_background_path);
+}
+
+// static
 std::unique_ptr<ArcAppIcon::ReadResult> ArcAppIcon::ReadFile(
     bool request_to_install,
     ui::ScaleFactor scale_factor,
diff --git a/chrome/browser/ui/app_list/arc/arc_app_icon.h b/chrome/browser/ui/app_list/arc/arc_app_icon.h
index c5349f15..05c178d7 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_icon.h
+++ b/chrome/browser/ui/app_list/arc/arc_app_icon.h
@@ -150,10 +150,44 @@
       ui::ScaleFactor scale_factor,
       const base::FilePath& path,
       const base::FilePath& default_app_path);
+
+  // For the adaptive icon, currently, there are 3 images returned from the ARC
+  // side:
+  // (1) Icon_png_data, the adaptive icon generated by the ARC side, for
+  // backward compatibility.
+  // (2) Foreground_icon_png_data, the foreground image for
+  // the adaptive icon. Some icons are not adaptive icons, and don’t have the
+  // background images, then the foreground image is the app icon.
+  // (3) Background_icon_png_data, the background image for the adaptive icon.
+  // Some icons are not adaptive icons, and don’t have the background images.
+  //
+  // There are a few scenarios for the adaptive icon feature:
+  // A. For the adaptive icon, the foreground image and the background image are
+  // merged by the Chromium side, and applied with the mask, to generate the
+  // adaptive icon.
+  // B. For the non adaptive icon, the Chromium side adds a white background to
+  // the foreground image, then applies the mask to generate the adaptive icon.
+  // C. For the migration scenario (from the adaptive icon feature disable to
+  // enable), since neither foreground images and background images present on
+  // the system, the Chromium side sends requests to the ARC side to load the
+  // foreground and background images. However, it might take a few seconds to
+  // get the images files, so for users, it has a long lag for the ARC icon
+  // loading. To resolve the ARC icon lag issue, the old icon_png_data on the
+  // system is used to generate the icon, the same as the previous
+  // implementation, and at the same time, sending the request to the ARC side
+  // to request the new foreground and background images.
+  //
+  // TODO(crbug.com/1083331): Remove the migration handling code, which reads
+  // the old icon_png_data, when the adaptive icon feature is enabled in the
+  // stable release, and the adaptive icon flag is removed.
   static std::unique_ptr<ArcAppIcon::ReadResult> ReadAdaptiveIconFiles(
       ui::ScaleFactor scale_factor,
       const std::vector<base::FilePath>& paths,
       const std::vector<base::FilePath>& default_app_paths);
+  static std::unique_ptr<ArcAppIcon::ReadResult>
+  ReadDefaultAppAdaptiveIconFiles(
+      ui::ScaleFactor scale_factor,
+      const std::vector<base::FilePath>& default_app_paths);
   static std::unique_ptr<ArcAppIcon::ReadResult> ReadFile(
       bool request_to_install,
       ui::ScaleFactor scale_factor,
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 22102cbd..7ad6cd3 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_test.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_test.cc
@@ -169,6 +169,12 @@
   app.sticky = true;
   fake_default_apps_.push_back(app);
 
+  app.name = "TestApp3";
+  app.package_name = "test.app3";
+  app.activity = "test.app3.activity";
+  app.sticky = true;
+  fake_default_apps_.push_back(app);
+
   base::flat_map<arc::mojom::AppPermission, arc::mojom::PermissionStatePtr>
       permissions1;
   permissions1.emplace(arc::mojom::AppPermission::CAMERA,
diff --git a/chrome/browser/ui/app_list/arc/arc_app_unittest.cc b/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
index 40cf72d..37eddc6 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
@@ -2872,6 +2872,27 @@
   icon_loader.reset();
 }
 
+// Validates that default app icon can be loaded for the single icon file
+// generated when the adaptive icon feature is disabled.
+TEST_P(ArcAppLauncherForDefaultAppTest, AppIconMigration) {
+  ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get());
+  ASSERT_NE(nullptr, prefs);
+
+  ASSERT_EQ(3u, fake_default_apps().size());
+  const arc::mojom::AppInfo& app = fake_default_apps()[2];
+  const std::string app_id = ArcAppTest::GetAppId(app);
+
+  // Icon can be only fetched after app is registered in the system.
+  arc_test()->WaitForDefaultApps();
+
+  FakeAppIconLoaderDelegate icon_delegate;
+  std::unique_ptr<AppServiceAppIconLoader> icon_loader =
+      std::make_unique<AppServiceAppIconLoader>(profile(), 64, &icon_delegate);
+  icon_loader->FetchImage(app_id);
+  icon_delegate.WaitForIconUpdates(1);
+  icon_loader.reset();
+}
+
 TEST_P(ArcAppLauncherForDefaultAppTest, AppLauncherForDefaultApps) {
   ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get());
   ASSERT_NE(nullptr, prefs);
diff --git a/chrome/browser/ui/app_list/arc/arc_default_app_list.cc b/chrome/browser/ui/app_list/arc/arc_default_app_list.cc
index 9532aa98..1d24bc7 100644
--- a/chrome/browser/ui/app_list/arc/arc_default_app_list.cc
+++ b/chrome/browser/ui/app_list/arc/arc_default_app_list.cc
@@ -47,6 +47,8 @@
     FILE_PATH_LITERAL("arc_default_apps");
 const base::FilePath::CharType kArcTestBoardDirectory[] =
     FILE_PATH_LITERAL("arc_board_default_apps");
+const base::FilePath::CharType kArcTestNonAdaptiveDirectory[] =
+    FILE_PATH_LITERAL("arc_non_adaptive_default_apps");
 
 bool use_test_apps_directory = false;
 
@@ -229,6 +231,7 @@
     DCHECK(valid_path);
     sources.push_back(base_path.Append(kArcTestDirectory));
     sources.push_back(base_path.Append(kArcTestBoardDirectory));
+    sources.push_back(base_path.Append(kArcTestNonAdaptiveDirectory));
   }
 
   // Using base::Unretained(this) here is safe since we own barrier_closure_.
diff --git a/chrome/browser/ui/ash/in_session_auth_dialog_client.cc b/chrome/browser/ui/ash/in_session_auth_dialog_client.cc
index 8804c0b..ef99b31 100644
--- a/chrome/browser/ui/ash/in_session_auth_dialog_client.cc
+++ b/chrome/browser/ui/ash/in_session_auth_dialog_client.cc
@@ -7,14 +7,25 @@
 #include <utility>
 
 #include "ash/public/cpp/in_session_auth_dialog_controller.h"
-#include "base/callback.h"
+#include "base/bind.h"
+#include "base/logging.h"
+#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/chromeos/login/quick_unlock/quick_unlock_factory.h"
+#include "chrome/browser/chromeos/login/quick_unlock/quick_unlock_storage.h"
+#include "components/user_manager/user_manager.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+
+using chromeos::AuthStatusConsumer;
+using chromeos::ExtendedAuthenticator;
+using chromeos::Key;
+using chromeos::UserContext;
 
 namespace {
 InSessionAuthDialogClient* g_auth_dialog_client_instance = nullptr;
 }  // namespace
 
 InSessionAuthDialogClient::InSessionAuthDialogClient() {
-  // Register this object as the client interface implementation.
   ash::InSessionAuthDialogController::Get()->SetClient(this);
 
   DCHECK(!g_auth_dialog_client_instance);
@@ -42,6 +53,78 @@
     const std::string& password,
     bool authenticated_by_pin,
     base::OnceCallback<void(bool)> callback) {
-  // TODO(yichengli): Implement.
-  std::move(callback).Run(false);
+  // TODO(b/156258540): Pick/validate the correct user.
+  const user_manager::User* const user =
+      user_manager::UserManager::Get()->GetActiveUser();
+  DCHECK(user);
+  UserContext user_context(*user);
+  user_context.SetKey(
+      Key(chromeos::Key::KEY_TYPE_PASSWORD_PLAIN, std::string(), password));
+  user_context.SetIsUsingPin(authenticated_by_pin);
+  user_context.SetSyncPasswordData(password_manager::PasswordHashData(
+      user->GetAccountId().GetUserEmail(), base::UTF8ToUTF16(password),
+      false /*force_update*/));
+  if (user->GetAccountId().GetAccountType() == AccountType::ACTIVE_DIRECTORY &&
+      (user_context.GetUserType() !=
+       user_manager::UserType::USER_TYPE_ACTIVE_DIRECTORY)) {
+    LOG(FATAL) << "Incorrect Active Directory user type "
+               << user_context.GetUserType();
+  }
+
+  // Lazily allocate |extended_authenticator_| so that tests can inject a fake.
+  if (!extended_authenticator_)
+    extended_authenticator_ = ExtendedAuthenticator::Create(this);
+
+  DCHECK(!pending_auth_state_);
+  pending_auth_state_.emplace(std::move(callback));
+
+  // TODO(yichengli): If it can be PIN, use quick unlock to attempt PIN auth.
+
+  // TODO(yichengli): If user type is SUPERVISED, use supervised authenticator?
+
+  AuthenticateWithPassword(user_context);
 }
+
+void InSessionAuthDialogClient::AuthenticateWithPassword(
+    const UserContext& user_context) {
+  // TODO(crbug.com/1115120): Don't post to UI thread if it turns out to be
+  // unnecessary.
+  content::GetUIThreadTaskRunner({})->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          &ExtendedAuthenticator::AuthenticateToCheck,
+          extended_authenticator_.get(), user_context,
+          base::Bind(&InSessionAuthDialogClient::OnPasswordAuthSuccess,
+                     weak_factory_.GetWeakPtr(), user_context)));
+}
+
+void InSessionAuthDialogClient::OnPasswordAuthSuccess(
+    const UserContext& user_context) {
+  chromeos::quick_unlock::QuickUnlockStorage* quick_unlock_storage =
+      chromeos::quick_unlock::QuickUnlockFactory::GetForAccountId(
+          user_context.GetAccountId());
+  if (quick_unlock_storage)
+    quick_unlock_storage->MarkStrongAuth();
+}
+
+// AuthStatusConsumer:
+void InSessionAuthDialogClient::OnAuthFailure(
+    const chromeos::AuthFailure& error) {
+  if (pending_auth_state_) {
+    std::move(pending_auth_state_->callback).Run(false);
+    pending_auth_state_.reset();
+  }
+}
+
+void InSessionAuthDialogClient::OnAuthSuccess(const UserContext& user_context) {
+  if (pending_auth_state_) {
+    std::move(pending_auth_state_->callback).Run(true);
+    pending_auth_state_.reset();
+  }
+}
+
+InSessionAuthDialogClient::AuthState::AuthState(
+    base::OnceCallback<void(bool)> callback)
+    : callback(std::move(callback)) {}
+
+InSessionAuthDialogClient::AuthState::~AuthState() = default;
diff --git a/chrome/browser/ui/ash/in_session_auth_dialog_client.h b/chrome/browser/ui/ash/in_session_auth_dialog_client.h
index a98ef41..f1c84e5 100644
--- a/chrome/browser/ui/ash/in_session_auth_dialog_client.h
+++ b/chrome/browser/ui/ash/in_session_auth_dialog_client.h
@@ -6,10 +6,20 @@
 #define CHROME_BROWSER_UI_ASH_IN_SESSION_AUTH_DIALOG_CLIENT_H_
 
 #include "ash/public/cpp/in_session_auth_dialog_client.h"
+#include "base/callback.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
+#include "chromeos/login/auth/auth_status_consumer.h"
+#include "chromeos/login/auth/extended_authenticator.h"
+#include "chromeos/login/auth/user_context.h"
 
 // Handles method calls sent from Ash to ChromeOS.
-class InSessionAuthDialogClient : public ash::InSessionAuthDialogClient {
+class InSessionAuthDialogClient : public ash::InSessionAuthDialogClient,
+                                  public chromeos::AuthStatusConsumer {
  public:
+  using AuthenticateCallback = base::OnceCallback<void(bool)>;
+
   InSessionAuthDialogClient();
   InSessionAuthDialogClient(const InSessionAuthDialogClient&) = delete;
   InSessionAuthDialogClient& operator=(const InSessionAuthDialogClient&) =
@@ -23,7 +33,39 @@
   void AuthenticateUserWithPasswordOrPin(
       const std::string& password,
       bool authenticated_by_pin,
-      base::OnceCallback<void(bool)> callback) override;
+      AuthenticateCallback callback) override;
+
+  // AuthStatusConsumer:
+  void OnAuthFailure(const chromeos::AuthFailure& error) override;
+  void OnAuthSuccess(const chromeos::UserContext& user_context) override;
+
+  // For testing:
+  void SetExtendedAuthenticator(
+      scoped_refptr<chromeos::ExtendedAuthenticator> extended_authenticator) {
+    extended_authenticator_ = std::move(extended_authenticator);
+  }
+
+ private:
+  // State associated with a pending authentication attempt.
+  struct AuthState {
+    explicit AuthState(base::OnceCallback<void(bool)> callback);
+    ~AuthState();
+
+    // Callback that should be executed the authentication result is available.
+    base::OnceCallback<void(bool)> callback;
+  };
+
+  void AuthenticateWithPassword(const chromeos::UserContext& user_context);
+
+  void OnPasswordAuthSuccess(const chromeos::UserContext& user_context);
+
+  // Used to authenticate the user to unlock supervised users.
+  scoped_refptr<chromeos::ExtendedAuthenticator> extended_authenticator_;
+
+  // State associated with a pending authentication attempt.
+  base::Optional<AuthState> pending_auth_state_;
+
+  base::WeakPtrFactory<InSessionAuthDialogClient> weak_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_UI_ASH_IN_SESSION_AUTH_DIALOG_CLIENT_H_
diff --git a/chrome/browser/ui/ash/in_session_auth_dialog_client_unittest.cc b/chrome/browser/ui/ash/in_session_auth_dialog_client_unittest.cc
new file mode 100644
index 0000000..2b131c4
--- /dev/null
+++ b/chrome/browser/ui/ash/in_session_auth_dialog_client_unittest.cc
@@ -0,0 +1,142 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/ash/in_session_auth_dialog_client.h"
+
+#include "ash/public/cpp/in_session_auth_dialog_client.h"
+#include "ash/public/cpp/in_session_auth_dialog_controller.h"
+#include "base/callback.h"
+#include "base/run_loop.h"
+#include "base/strings/utf_string_conversions.h"
+#include "base/test/bind_test_util.h"
+#include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h"
+#include "chrome/browser/chromeos/profiles/profile_helper.h"
+#include "chromeos/login/auth/fake_extended_authenticator.h"
+#include "components/account_id/account_id.h"
+#include "components/user_manager/scoped_user_manager.h"
+#include "content/public/test/browser_task_environment.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using chromeos::FakeChromeUserManager;
+using chromeos::FakeExtendedAuthenticator;
+using chromeos::Key;
+using chromeos::UserContext;
+
+namespace {
+
+const char kPassword[] = "password";
+const char kWrongPassword[] = "wrong_password";
+
+const AccountId kAccountId = AccountId::FromUserEmail("testemail@example.com");
+
+// InSessionAuthDialogClient's constructor expects to find an instance of
+// ash::InSessionAuthDialogController, so provide a fake that does nothing.
+class FakeInSessionAuthDialogController
+    : public ash::InSessionAuthDialogController {
+ public:
+  using OnAuthenticateCallback =
+      base::OnceCallback<void(base::Optional<bool> success)>;
+
+  FakeInSessionAuthDialogController() = default;
+  ~FakeInSessionAuthDialogController() override = default;
+
+  // ash::InSessionAuthDialogController:
+  void SetClient(ash::InSessionAuthDialogClient* client) override {}
+  void ShowAuthenticationDialog() override {}
+  void DestroyAuthenticationDialog() override {}
+  void AuthenticateUserWithPasswordOrPin(
+      const std::string& password,
+      OnAuthenticateCallback callback) override {}
+};
+
+class InSessionAuthDialogClientTest : public testing::Test {
+ public:
+  InSessionAuthDialogClientTest() = default;
+  ~InSessionAuthDialogClientTest() override = default;
+
+  void SetupActiveUser() {
+    fake_user_manager_->AddUser(kAccountId);
+    fake_user_manager_->LoginUser(kAccountId);
+    auto* user = user_manager::UserManager::Get()->GetActiveUser();
+    ASSERT_TRUE(user);
+    // Set the profile mapping to avoid crashing in |OnPasswordAuthSuccess|.
+    chromeos::ProfileHelper::Get()->SetUserToProfileMappingForTesting(user,
+                                                                      nullptr);
+  }
+
+  void SetExpectedContext(const UserContext& expected_user_context) {
+    client_->SetExtendedAuthenticator(
+        base::MakeRefCounted<FakeExtendedAuthenticator>(client_.get(),
+                                                        expected_user_context));
+  }
+
+  void AuthenticateUserWithPasswordOrPin(
+      const std::string& password,
+      bool authenticated_by_pin,
+      base::OnceCallback<void(bool)> callback) {
+    client_->AuthenticateUserWithPasswordOrPin(password, authenticated_by_pin,
+                                               std::move(callback));
+  }
+
+ private:
+  // The ExtendedAuthenticator::AuthenticateToCheck task is posted to main (UI)
+  // thread.
+  const content::BrowserTaskEnvironment task_environment_;
+
+  FakeChromeUserManager* fake_user_manager_{new FakeChromeUserManager()};
+  user_manager::ScopedUserManager scoped_user_manager_{
+      base::WrapUnique(fake_user_manager_)};
+  std::unique_ptr<FakeInSessionAuthDialogController> fake_controller_{
+      std::make_unique<FakeInSessionAuthDialogController>()};
+  std::unique_ptr<InSessionAuthDialogClient> client_{
+      std::make_unique<InSessionAuthDialogClient>()};
+};
+
+TEST_F(InSessionAuthDialogClientTest, WrongPassword) {
+  SetupActiveUser();
+  const user_manager::User* const user =
+      user_manager::UserManager::Get()->GetActiveUser();
+  UserContext expected_user_context(*user);
+  expected_user_context.SetKey(
+      Key(chromeos::Key::KEY_TYPE_PASSWORD_PLAIN, std::string(), kPassword));
+
+  SetExpectedContext(expected_user_context);
+
+  base::RunLoop run_loop;
+
+  bool result = true;
+  AuthenticateUserWithPasswordOrPin(
+      kWrongPassword,
+      /* authenticated_by_pin = */ false,
+      base::BindLambdaForTesting(
+          [&result](bool success) { result = success; }));
+
+  run_loop.RunUntilIdle();
+  EXPECT_FALSE(result);
+}
+
+TEST_F(InSessionAuthDialogClientTest, PasswordAuthSuccess) {
+  SetupActiveUser();
+  const user_manager::User* const user =
+      user_manager::UserManager::Get()->GetActiveUser();
+  UserContext expected_user_context(*user);
+  expected_user_context.SetKey(
+      Key(chromeos::Key::KEY_TYPE_PASSWORD_PLAIN, std::string(), kPassword));
+
+  SetExpectedContext(expected_user_context);
+
+  base::RunLoop run_loop;
+
+  bool result = false;
+  AuthenticateUserWithPasswordOrPin(
+      kPassword,
+      /* authenticated_by_pin = */ false,
+      base::BindLambdaForTesting(
+          [&result](bool success) { result = success; }));
+
+  run_loop.RunUntilIdle();
+  EXPECT_TRUE(result);
+}
+
+}  // namespace
diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
index aec0d77..8a1f0e8 100644
--- a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+++ b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
@@ -400,12 +400,16 @@
     ChromeTranslateClient* translate_client =
         ChromeTranslateClient::FromWebContents(contents);
     if (translate_client) {
-      const translate::LanguageState& state =
-          translate_client->GetLanguageState();
+      translate::LanguageState& state = translate_client->GetLanguageState();
+      const std::string original_language = state.original_language();
+      // Since the user is explicitly requesting the translation prompt, here
+      // we invalidate state that prevents prompt in some other circumstances.
+      state.SetTranslateEnabled(true);
+      state.LanguageDetermined("", true);
       // Here we pass triggered_from_menu as true because that is meant to
       // capture whether the user explicitly requested the translation.
       translate_client->ShowTranslateUI(
-          translate::TRANSLATE_STEP_BEFORE_TRANSLATE, state.original_language(),
+          translate::TRANSLATE_STEP_BEFORE_TRANSLATE, original_language,
           state.AutoTranslateTo(), translate::TranslateErrors::NONE,
           /*triggered_from_menu=*/true);
     }
diff --git a/chrome/browser/ui/read_later/reading_list_model_factory.cc b/chrome/browser/ui/read_later/reading_list_model_factory.cc
new file mode 100644
index 0000000..9ab876b
--- /dev/null
+++ b/chrome/browser/ui/read_later/reading_list_model_factory.cc
@@ -0,0 +1,88 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/read_later/reading_list_model_factory.h"
+
+#include <memory>
+#include <utility>
+
+#include "base/command_line.h"
+#include "base/deferred_sequenced_task_runner.h"
+#include "base/memory/singleton.h"
+#include "base/time/default_clock.h"
+#include "base/values.h"
+#include "build/build_config.h"
+#include "chrome/browser/profiles/incognito_helpers.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/sync/model_type_store_service_factory.h"
+#include "chrome/common/channel_info.h"
+#include "chrome/common/chrome_switches.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
+#include "components/pref_registry/pref_registry_syncable.h"
+#include "components/prefs/pref_service.h"
+#include "components/reading_list/core/reading_list_model.h"
+#include "components/reading_list/core/reading_list_model_impl.h"
+#include "components/reading_list/core/reading_list_pref_names.h"
+#include "components/reading_list/core/reading_list_store.h"
+#include "components/sync/base/report_unrecoverable_error.h"
+#include "components/sync/model/model_type_store_service.h"
+#include "components/sync/model_impl/client_tag_based_model_type_processor.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+
+// static
+ReadingListModel* ReadingListModelFactory::GetForBrowserContext(
+    content::BrowserContext* context) {
+  return static_cast<ReadingListModelImpl*>(
+      GetInstance()->GetServiceForBrowserContext(context, true));
+}
+
+// static
+ReadingListModelFactory* ReadingListModelFactory::GetInstance() {
+  return base::Singleton<ReadingListModelFactory>::get();
+}
+
+ReadingListModelFactory::ReadingListModelFactory()
+    : BrowserContextKeyedServiceFactory(
+          "ReadingListModel",
+          BrowserContextDependencyManager::GetInstance()) {
+  DependsOn(ModelTypeStoreServiceFactory::GetInstance());
+}
+
+ReadingListModelFactory::~ReadingListModelFactory() = default;
+
+KeyedService* ReadingListModelFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  Profile* profile = Profile::FromBrowserContext(context);
+  syncer::OnceModelTypeStoreFactory store_factory =
+      ModelTypeStoreServiceFactory::GetForProfile(profile)->GetStoreFactory();
+  auto change_processor =
+      std::make_unique<syncer::ClientTagBasedModelTypeProcessor>(
+          syncer::READING_LIST,
+          base::BindRepeating(&syncer::ReportUnrecoverableError,
+                              chrome::GetChannel()));
+  std::unique_ptr<ReadingListStore> store = std::make_unique<ReadingListStore>(
+      std::move(store_factory), std::move(change_processor));
+
+  KeyedService* reading_list_model = new ReadingListModelImpl(
+      std::move(store), profile->GetPrefs(), base::DefaultClock::GetInstance());
+
+  return reading_list_model;
+}
+
+void ReadingListModelFactory::RegisterProfilePrefs(
+    user_prefs::PrefRegistrySyncable* registry) {
+  registry->RegisterBooleanPref(
+      reading_list::prefs::kReadingListHasUnseenEntries, false,
+      PrefRegistry::NO_REGISTRATION_FLAGS);
+}
+
+content::BrowserContext* ReadingListModelFactory::GetBrowserContextToUse(
+    content::BrowserContext* context) const {
+  return chrome::GetBrowserContextRedirectedInIncognito(context);
+}
+
+bool ReadingListModelFactory::ServiceIsNULLWhileTesting() const {
+  return true;
+}
diff --git a/chrome/browser/ui/read_later/reading_list_model_factory.h b/chrome/browser/ui/read_later/reading_list_model_factory.h
new file mode 100644
index 0000000..31850b6
--- /dev/null
+++ b/chrome/browser/ui/read_later/reading_list_model_factory.h
@@ -0,0 +1,46 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_READ_LATER_READING_LIST_MODEL_FACTORY_H_
+#define CHROME_BROWSER_UI_READ_LATER_READING_LIST_MODEL_FACTORY_H_
+
+#include "base/macros.h"
+#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
+
+namespace base {
+template <typename T>
+struct DefaultSingletonTraits;
+}
+
+class ReadingListModel;
+
+// Singleton that owns all ReadingListModels and associates them with
+// BrowserContexts.
+class ReadingListModelFactory : public BrowserContextKeyedServiceFactory {
+ public:
+  ReadingListModelFactory(const ReadingListModelFactory&) = delete;
+  ReadingListModelFactory& operator=(const ReadingListModelFactory&) = delete;
+
+  static ReadingListModel* GetForBrowserContext(
+      content::BrowserContext* browser_context);
+
+  static ReadingListModelFactory* GetInstance();
+
+ private:
+  friend struct base::DefaultSingletonTraits<ReadingListModelFactory>;
+
+  ReadingListModelFactory();
+  ~ReadingListModelFactory() override;
+
+  // BrowserContextKeyedServiceFactory:
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* context) const override;
+  void RegisterProfilePrefs(
+      user_prefs::PrefRegistrySyncable* registry) override;
+  content::BrowserContext* GetBrowserContextToUse(
+      content::BrowserContext* context) const override;
+  bool ServiceIsNULLWhileTesting() const override;
+};
+
+#endif  // CHROME_BROWSER_UI_READ_LATER_READING_LIST_MODEL_FACTORY_H_
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 08ec75f..94dabd4e 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -40,6 +40,7 @@
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/layout_constants.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/view_ids.h"
 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view_observer.h"
 #include "chrome/browser/ui/views/bookmarks/bookmark_context_menu.h"
@@ -48,6 +49,7 @@
 #include "chrome/browser/ui/views/event_utils.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/frame/top_container_background.h"
+#include "chrome/browser/ui/views/read_later/read_later_button.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_ink_drop_util.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
 #include "chrome/common/chrome_switches.h"
@@ -731,6 +733,12 @@
     gfx::Size size = apps_page_shortcut_->GetPreferredSize();
     width += size.width() + bookmark_bar_button_padding;
   }
+  if (read_later_button_) {
+    gfx::Size separator_size = read_later_separator_view_->GetPreferredSize();
+    gfx::Size size = read_later_button_->GetPreferredSize();
+    width +=
+        separator_size.width() + size.width() + bookmark_bar_button_padding;
+  }
 
   return gfx::Size(width, height);
 }
@@ -786,6 +794,13 @@
   if (other_bookmarks_button_->GetVisible())
     max_x -= other_bookmarks_pref.width() + bookmark_bar_button_padding;
 
+  if (read_later_button_) {
+    if (bookmarks_separator_view_->GetVisible())
+      max_x -= bookmarks_separator_pref.width();
+    max_x -= read_later_button_->GetPreferredSize().width() +
+             bookmark_bar_button_padding;
+  }
+
   // Start with the apps page shortcut button.
   if (apps_page_shortcut_->GetVisible()) {
     apps_page_shortcut_->SetBounds(x, y, apps_page_shortcut_pref.width(),
@@ -858,6 +873,19 @@
                                        button_height);
     x += other_bookmarks_pref.width() + bookmark_bar_button_padding;
   }
+
+  // Read-later button and separator.
+  if (read_later_button_) {
+    gfx::Size read_later_separator_pref =
+        read_later_separator_view_->GetPreferredSize();
+    gfx::Size read_later_pref = read_later_button_->GetPreferredSize();
+    read_later_separator_view_->SetBounds(
+        x, center_y(read_later_separator_pref.height()),
+        read_later_separator_pref.width(), read_later_separator_pref.height());
+    x += read_later_separator_pref.width();
+    read_later_button_->SetBounds(x, y, read_later_pref.width(), button_height);
+    x += read_later_pref.width() + bookmark_bar_button_padding;
+  }
 }
 
 void BookmarkBarView::ViewHierarchyChanged(
@@ -1417,6 +1445,13 @@
   // We'll re-enable when the model is loaded.
   other_bookmarks_button_->SetEnabled(false);
 
+  if (base::FeatureList::IsEnabled(features::kReadLater)) {
+    read_later_separator_view_ =
+        AddChildView(std::make_unique<ButtonSeparatorView>());
+    read_later_button_ =
+        AddChildView(std::make_unique<ReadLaterButton>(browser_));
+  }
+
   profile_pref_registrar_.Init(browser_->profile()->GetPrefs());
   profile_pref_registrar_.Add(
       bookmarks::prefs::kShowAppsShortcutInBookmarkBar,
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
index 9362500..daa9ebd 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
@@ -33,6 +33,7 @@
 class Browser;
 class BrowserView;
 class Profile;
+class ReadLaterButton;
 
 namespace bookmarks {
 class BookmarkModel;
@@ -145,6 +146,8 @@
   // Returns the button used when not all the items on the bookmark bar fit.
   views::MenuButton* overflow_button() const { return overflow_button_; }
 
+  ReadLaterButton* read_later_button() const { return read_later_button_; }
+
   const gfx::Animation& size_animation() { return size_animation_; }
 
   // Returns the active MenuItemView, or NULL if a menu isn't showing.
@@ -431,6 +434,9 @@
 
   ButtonSeparatorView* bookmarks_separator_view_ = nullptr;
 
+  ReadLaterButton* read_later_button_ = nullptr;
+  ButtonSeparatorView* read_later_separator_view_ = nullptr;
+
   Browser* const browser_;
   BrowserView* browser_view_;
 
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
index 24cfa4f2..cc72b07 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
@@ -2636,8 +2636,11 @@
   // then set the display offset to scroll the scheme and trivial subdomain out
   // of visibility.
   GetRenderText()->SetDisplayRect(
-      gfx::Rect(current_display_rect.x(), display_url_bounds.y(),
-                display_url_bounds.width(), display_url_bounds.height()));
+      gfx::Rect(base::i18n::IsRTL()
+                    ? current_display_rect.right() - display_url_bounds.width()
+                    : current_display_rect.x(),
+                display_url_bounds.y(), display_url_bounds.width(),
+                display_url_bounds.height()));
 
   GetRenderText()->SetDisplayOffset(
       -1 * (display_url_bounds.x() - current_display_rect.x()));
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.h b/chrome/browser/ui/views/omnibox/omnibox_view_views.h
index 7fda85d9..65f41ea 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.h
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.h
@@ -196,6 +196,9 @@
   FRIEND_TEST_ALL_PREFIXES(
       OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
       HideOnInteractionAfterFocusAndBlur);
+  FRIEND_TEST_ALL_PREFIXES(
+      OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
+      URLPositionWithHideOnInteraction);
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsRevealOnHoverTest, AfterBlur);
   FRIEND_TEST_ALL_PREFIXES(
       OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
index c60f26c..d2644d1 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
@@ -2969,6 +2969,73 @@
   EXPECT_TRUE(elide_animation->IsAnimating());
 }
 
+// Tests that in the hide-on-interaction field trial variation, the URL is
+// aligned as appropriate for LTR and RTL UIs during the different stages
+// of elision.
+// Regression test for crbug.com/1114332
+TEST_P(OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
+       URLPositionWithHideOnInteraction) {
+  SetUpSimplifiedDomainTest();
+  gfx::RenderText* render_text = omnibox_view()->GetRenderText();
+  // Initially the display rect of the render text matches the omnibox bounds,
+  // store a copy of it.
+  gfx::Rect omnibox_bounds(render_text->display_rect());
+
+  content::MockNavigationHandle navigation;
+  navigation.set_is_same_document(false);
+  omnibox_view()->DidFinishNavigation(&navigation);
+
+  // Simulate a user interaction to fade out the path.
+  omnibox_view()->DidGetUserInteraction(blink::WebKeyboardEvent());
+  OmniboxViewViews::ElideAnimation* elide_animation =
+      omnibox_view()->GetElideAfterInteractionAnimationForTesting();
+  gfx::AnimationContainerElement* elide_as_element =
+      elide_animation->GetAnimationForTesting();
+  elide_as_element->SetStartTime(base::TimeTicks());
+  elide_as_element->Step(base::TimeTicks() + base::TimeDelta::FromSeconds(1));
+  ASSERT_NO_FATAL_FAILURE(ExpectElidedToSimplifiedDomain(
+      omnibox_view(), kSimplifiedDomainDisplayUrlScheme,
+      kSimplifiedDomainDisplayUrlSubdomain,
+      kSimplifiedDomainDisplayUrlHostnameAndScheme,
+      kSimplifiedDomainDisplayUrlPath, ShouldElideToRegistrableDomain()));
+
+  // Check the URL is right aligned if the UI is RTL, or left aligned if it is
+  // LTR.
+  if (base::i18n::IsRTL()) {
+    EXPECT_EQ(render_text->display_rect().x(),
+              omnibox_bounds.right() - render_text->display_rect().width());
+  } else {
+    EXPECT_EQ(render_text->display_rect().x(), omnibox_bounds.x());
+  }
+
+  // Call OnFocus to trigger unelision.
+  omnibox_view()->OnFocus();
+  ASSERT_NO_FATAL_FAILURE(ExpectUnelidedFromSimplifiedDomain(
+      render_text, gfx::Range(0, kSimplifiedDomainDisplayUrl.size())));
+
+  // Check alignment again
+  if (base::i18n::IsRTL()) {
+    EXPECT_EQ(render_text->display_rect().x(),
+              omnibox_bounds.right() - render_text->display_rect().width());
+  } else {
+    EXPECT_EQ(render_text->display_rect().x(), omnibox_bounds.x());
+  }
+
+  // Call OnBlur to return to the state on page load.
+  omnibox_view()->OnBlur();
+  ASSERT_NO_FATAL_FAILURE(ExpectUnelidedFromSimplifiedDomain(
+      render_text, gfx::Range(kSimplifiedDomainDisplayUrlScheme.size(),
+                              kSimplifiedDomainDisplayUrl.size())));
+
+  // Check alignment again
+  if (base::i18n::IsRTL()) {
+    EXPECT_EQ(render_text->display_rect().x(),
+              omnibox_bounds.right() - render_text->display_rect().width());
+  } else {
+    EXPECT_EQ(render_text->display_rect().x(), omnibox_bounds.x());
+  }
+}
+
 // Tests that the last gradient mask from a previous animation is no longer
 // visible when starting a new animation.
 TEST_P(OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
diff --git a/chrome/browser/ui/views/read_later/read_later_bubble_view.cc b/chrome/browser/ui/views/read_later/read_later_bubble_view.cc
new file mode 100644
index 0000000..513ce497
--- /dev/null
+++ b/chrome/browser/ui/views/read_later/read_later_bubble_view.cc
@@ -0,0 +1,62 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/read_later/read_later_bubble_view.h"
+
+#include "base/strings/string16.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/views/chrome_layout_provider.h"
+#include "chrome/common/webui_url_constants.h"
+#include "ui/gfx/geometry/insets.h"
+#include "ui/views/bubble/bubble_dialog_delegate_view.h"
+#include "ui/views/controls/button/button.h"
+#include "ui/views/controls/webview/webview.h"
+#include "ui/views/layout/fill_layout.h"
+
+namespace {
+// ReadLaterWebView ---------------------------------------------------------
+class ReadLaterWebView : public views::WebView {
+ public:
+  explicit ReadLaterWebView(content::BrowserContext* context)
+      : views::WebView(context) {}
+  ReadLaterWebView(const ReadLaterWebView&) = delete;
+  ReadLaterWebView& operator=(const ReadLaterWebView&) = delete;
+};
+
+}  // namespace
+
+// ReadLaterBubbleView ---------------------------------------------------------
+
+// static
+base::WeakPtr<ReadLaterBubbleView> ReadLaterBubbleView::Show(
+    const Browser* browser,
+    views::View* anchor_view) {
+  ReadLaterBubbleView* bubble = new ReadLaterBubbleView(browser, anchor_view);
+  views::Widget* const widget = BubbleDialogDelegateView::CreateBubble(bubble);
+  widget->Show();
+  return bubble->weak_factory_.GetWeakPtr();
+}
+
+ReadLaterBubbleView::ReadLaterBubbleView(const Browser* browser,
+                                         views::View* anchor_view)
+    : BubbleDialogDelegateView(anchor_view,
+                               views::BubbleBorder::Arrow::TOP_RIGHT),
+      web_view_(std::make_unique<ReadLaterWebView>(browser->profile())) {
+  SetButtons(ui::DIALOG_BUTTON_NONE);
+  set_margins(gfx::Insets());
+
+  AddChildView(web_view_.get());
+
+  SetLayoutManager(std::make_unique<views::FillLayout>());
+
+  // TODO(corising): Remove this and add function to calculate preferred size.
+  web_view_->SetPreferredSize(gfx::Size(300, 500));
+}
+
+ReadLaterBubbleView::~ReadLaterBubbleView() = default;
+
+void ReadLaterBubbleView::ReadingListModelLoaded(
+    const ReadingListModel* model) {}
diff --git a/chrome/browser/ui/views/read_later/read_later_bubble_view.h b/chrome/browser/ui/views/read_later/read_later_bubble_view.h
new file mode 100644
index 0000000..8447950
--- /dev/null
+++ b/chrome/browser/ui/views/read_later/read_later_bubble_view.h
@@ -0,0 +1,45 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_READ_LATER_READ_LATER_BUBBLE_VIEW_H_
+#define CHROME_BROWSER_UI_VIEWS_READ_LATER_READ_LATER_BUBBLE_VIEW_H_
+
+#include <memory>
+
+#include "base/memory/weak_ptr.h"
+#include "components/reading_list/core/reading_list_model_observer.h"
+#include "ui/views/bubble/bubble_dialog_delegate_view.h"
+
+namespace views {
+class WebView;
+}
+
+class Browser;
+
+// This bubble view displays a list of read-later entries.
+// This class is only used with the kReadLater feature.
+class ReadLaterBubbleView : public views::BubbleDialogDelegateView,
+                            public ReadingListModelObserver {
+ public:
+  ReadLaterBubbleView(const ReadLaterBubbleView&) = delete;
+  ReadLaterBubbleView& operator=(const ReadLaterBubbleView&) = delete;
+
+  // Displays the read-later dialog under |anchor_view|, attached to |browser|.
+  static base::WeakPtr<ReadLaterBubbleView> Show(const Browser* browser,
+                                                 views::View* anchor_view);
+
+ private:
+  ReadLaterBubbleView(const Browser* browser, views::View* anchor_view);
+
+  ~ReadLaterBubbleView() override;
+
+  // ReadingListModelObserver:
+  void ReadingListModelLoaded(const ReadingListModel* model) override;
+
+  std::unique_ptr<views::WebView> const web_view_;
+
+  base::WeakPtrFactory<ReadLaterBubbleView> weak_factory_{this};
+};
+
+#endif  // CHROME_BROWSER_UI_VIEWS_READ_LATER_READ_LATER_BUBBLE_VIEW_H_
diff --git a/chrome/browser/ui/views/read_later/read_later_bubble_view_browsertest.cc b/chrome/browser/ui/views/read_later/read_later_bubble_view_browsertest.cc
new file mode 100644
index 0000000..872b2cf4
--- /dev/null
+++ b/chrome/browser/ui/views/read_later/read_later_bubble_view_browsertest.cc
@@ -0,0 +1,59 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/read_later/read_later_bubble_view.h"
+
+#include <string>
+
+#include "base/test/scoped_feature_list.h"
+#include "chrome/app/chrome_command_ids.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_commands.h"
+#include "chrome/browser/ui/test/test_browser_dialog.h"
+#include "chrome/browser/ui/ui_features.h"
+#include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/read_later/read_later_button.h"
+#include "components/bookmarks/common/bookmark_pref_names.h"
+#include "content/public/test/browser_test.h"
+
+class ReadLaterBubbleViewBrowserTest : public DialogBrowserTest {
+ public:
+  ReadLaterBubbleViewBrowserTest() {
+    feature_list_.InitAndEnableFeature(features::kReadLater);
+  }
+
+  void SetUpOnMainThread() override {
+    DialogBrowserTest::SetUpOnMainThread();
+    browser()->profile()->GetPrefs()->SetBoolean(
+        bookmarks::prefs::kShowBookmarkBar, true);
+  }
+
+  ReadLaterButton* GetReadLaterButton(Browser* browser) {
+    return BrowserView::GetBrowserViewForBrowser(browser)
+        ->bookmark_bar()
+        ->read_later_button();
+  }
+
+  // DialogBrowserTest:
+  void ShowUi(const std::string& name) override {
+    ASSERT_TRUE(browser()->bookmark_bar_state() == BookmarkBar::SHOW);
+    ClickReadLaterButton();
+    ASSERT_TRUE(GetReadLaterButton(browser())->read_later_bubble_for_testing());
+  }
+
+  void ClickReadLaterButton() {
+    ui::MouseEvent click_event(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
+                               base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, 0);
+    GetReadLaterButton(browser())->OnMousePressed(click_event);
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+  DISALLOW_COPY_AND_ASSIGN(ReadLaterBubbleViewBrowserTest);
+};
+
+IN_PROC_BROWSER_TEST_F(ReadLaterBubbleViewBrowserTest, InvokeUi_default) {
+  ShowAndVerifyUi();
+}
diff --git a/chrome/browser/ui/views/read_later/read_later_button.cc b/chrome/browser/ui/views/read_later/read_later_button.cc
new file mode 100644
index 0000000..216c232b
--- /dev/null
+++ b/chrome/browser/ui/views/read_later/read_later_button.cc
@@ -0,0 +1,61 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/read_later/read_later_button.h"
+
+#include "base/strings/string16.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/themes/theme_properties.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/views/read_later/read_later_bubble_view.h"
+#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/vector_icons/vector_icons.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/pointer/touch_ui_controller.h"
+#include "ui/gfx/geometry/insets.h"
+#include "ui/views/accessibility/view_accessibility.h"
+#include "ui/views/bubble/bubble_dialog_delegate_view.h"
+#include "ui/views/controls/button/button.h"
+#include "ui/views/controls/button/button_controller.h"
+
+ReadLaterButton::ReadLaterButton(Browser* browser)
+    : ToolbarButton(this), browser_(browser) {
+  SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_READ_LATER_BUTTON));
+  GetViewAccessibility().OverrideHasPopup(ax::mojom::HasPopup::kMenu);
+  button_controller()->set_notify_action(
+      views::ButtonController::NotifyAction::kOnPress);
+}
+
+ReadLaterButton::~ReadLaterButton() = default;
+
+const char* ReadLaterButton::GetClassName() const {
+  return "ReadLaterButton";
+}
+
+void ReadLaterButton::UpdateIcon() {
+  // TODO(corising): Update this to the correct icon once it is added.
+  SetImageModel(views::Button::STATE_NORMAL,
+                ui::ImageModel::FromVectorIcon(
+                    vector_icons::kFolderIcon,
+                    GetThemeProvider()->GetColor(
+                        ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON),
+                    GetIconSize()));
+}
+
+void ReadLaterButton::ButtonPressed(views::Button* sender,
+                                    const ui::Event& event) {
+  if (read_later_bubble_) {
+    read_later_bubble_->GetWidget()->Close();
+
+  } else {
+    read_later_bubble_ = ReadLaterBubbleView::Show(browser_, this);
+  }
+}
+
+int ReadLaterButton::GetIconSize() const {
+  const bool touch_ui = ui::TouchUiController::Get()->touch_ui();
+  return (touch_ui && !browser_->app_controller()) ? kDefaultTouchableIconSize
+                                                   : kDefaultIconSize;
+}
diff --git a/chrome/browser/ui/views/read_later/read_later_button.h b/chrome/browser/ui/views/read_later/read_later_button.h
new file mode 100644
index 0000000..f0b2d90
--- /dev/null
+++ b/chrome/browser/ui/views/read_later/read_later_button.h
@@ -0,0 +1,45 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_READ_LATER_READ_LATER_BUTTON_H_
+#define CHROME_BROWSER_UI_VIEWS_READ_LATER_READ_LATER_BUTTON_H_
+
+#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
+
+class Browser;
+class ReadLaterBubbleView;
+
+namespace views {
+class ButtonListener;
+}
+
+// Button in the bookmarks bar that provides access to the corresponding
+// read later menu.
+class ReadLaterButton : public ToolbarButton, public views::ButtonListener {
+ public:
+  explicit ReadLaterButton(Browser* browser);
+  ReadLaterButton(const ReadLaterButton&) = delete;
+  ReadLaterButton& operator=(const ReadLaterButton&) = delete;
+  ~ReadLaterButton() override;
+
+  // ToolbarButton:
+  const char* GetClassName() const override;
+  void UpdateIcon() override;
+
+  base::WeakPtr<ReadLaterBubbleView> read_later_bubble_for_testing() {
+    return read_later_bubble_;
+  }
+
+ private:
+  // views::ButtonListener:
+  void ButtonPressed(views::Button* sender, const ui::Event& event) override;
+
+  int GetIconSize() const;
+
+  base::WeakPtr<ReadLaterBubbleView> read_later_bubble_;
+
+  Browser* const browser_;
+};
+
+#endif  // CHROME_BROWSER_UI_VIEWS_READ_LATER_READ_LATER_BUTTON_H_
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
index bd3ef6b9..33f50f2 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -31,6 +31,7 @@
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/url_data_source.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "media/base/media_switches.h"
 #include "services/network/public/mojom/content_security_policy.mojom.h"
 #include "ui/base/accelerators/accelerator.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -86,6 +87,8 @@
       base::FeatureList::IsEnabled(ntp_features::kWebUIThemeModeDoodles));
   source->AddBoolean("modulesEnabled",
                      base::FeatureList::IsEnabled(ntp_features::kModules));
+  source->AddBoolean("kaleidoscopeModuleEnabled",
+                     base::FeatureList::IsEnabled(media::kKaleidoscopeModule));
 
   static constexpr webui::LocalizedString kStrings[] = {
       {"doneButton", IDS_DONE},
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 45a2ec81..60b831d3e 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-master-1597147084-8c4cc9658838494b8781316d2fe64028822c8b91.profdata
+chrome-mac-master-1597168794-5b254c70fb11ba814efe16d5fff8c307263d75ab.profdata
diff --git a/chrome/common/android/cpu_affinity_experiments.cc b/chrome/common/android/cpu_affinity_experiments.cc
index e3a3a048..1a11130f 100644
--- a/chrome/common/android/cpu_affinity_experiments.cc
+++ b/chrome/common/android/cpu_affinity_experiments.cc
@@ -8,19 +8,15 @@
 #include "base/feature_list.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/process/process_handle.h"
+#include "chrome/common/chrome_features.h"
 
 namespace chrome {
 
-namespace {
-
-const base::Feature kCpuAffinityRestrictToLittleCores{
-    "CpuAffinityRestrictToLittleCores", base::FEATURE_DISABLED_BY_DEFAULT};
-
-}  // namespace
-
 void InitializeCpuAffinityExperiments() {
-  if (!base::FeatureList::IsEnabled(kCpuAffinityRestrictToLittleCores))
+  if (!base::FeatureList::IsEnabled(
+          features::kCpuAffinityRestrictToLittleCores)) {
     return;
+  }
 
   // Restrict affinity of all existing threads of the current process. The
   // affinity is inherited by any subsequently created thread. While
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index d3820fac..09a6eea 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -128,6 +128,13 @@
 const base::Feature kContentSettingsRedesign{"ContentSettingsRedesign",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
 
+#if defined(OS_ANDROID)
+// Restricts all of Chrome's threads to use only LITTLE cores on big.LITTLE
+// architectures.
+const base::Feature kCpuAffinityRestrictToLittleCores{
+    "CpuAffinityRestrictToLittleCores", base::FEATURE_DISABLED_BY_DEFAULT};
+#endif
+
 #if defined(OS_CHROMEOS)
 // Enables or disables "usm" service in the list of user services returned by
 // userInfo Gaia message.
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index c482150..d1d9b698 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -109,6 +109,11 @@
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kContentSettingsRedesign;
 
+#if defined(OS_ANDROID)
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::Feature kCpuAffinityRestrictToLittleCores;
+#endif
+
 #if defined(OS_CHROMEOS)
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kCrOSEnableUSMUserService;
diff --git a/chrome/common/extensions/docs/server2/BUILD.gn b/chrome/common/extensions/docs/server2/BUILD.gn
new file mode 100644
index 0000000..9da6184
--- /dev/null
+++ b/chrome/common/extensions/docs/server2/BUILD.gn
@@ -0,0 +1,43 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# The main target used to aggregate all python based unit tests for the
+# Docserver. This is used to generate a complete isolate which can be pushed to
+# bots to run the tests.
+group("extension_docserver_python_unittests") {
+  testonly = true
+
+  data = [
+    "//testing/scripts/common.py",
+    "//testing/scripts/run_isolated_script_test.py",
+    "//testing/xvfb.py",
+    "//chrome/common/extensions/docs/server2/",
+
+    # Files in these paths are used by tests. All deps must be declared to
+    # ensure the isolate created has all the necessary dependencies. Verify by
+    # running
+    # python tools/mb/mb.py run out/Default extension_docserver_python_unittests -- --isolated-script-test-output=a.json
+    "//chrome/browser/apps/platform_apps/api/",
+    "//chrome/browser/extensions/api/",
+    "//chrome/browser/extensions/OWNERS",
+    "//chrome/common/apps/platform_apps/api/",
+    "//chrome/common/extensions/api/",
+    "//chrome/common/extensions/docs/examples/",
+    "//chrome/common/extensions/docs/templates/",
+    "//extensions/browser/api/",
+    "//extensions/common/api/",
+
+    # Dependencies used by server. See build_server.py
+    "//ppapi/generators/",
+    "//third_party/google_appengine_cloudstorage/cloudstorage/",
+    "//third_party/markdown/",
+    "//third_party/motemplate/",
+    "//third_party/ply/",
+    "//third_party/simplejson/",
+    "//tools/json_comment_eater/json_comment_eater.py",
+    "//tools/json_schema_compiler/",
+  ]
+
+  data_deps = [ "//third_party/catapult/third_party/typ" ]
+}
diff --git a/chrome/common/extensions/docs/server2/availability_finder_test.py b/chrome/common/extensions/docs/server2/availability_finder_test.py
index 60fac38b..a1ec96a 100755
--- a/chrome/common/extensions/docs/server2/availability_finder_test.py
+++ b/chrome/common/extensions/docs/server2/availability_finder_test.py
@@ -74,6 +74,7 @@
         self._branch_utility.GetStableChannelInfo(13),
         stat_paths)
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGraphOptimization(self):
     for platform in GetPlatforms():
       # Keep track of how many times the APISchemaGraph constructor is called.
@@ -100,6 +101,7 @@
         # constructor.
         api_schema_graph.APISchemaGraph = original_constructor
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetAPIAvailability(self):
     # Key: Using 'channel' (i.e. 'beta') to represent an availability listing
     # for an API in a _features.json file, and using |channel| (i.e. |dev|) to
@@ -192,6 +194,7 @@
               'appsFirst',
               only_on='apps')
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetAPINodeAvailability(self):
     def assertEquals(found, channel_info, actual, scheduled=None):
       lookup_result = api_schema_graph.LookupResult
diff --git a/chrome/common/extensions/docs/server2/branch_utility_test.py b/chrome/common/extensions/docs/server2/branch_utility_test.py
index db9e87d..8a29403 100755
--- a/chrome/common/extensions/docs/server2/branch_utility_test.py
+++ b/chrome/common/extensions/docs/server2/branch_utility_test.py
@@ -66,6 +66,7 @@
     self.assertEquals('dev', self._branch_util.NewestChannel(('dev',)))
     self.assertEquals('master', self._branch_util.NewestChannel(('master',)))
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testNewer(self):
     oldest_stable_info = ChannelInfo('stable', '963', 17)
     older_stable_info = ChannelInfo('stable', '1025', 18)
@@ -89,6 +90,7 @@
     self.assertEquals(None, self._branch_util.Newer(master_info))
 
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testOlder(self):
     master_info = ChannelInfo('master', 'master', 'master')
     dev_info = ChannelInfo('dev', '1612', 31)
@@ -107,6 +109,7 @@
     # Test the lower limit.
     self.assertEquals(None, self._branch_util.Older(oldest_stable_info))
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetChannelInfo(self):
     master_info = ChannelInfo('master', 'master', 'master')
     self.assertEquals(master_info, self._branch_util.GetChannelInfo('master'))
@@ -120,9 +123,11 @@
     stable_info = ChannelInfo('stable', '1547', 29)
     self.assertEquals(stable_info, self._branch_util.GetChannelInfo('stable'))
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetLatestVersionNumber(self):
     self.assertEquals(37, self._branch_util.GetLatestVersionNumber())
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetBranchForVersion(self):
     self.assertEquals('1500',
         self._branch_util.GetBranchForVersion(28))
@@ -153,6 +158,7 @@
     self.assertEquals('396',
         self._branch_util.GetBranchForVersion(5))
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetChannelForVersion(self):
     self.assertEquals('master',
         self._branch_util.GetChannelForVersion('master'))
diff --git a/chrome/common/extensions/docs/server2/build_server.py b/chrome/common/extensions/docs/server2/build_server.py
index f31eaa0..86e315e 100755
--- a/chrome/common/extensions/docs/server2/build_server.py
+++ b/chrome/common/extensions/docs/server2/build_server.py
@@ -47,8 +47,11 @@
   for filename in files:
     shutil.copy(os.path.join(src, filename), os.path.join(dest_path, filename))
 
+def HasLocalThirdPartyDirectory():
+  return os.path.isdir(LOCAL_THIRD_PARTY_DIR)
+
 def main():
-  if os.path.isdir(LOCAL_THIRD_PARTY_DIR):
+  if HasLocalThirdPartyDirectory():
     try:
       shutil.rmtree(LOCAL_THIRD_PARTY_DIR, False, OnError)
     except OSError:
diff --git a/chrome/common/extensions/docs/server2/content_provider_test.py b/chrome/common/extensions/docs/server2/content_provider_test.py
index a70e2b63d..e5027ec 100755
--- a/chrome/common/extensions/docs/server2/content_provider_test.py
+++ b/chrome/common/extensions/docs/server2/content_provider_test.py
@@ -5,6 +5,7 @@
 
 from cStringIO import StringIO
 import json
+import os
 import unittest
 from zipfile import ZipFile
 
@@ -110,6 +111,7 @@
     self._assertContent(content, 'text/html', content_and_type)
     self.assertEqual(version, self._content_provider.GetVersion(path).Get())
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testPlainText(self):
     self._assertContent(
         u'a.txt content', 'text/plain',
diff --git a/chrome/common/extensions/docs/server2/environment.py b/chrome/common/extensions/docs/server2/environment.py
index 85e1828d..c86ed464 100644
--- a/chrome/common/extensions/docs/server2/environment.py
+++ b/chrome/common/extensions/docs/server2/environment.py
@@ -50,11 +50,17 @@
 def IsAppEngine():
   return IsDevServer() or IsReleaseServer()
 
-
 def IsTest():
-  return sys.argv and os.path.basename(sys.argv[0]).endswith('_test.py')
+  if not sys.argv:
+    return False
 
+  script_path_head, script_basename = os.path.split(sys.argv[0])
+  if script_basename.endswith('_test.py'):
+    return True
+
+  # Tests under extension_docserver_python_unittests target are run by typ.
+  return (script_basename == 'runner.py' and
+          os.path.basename(script_path_head) == 'typ')
 
 class UnknownEnvironmentError(Exception):
   pass
-
diff --git a/chrome/common/extensions/docs/server2/instance_servlet_test.py b/chrome/common/extensions/docs/server2/instance_servlet_test.py
index 8c598c2..9eff024a 100755
--- a/chrome/common/extensions/docs/server2/instance_servlet_test.py
+++ b/chrome/common/extensions/docs/server2/instance_servlet_test.py
@@ -3,6 +3,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import os
 import unittest
 
 from instance_servlet import InstanceServlet
@@ -26,6 +27,7 @@
   It should never return a 500 (i.e. crash).
   '''
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   @DisableLogging('warning')
   def testHostFileSystemNotAccessed(self):
     delegate = _TestDelegate(FailOnAccessFileSystem)
diff --git a/chrome/common/extensions/docs/server2/integration_test.py b/chrome/common/extensions/docs/server2/integration_test.py
index 1711b939..a36ffac 100755
--- a/chrome/common/extensions/docs/server2/integration_test.py
+++ b/chrome/common/extensions/docs/server2/integration_test.py
@@ -3,10 +3,15 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import build_server
+
 # Run build_server so that files needed by tests are copied to the local
 # third_party directory.
-import build_server
-build_server.main()
+if not build_server.HasLocalThirdPartyDirectory():
+  build_server.main()
+
+assert build_server.HasLocalThirdPartyDirectory(), (
+  'Third party dependencies were not copied')
 
 import json
 import optparse
@@ -85,6 +90,7 @@
   def setUp(self):
     ConfigureFakeFetchers()
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   @EnableLogging('info')
   def testUpdateAndPublicFiles(self):
     '''Runs update then requests every public file. Update needs to be run first
diff --git a/chrome/common/extensions/docs/server2/jsc_view_test.py b/chrome/common/extensions/docs/server2/jsc_view_test.py
index 39b58c1..6b7855f6 100755
--- a/chrome/common/extensions/docs/server2/jsc_view_test.py
+++ b/chrome/common/extensions/docs/server2/jsc_view_test.py
@@ -359,6 +359,7 @@
         self._branch_utility.GetStableChannelInfo(13),
         stat_paths)
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetAPINodeAvailability(self):
     def assertEquals(node, actual):
       node_availabilities = {
diff --git a/chrome/common/extensions/docs/server2/patch_servlet_test.py b/chrome/common/extensions/docs/server2/patch_servlet_test.py
index 22fdbf7..59b3d72 100755
--- a/chrome/common/extensions/docs/server2/patch_servlet_test.py
+++ b/chrome/common/extensions/docs/server2/patch_servlet_test.py
@@ -4,6 +4,7 @@
 # found in the LICENSE file.
 
 from HTMLParser import HTMLParser
+import os
 import unittest
 
 from fake_fetchers import ConfigureFakeFetchers
@@ -116,6 +117,7 @@
     self.assertEqual('/_patch/%s/%s' % (issue, redirect_path),
                      response.headers['Location'])
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testRender(self):
     # '_patch' is not included in paths below because it's stripped by Handler.
     issue = '14096030'
diff --git a/chrome/common/extensions/docs/server2/rietveld_patcher_test.py b/chrome/common/extensions/docs/server2/rietveld_patcher_test.py
index 2dfc035d..e22bedbf 100755
--- a/chrome/common/extensions/docs/server2/rietveld_patcher_test.py
+++ b/chrome/common/extensions/docs/server2/rietveld_patcher_test.py
@@ -39,9 +39,11 @@
   def _ApplySingle(self, path):
     return self._patcher.Apply([path], None).Get()[path]
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetVersion(self):
     self.assertEqual(self._patcher.GetVersion(), '22002')
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testGetPatchedFiles(self):
     added, deleted, modified = self._patcher.GetPatchedFiles()
     self.assertEqual(
@@ -58,6 +60,7 @@
                      'docs/templates/json/extensions_sidenav.json',
                      'manifest.h']))
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testApply(self):
     article_path = '%stest_foo.html' % ARTICLES_TEMPLATES
 
diff --git a/chrome/common/extensions/docs/server2/run_all_unittests.py b/chrome/common/extensions/docs/server2/run_all_unittests.py
new file mode 100755
index 0000000..2770ef5
--- /dev/null
+++ b/chrome/common/extensions/docs/server2/run_all_unittests.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+'''Unit test suite that runs all Python based docserver tests.'''
+
+import os.path
+import sys
+
+_SERVER_DIR = os.path.dirname(__file__)
+_SRC_DIR = os.path.join(_SERVER_DIR, *((os.pardir, ) * 5))
+_TYP_DIR = os.path.join(_SRC_DIR, 'third_party', 'catapult', 'third_party',
+                        'typ')
+
+if not _TYP_DIR in sys.path:
+  sys.path.append(_TYP_DIR)
+
+import typ
+
+def resolve(*paths):
+  return [os.path.join(_SERVER_DIR, *(p.split('/'))) for p in paths]
+
+
+# Run build_server so that files needed by tests are copied to the local
+# third_party directory.
+import build_server
+build_server.main()
+
+sys.exit(
+  typ.main(tests=resolve(
+    'api_categorizer_test.py',
+    'api_data_source_test.py',
+    'api_list_data_source_test.py',
+    'api_models_test.py',
+    'api_schema_graph_test.py',
+    'app_yaml_helper_test.py',
+    'availability_finder_test.py',
+    'branch_utility_test.py',
+    'cache_chain_object_store_test.py',
+    'caching_file_system_test.py',
+    'caching_rietveld_patcher_test.py',
+    'chained_compiled_file_system_test.py',
+    'chroot_file_system_test.py',
+    'compiled_file_system_test.py',
+    'content_provider_test.py',
+    'content_providers_test.py',
+    'directory_zipper_test.py',
+    'docs_server_utils_test.py',
+    'document_parser_test.py',
+    'document_renderer_test.py',
+    'environment_test.py',
+    'features_bundle_test.py',
+    'file_system_test.py',
+    'future_test.py',
+    'handler_test.py',
+    'host_file_system_iterator_test.py',
+    'host_file_system_provider_test.py',
+    'instance_servlet_test.py',
+    'integration_test.py',
+    'jsc_view_test.py',
+    'link_error_detector_test.py',
+    'local_file_system_test.py',
+    'manifest_data_source_test.py',
+    'manifest_features_test.py',
+    'mock_file_system_test.py',
+    'mock_function_test.py',
+    'object_store_creator_test.py',
+    'owners_data_source_test.py',
+    'patch_servlet_test.py',
+    'patched_file_system_test.py',
+    'path_canonicalizer_test.py',
+    'path_util_test.py',
+    'permissions_data_source_test.py',
+    'persistent_object_store_test.py',
+    'platform_bundle_test.py',
+    'platform_util_test.py',
+    'redirector_test.py',
+    'reference_resolver_test.py',
+    'rietveld_patcher_test.py',
+    'samples_model_test.py',
+    'schema_processor_test.py',
+    'sidenav_data_source_test.py',
+    'template_data_source_test.py',
+    'template_renderer_test.py',
+    'test_file_system_test.py',
+    'test_object_store_test.py',
+    'test_servlet_test.py',
+    'whats_new_data_source_test.py',
+    # 'render_servlet_test.py', (This has a test failure currently).
+  )))
diff --git a/chrome/common/extensions/docs/server2/schema_processor_test.py b/chrome/common/extensions/docs/server2/schema_processor_test.py
index 9be4172..baa29925 100755
--- a/chrome/common/extensions/docs/server2/schema_processor_test.py
+++ b/chrome/common/extensions/docs/server2/schema_processor_test.py
@@ -3,6 +3,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import os
 import unittest
 from copy import deepcopy
 
@@ -25,6 +26,7 @@
     return Future(value={})
 
 class SchemaUtilTest(unittest.TestCase):
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testRemoveNoDocs(self):
     expected_nodoc = [
       {
@@ -132,6 +134,7 @@
     schema_processor._RemoveNoDocs(nodoc_data)
     self.assertEquals(expected_nodoc, nodoc_data)
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testInlineDocs(self):
     schema = {
       'namespace': 'storage',
@@ -205,6 +208,7 @@
     schema_processor._InlineDocs(inlined_schema)
     self.assertEqual(expected_schema, inlined_schema)
 
+  @unittest.skipIf(os.name == 'nt', "crbug.com/1114884")
   def testDetectInline(self):
     schema = {
       'types': [
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index de9ad785..5942167 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -964,6 +964,11 @@
 const char kPerAppTimeLimitsAllowlistPolicy[] =
     "child_user.per_app_time_limits.whitelist";
 
+// Time pref to record the user engagement session start time for family user
+// metrics.
+const char kFamilyUserMetricsSessionEngagementStartTime[] =
+    "family_user.metrics.session_engagement_start_time";
+
 // List of preconfigured network file shares.
 const char kNetworkFileSharesPreconfiguredShares[] =
     "network_file_shares.preconfigured_shares";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index f61df05..2f9aae4 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -324,6 +324,7 @@
 extern const char kPerAppTimeLimitsLatestLimitUpdateTime[];
 extern const char kPerAppTimeLimitsPolicy[];
 extern const char kPerAppTimeLimitsAllowlistPolicy[];
+extern const char kFamilyUserMetricsSessionEngagementStartTime[];
 extern const char kDeviceWallpaperImageFilePath[];
 extern const char kKerberosRememberPasswordEnabled[];
 extern const char kKerberosAddAccountsAllowed[];
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_provider.cc b/chrome/credential_provider/gaiacp/gaia_credential_provider.cc
index 38156ec..e30f92f3 100644
--- a/chrome/credential_provider/gaiacp/gaia_credential_provider.cc
+++ b/chrome/credential_provider/gaiacp/gaia_credential_provider.cc
@@ -209,7 +209,8 @@
                         "credentials";
     }
 
-    event_handler->UpdateCredentialsIfNeeded(user_access_changed);
+    if (GetGlobalFlagOrDefault(kRegUpdateCredentialsOnChange, 1))
+      event_handler->UpdateCredentialsIfNeeded(user_access_changed);
   }
 
   return 0;
diff --git a/chrome/credential_provider/gaiacp/mdm_utils.cc b/chrome/credential_provider/gaiacp/mdm_utils.cc
index 728e46c..735625e 100644
--- a/chrome/credential_provider/gaiacp/mdm_utils.cc
+++ b/chrome/credential_provider/gaiacp/mdm_utils.cc
@@ -51,6 +51,8 @@
 constexpr wchar_t kRegDeviceDetailsUploadFailures[] =
     L"device_details_upload_failures";
 constexpr wchar_t kRegGlsPath[] = L"gls_path";
+constexpr wchar_t kRegUpdateCredentialsOnChange[] =
+    L"update_credentials_on_change";
 constexpr wchar_t kRegUserDeviceResourceId[] = L"device_resource_id";
 constexpr wchar_t kUserPasswordLsaStoreKeyPrefix[] =
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
diff --git a/chrome/credential_provider/gaiacp/mdm_utils.h b/chrome/credential_provider/gaiacp/mdm_utils.h
index 1f77c4e..09fee8887 100644
--- a/chrome/credential_provider/gaiacp/mdm_utils.h
+++ b/chrome/credential_provider/gaiacp/mdm_utils.h
@@ -70,6 +70,10 @@
 // it is empty, developer mode isn't enabled.
 extern const wchar_t kRegDeveloperMode[];
 
+// Enables updating credentials on login UI when the enforcement of any GCPW
+// associated account changes.
+extern const wchar_t kRegUpdateCredentialsOnChange[];
+
 // Maximum allowed time delta after which user policies should be refreshed
 // again.
 extern const base::TimeDelta kMaxTimeDeltaSinceLastUserPolicyRefresh;
diff --git a/chrome/renderer/subresource_redirect/subresource_redirect_url_loader_throttle.cc b/chrome/renderer/subresource_redirect/subresource_redirect_url_loader_throttle.cc
index b95319e..5f62eed6 100644
--- a/chrome/renderer/subresource_redirect/subresource_redirect_url_loader_throttle.cc
+++ b/chrome/renderer/subresource_redirect/subresource_redirect_url_loader_throttle.cc
@@ -43,7 +43,7 @@
 bool ShouldCompressionServerRedirectSubresource() {
   return base::GetFieldTrialParamByFeatureAsBool(
       blink::features::kSubresourceRedirect,
-      "enable_subresource_server_redirect", false);
+      "enable_subresource_server_redirect", true);
 }
 
 base::TimeDelta GetCompressionRedirectTimeout() {
diff --git a/chrome/services/sharing/nearby/OWNERS b/chrome/services/sharing/nearby/OWNERS
new file mode 100644
index 0000000..49592df
--- /dev/null
+++ b/chrome/services/sharing/nearby/OWNERS
@@ -0,0 +1,2 @@
+file://chrome/browser/nearby_sharing/OWNERS
+# COMPONENT: UI>Browser>Sharing>Nearby
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index cd073087..aa329b3 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -53,6 +53,10 @@
 # into the build.
 group("test") {
   testonly = true
+
+  if (enable_extensions) {
+    deps = [ "//chrome/common/extensions/docs/server2:extension_docserver_python_unittests" ]
+  }
 }
 
 group("policy_testserver_pyproto") {
@@ -2088,6 +2092,7 @@
         "../browser/ui/views/permission_bubble/permission_prompt_bubble_view_browsertest.cc",
         "../browser/ui/views/profiles/profile_menu_view_browsertest.cc",
         "../browser/ui/views/qrcode_generator/qrcode_generator_bubble_browsertest.cc",
+        "../browser/ui/views/read_later/read_later_bubble_view_browsertest.cc",
         "../browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog_browsertest.cc",
         "../browser/ui/views/select_file_dialog_extension_browsertest.cc",
         "../browser/ui/views/session_crashed_bubble_view_browsertest.cc",
@@ -3394,6 +3399,7 @@
     "../browser/policy/file_selection_dialogs_policy_handler_unittest.cc",
     "../browser/policy/homepage_location_policy_handler_unittest.cc",
     "../browser/policy/javascript_policy_handler_unittest.cc",
+    "../browser/policy/messaging_layer/encryption/fake_encryption_unittest.cc",
     "../browser/policy/messaging_layer/encryption/test_encryption_module.cc",
     "../browser/policy/messaging_layer/encryption/test_encryption_module.h",
     "../browser/policy/messaging_layer/public/report_client_unittest.cc",
@@ -3405,6 +3411,7 @@
     "../browser/policy/messaging_layer/storage/test_storage_module.h",
     "../browser/policy/messaging_layer/upload/app_install_report_handler_unittest.cc",
     "../browser/policy/messaging_layer/upload/dm_server_upload_service_unittest.cc",
+    "../browser/policy/messaging_layer/upload/upload_client_unittest.cc",
     "../browser/policy/messaging_layer/util/shared_queue_unittest.cc",
     "../browser/policy/messaging_layer/util/status_macros_unittest.cc",
     "../browser/policy/messaging_layer/util/status_unittest.cc",
@@ -4636,6 +4643,7 @@
       "../browser/ui/ash/assistant/search_and_assistant_enabled_checker_unittest.cc",
       "../browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc",
       "../browser/ui/ash/ime_controller_client_unittest.cc",
+      "../browser/ui/ash/in_session_auth_dialog_client_unittest.cc",
       "../browser/ui/ash/keyboard/chrome_keyboard_ui_unittest.cc",
       "../browser/ui/ash/keyboard/chrome_keyboard_web_contents_unittest.cc",
       "../browser/ui/ash/keyboard_shortcut_viewer_metadata_unittest.cc",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/tests/webapk/MapsGoFirstRunTest.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/tests/webapk/MapsGoFirstRunTest.java
index fa3b9553..3c55159 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/tests/webapk/MapsGoFirstRunTest.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/tests/webapk/MapsGoFirstRunTest.java
@@ -49,7 +49,7 @@
 
     @Before
     public void setUp() {
-        WebApkValidator.disableValidationForTesting();
+        WebApkValidator.setDisableValidationForTesting(true);
         TestThreadUtils.runOnUiThreadBlocking(WebappRegistry::refreshSharedPrefsForTesting);
     }
 
diff --git a/chrome/test/data/arc_non_adaptive_default_apps/test_app3.json b/chrome/test/data/arc_non_adaptive_default_apps/test_app3.json
new file mode 100644
index 0000000..b7b62dc
--- /dev/null
+++ b/chrome/test/data/arc_non_adaptive_default_apps/test_app3.json
@@ -0,0 +1,7 @@
+{
+  "name": "TestApp3",
+  "package_name": "test.app3",
+  "activity": "test.app3.activity",
+  "oem": true,
+  "app_path": "test_app3"
+}
diff --git a/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_32.png b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_32.png
new file mode 100644
index 0000000..1ce8901
--- /dev/null
+++ b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_32.png
Binary files differ
diff --git a/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_48.png b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_48.png
new file mode 100644
index 0000000..8789a80
--- /dev/null
+++ b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_48.png
Binary files differ
diff --git a/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_64.png b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_64.png
new file mode 100644
index 0000000..b40f6a2
--- /dev/null
+++ b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_100p_64.png
Binary files differ
diff --git a/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_32.png b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_32.png
new file mode 100644
index 0000000..b40f6a2
--- /dev/null
+++ b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_32.png
Binary files differ
diff --git a/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_48.png b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_48.png
new file mode 100644
index 0000000..938c8b65
--- /dev/null
+++ b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_48.png
Binary files differ
diff --git a/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_64.png b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_64.png
new file mode 100644
index 0000000..7af3d28
--- /dev/null
+++ b/chrome/test/data/arc_non_adaptive_default_apps/test_app3/icon_200p_64.png
Binary files differ
diff --git a/chrome/test/data/webui/new_tab_page/modules/kaleidoscope/OWNERS b/chrome/test/data/webui/new_tab_page/modules/kaleidoscope/OWNERS
new file mode 100644
index 0000000..d91fac21
--- /dev/null
+++ b/chrome/test/data/webui/new_tab_page/modules/kaleidoscope/OWNERS
@@ -0,0 +1,3 @@
+file://chrome/browser/media/kaleidoscope/OWNERS
+
+# COMPONENT: Internals>Media>UI>Kaleidoscope
diff --git a/chrome/test/data/webui/new_tab_page/modules/kaleidoscope/module_test.js b/chrome/test/data/webui/new_tab_page/modules/kaleidoscope/module_test.js
new file mode 100644
index 0000000..cf241d70
--- /dev/null
+++ b/chrome/test/data/webui/new_tab_page/modules/kaleidoscope/module_test.js
@@ -0,0 +1,22 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {$$, kaleidoscopeDescriptor} from 'chrome://new-tab-page/new_tab_page.js';
+import {isVisible} from 'chrome://test/test_util.m.js';
+
+suite('NewTabPageModulesKaleidoscopeModuleTest', () => {
+  test('creates module', async () => {
+    // Act.
+    const module = await kaleidoscopeDescriptor.create();
+    document.body.append(module);
+    module.$.tileList.render();
+
+    // Assert.
+    assertTrue(isVisible(module.$.tiles));
+    const tiles = module.shadowRoot.querySelectorAll('#tiles .tile-item');
+    assertEquals(4, tiles.length);
+    assertEquals('item3', tiles[2].getAttribute('title'));
+    assertEquals('baz', tiles[2].textContent);
+  });
+});
diff --git a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js
index 8d27f01..8a1634a 100644
--- a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js
+++ b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js
@@ -220,3 +220,15 @@
 TEST_F('NewTabPageModulesDummyModuleTest', 'All', function() {
   mocha.run();
 });
+
+// eslint-disable-next-line no-var
+var NewTabPageModulesKaleidoscopeModuleTest = class extends NewTabPageBrowserTest {
+  /** @override */
+  get browsePreload() {
+    return 'chrome://new-tab-page/test_loader.html?module=new_tab_page/modules/kaleidoscope/module_test.js';
+  }
+};
+
+TEST_F('NewTabPageModulesKaleidoscopeModuleTest', 'All', function() {
+  mocha.run();
+});
diff --git a/chromeos/components/media_app_ui/test/driver.js b/chromeos/components/media_app_ui/test/driver.js
index 504a97a5..dddde126 100644
--- a/chromeos/components/media_app_ui/test/driver.js
+++ b/chromeos/components/media_app_ui/test/driver.js
@@ -287,33 +287,6 @@
 }
 
 /**
- * Helper to send a single file to the guest.
- * @param {!File} file
- * @param {!FileSystemFileHandle} handle
- * @return {!Promise<undefined>}
- */
-async function loadFile(file, handle) {
-  currentFiles.length = 0;
-  currentFiles.push({token: -1, file, handle});
-  entryIndex = 0;
-  await sendFilesToGuest();
-}
-
-/**
- * Helper to send multiple file to the guest.
- * @param {!Array<{file: !File, handle: !FileSystemFileHandle}>} files
- * @return {!Promise<undefined>}
- */
-async function loadMultipleFiles(files) {
-  currentFiles.length = 0;
-  for (const f of files) {
-    currentFiles.push({token: -1, file: f.file, handle: f.handle});
-  }
-  entryIndex = 0;
-  await sendFilesToGuest();
-}
-
-/**
  * Creates a mock LaunchParams object from the provided `files`.
  * @param {!Array<!FileSystemHandle>} files
  * @return {!LaunchParams}
diff --git a/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js b/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js
index 70c3abf71..af5bdb5 100644
--- a/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js
+++ b/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js
@@ -522,9 +522,8 @@
 
   // Load a zero-byte video. It won't load, but the video element should be
   // added to the DOM (and it can still be fullscreened).
-  await loadFile(
-      new File([], 'zero_byte_video.webm', {type: 'video/webm'}),
-      new FakeFileSystemFileHandle());
+  await launchWithFiles(
+      [new File([], 'zero_byte_video.webm', {type: 'video/webm'})]);
 
   const SELECTOR = 'video';
   const tagName = await driver.waitForElementInGuest(SELECTOR, 'tagName');
@@ -746,12 +745,8 @@
 // Tests the IPC behind the loadNext and loadPrev functions on the received file
 // list in the untrusted context.
 TEST_F('MediaAppUIBrowserTest', 'NavigateIPC', async () => {
-  async function fakeEntry() {
-    const file = await createTestImageFile();
-    const handle = new FakeFileSystemFileHandle(file.name, file.type, 0, file);
-    return {file, handle};
-  }
-  await loadMultipleFiles([await fakeEntry(), await fakeEntry()]);
+  await launchWithFiles(
+      [await createTestImageFile(), await createTestImageFile()]);
   assertEquals(entryIndex, 0);
 
   let result = await sendTestMessage({navigate: 'next'});
@@ -834,8 +829,7 @@
       return Promise.resolve(newFileHandle);
     };
   });
-  const testImage = await createTestImageFile(10, 10);
-  await loadFile(testImage, new FakeFileSystemFileHandle());
+  await launchWithFiles([await createTestImageFile(10, 10)]);
 
   const result = await sendTestMessage({requestSaveFile: true});
   const options = await chooseEntries;
@@ -903,9 +897,8 @@
   newFileHandle.nextCreateWritableError =
       new DOMException('Fake exception', 'FakeError');
   window.showSaveFilePicker = () => Promise.resolve(newFileHandle);
-  const testImage = await createTestImageFile(10, 10);
-  const testHandle = new FakeFileSystemFileHandle('original_file.jpg');
-  await loadFile(testImage, testHandle);
+  const directory = await launchWithFiles(
+      [await createTestImageFile(10, 10, 'original_file.jpg')]);
   const originalFileToken = currentFiles[0].token;
 
   const result = await sendTestMessage({saveAs: 'foo'});
@@ -917,7 +910,7 @@
   assertEquals(result.testQueryResultData['filename'], 'original_file.jpg');
   assertEquals(entryIndex, 0);
   assertEquals(currentFiles.length, 1);
-  assertEquals(currentFiles[0].handle, testHandle);
+  assertEquals(currentFiles[0].handle, directory.files[0]);
   assertEquals(currentFiles[0].handle.name, 'original_file.jpg');
   assertEquals(currentFiles[0].token, originalFileToken);
   assertEquals(tokenMap.get(currentFiles[0].token), currentFiles[0].handle);
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb
index 634763b4..7761efd 100644
--- a/chromeos/strings/chromeos_strings_af.xtb
+++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> van <ph name="TOTAL_PAGE_NUMBER" />. Druk om die druktaak te kanselleer.</translation>
 <translation id="467510802200863975">Wagwoorde is nie dieselfde nie</translation>
 <translation id="4731797938093519117">Ouertoegang</translation>
+<translation id="4773299976671772492">Gestop</translation>
 <translation id="4808449224298348341">Gekanselleerde druktaak <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Kies onmiddellik 'n nuwe een</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb
index 7baf89a..f13c00b 100644
--- a/chromeos/strings/chromeos_strings_am.xtb
+++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />፣ <ph name="PRINTER_NAME" />፣ <ph name="CREATION_TIME" />፣ <ph name="PRINTED_PAGE_NUMBER" /> ከ<ph name="TOTAL_PAGE_NUMBER" /> ዉስጥ የሕትመት ሥራን ለመሰረዝ እባክዎ ያስገቡ።</translation>
 <translation id="467510802200863975">የይለፍ ቃላትዎ አይዛመዱም</translation>
 <translation id="4731797938093519117">የወላጅ መዳረሻ</translation>
+<translation id="4773299976671772492">ቆሟል</translation>
 <translation id="4808449224298348341">የተሰረዘ የሕትመት ሥራ <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">ወዲያውኑ አዲስ ይምረጡ</translation>
 <translation id="4932733599132424254">ቀን</translation>
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb
index aed86c46..56a04339 100644
--- a/chromeos/strings/chromeos_strings_ar.xtb
+++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576">‏<ph name="DOCUMENT_TITLE" />، <ph name="PRINTER_NAME" />، <ph name="CREATION_TIME" />، <ph name="PRINTED_PAGE_NUMBER" /> من أصل <ph name="TOTAL_PAGE_NUMBER" />. يمكنك الضغط على enter لإلغاء مهمة الطباعة.</translation>
 <translation id="467510802200863975">كلمتا المرور غير متطابقتين.</translation>
 <translation id="4731797938093519117">وصول أحد الوالدين</translation>
+<translation id="4773299976671772492">متوقفة</translation>
 <translation id="4808449224298348341">تم إلغاء مهمة الطباعة للمستند <ph name="DOCUMENT_TITLE" />.</translation>
 <translation id="4890353053343094602">اختيار كلمة مرور جديدة فورًا</translation>
 <translation id="4932733599132424254">التاريخ</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb
index 392851a..2af11b491 100644
--- a/chromeos/strings/chromeos_strings_az.xtb
+++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Çap işini ləğv etmək üçün Enter düyməsinə basın.</translation>
 <translation id="467510802200863975">Parollar üst-üstə düşmür</translation>
 <translation id="4731797938093519117">Valideyn girişi</translation>
+<translation id="4773299976671772492">Durmuş</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> çap işi ləğv edilib</translation>
 <translation id="4890353053343094602">Dərhal yenisini seçin</translation>
 <translation id="4932733599132424254">Tarix</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb
index 472648d..cd5f088 100644
--- a/chromeos/strings/chromeos_strings_bg.xtb
+++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> от <ph name="TOTAL_PAGE_NUMBER" />. Натиснете Enter, за да откажете заданието за отпечатване</translation>
 <translation id="467510802200863975">Паролите не са идентични</translation>
 <translation id="4731797938093519117">Достъп на родител</translation>
+<translation id="4773299976671772492">Спряно</translation>
 <translation id="4808449224298348341">Заданието за отпечатване на <ph name="DOCUMENT_TITLE" /> е анулирано</translation>
 <translation id="4890353053343094602">Изберете нова незабавно</translation>
 <translation id="4932733599132424254">Дата</translation>
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb
index 0619ceb..4e81cde 100644
--- a/chromeos/strings/chromeos_strings_bn.xtb
+++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" />টির মধ্যে <ph name="PRINTED_PAGE_NUMBER" /> নম্বর পৃষ্ঠা। প্রিন্ট করা বাতিল করতে এন্টার প্রেস করুন।</translation>
 <translation id="467510802200863975">পাসওয়ার্ড মিলছে না</translation>
 <translation id="4731797938093519117">অভিভাবকীয় অ্যাক্সেস</translation>
+<translation id="4773299976671772492">থামানো হয়েছে</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> প্রিন্ট করার কাজ বাতিল করা হয়েছে</translation>
 <translation id="4890353053343094602">অবিলম্বে একটি নতুন পাসওয়ার্ড বেছে নিন</translation>
 <translation id="4932733599132424254">তারিখ</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb
index 2b7bc227..8ce6756 100644
--- a/chromeos/strings/chromeos_strings_bs.xtb
+++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> od <ph name="TOTAL_PAGE_NUMBER" />. Pritisnite enter da otkažete zadatak štampanja.</translation>
 <translation id="467510802200863975">Lozinke se ne podudaraju</translation>
 <translation id="4731797938093519117">Pristup roditelja</translation>
+<translation id="4773299976671772492">Zaustavljeno</translation>
 <translation id="4808449224298348341">Zadatak za štampanje dokumenta <ph name="DOCUMENT_TITLE" /> je otkazan</translation>
 <translation id="4890353053343094602">Odmah odaberite novu lozinku</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb
index a1f2607..92147ca 100644
--- a/chromeos/strings/chromeos_strings_ca.xtb
+++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de <ph name="TOTAL_PAGE_NUMBER" />. Prem Retorn per cancel·lar la tasca d'impressió.</translation>
 <translation id="467510802200863975">Les contrasenyes no coincideixen</translation>
 <translation id="4731797938093519117">Accés parental</translation>
+<translation id="4773299976671772492">En pausa</translation>
 <translation id="4808449224298348341">S'ha cancel·lat la tasca d'impressió del document <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Tria'n una de nova immediatament</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb
index a7d12ef..148eab9 100644
--- a/chromeos/strings/chromeos_strings_cs.xtb
+++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> z <ph name="TOTAL_PAGE_NUMBER" />. Tiskovou úlohu zrušíte stisknutím klávesy Enter.</translation>
 <translation id="467510802200863975">Hesla se neshodují</translation>
 <translation id="4731797938093519117">Rodičovský přístup</translation>
+<translation id="4773299976671772492">Zastaveno</translation>
 <translation id="4808449224298348341">Byla zrušena tisková úloha <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Ihned si zvolte nové</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb
index 8bc285a4..fb919fe 100644
--- a/chromeos/strings/chromeos_strings_da.xtb
+++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> ud af <ph name="TOTAL_PAGE_NUMBER" />. Tryk på Enter for at annullere udskriftsjobbet.</translation>
 <translation id="467510802200863975">Adgangskoderne stemmer ikke overens</translation>
 <translation id="4731797938093519117">Forældreadgang</translation>
+<translation id="4773299976671772492">Stoppet</translation>
 <translation id="4808449224298348341">Udskriftsjobbet <ph name="DOCUMENT_TITLE" /> blev annulleret</translation>
 <translation id="4890353053343094602">Vælg omgående en ny adgangskode</translation>
 <translation id="4932733599132424254">Dato</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb
index 911bb06..190a3ca 100644
--- a/chromeos/strings/chromeos_strings_de.xtb
+++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> von <ph name="TOTAL_PAGE_NUMBER" />. Wenn Sie den Druckauftrag abbrechen möchten, drücken Sie die Eingabetaste.</translation>
 <translation id="467510802200863975">Die Passwörter stimmen nicht überein</translation>
 <translation id="4731797938093519117">Elternfreigabe</translation>
+<translation id="4773299976671772492">Angehalten</translation>
 <translation id="4808449224298348341">Druckauftrag für "<ph name="DOCUMENT_TITLE" />" wurde abgebrochen</translation>
 <translation id="4890353053343094602">Legen Sie so schnell wie möglich ein neues fest</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_el.xtb b/chromeos/strings/chromeos_strings_el.xtb
index db10ff7..ccda22e 100644
--- a/chromeos/strings/chromeos_strings_el.xtb
+++ b/chromeos/strings/chromeos_strings_el.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> από <ph name="TOTAL_PAGE_NUMBER" />. Πατήστε enter, για να ακυρώσετε την εργασία εκτύπωσης.</translation>
 <translation id="467510802200863975">Δεν ταιριάζουν οι κωδικοί πρόσβασης</translation>
 <translation id="4731797938093519117">Γονική πρόσβαση</translation>
+<translation id="4773299976671772492">Διακόπηκε</translation>
 <translation id="4808449224298348341">Ακυρώθηκε η εργασία εκτύπωσης <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Επιλέξτε άμεσα έναν νέο</translation>
 <translation id="4932733599132424254">Ημερομηνία</translation>
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb
index 1fd9fa26..52a54455 100644
--- a/chromeos/strings/chromeos_strings_en-GB.xtb
+++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> out of <ph name="TOTAL_PAGE_NUMBER" />. Press Enter to cancel the print job.</translation>
 <translation id="467510802200863975">Passwords do not match</translation>
 <translation id="4731797938093519117">Parent access</translation>
+<translation id="4773299976671772492">Stopped</translation>
 <translation id="4808449224298348341">Cancelled print job <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Choose a new one immediately</translation>
 <translation id="4932733599132424254">Date</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb
index 674fa14..0f881913 100644
--- a/chromeos/strings/chromeos_strings_es-419.xtb
+++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de un total de <ph name="TOTAL_PAGE_NUMBER" />. Presiona Intro para cancelar el trabajo de impresión.</translation>
 <translation id="467510802200863975">Las contraseñas no coinciden</translation>
 <translation id="4731797938093519117">Acceso parental</translation>
+<translation id="4773299976671772492">Detenida</translation>
 <translation id="4808449224298348341">Se canceló el trabajo de impresión <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Elige una nueva de inmediato</translation>
 <translation id="4932733599132424254">Fecha</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index 11ad3d7..ba5358a 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de <ph name="TOTAL_PAGE_NUMBER" />. Pulsa Intro para cancelar el trabajo de impresión.</translation>
 <translation id="467510802200863975">Las contraseñas no coinciden</translation>
 <translation id="4731797938093519117">Acceso parental</translation>
+<translation id="4773299976671772492">Detenido</translation>
 <translation id="4808449224298348341">Trabajo de impresión <ph name="DOCUMENT_TITLE" /> cancelado</translation>
 <translation id="4890353053343094602">Selecciona otra inmediatamente</translation>
 <translation id="4932733599132424254">Fecha</translation>
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb
index ad44ed4..87ee7a0 100644
--- a/chromeos/strings/chromeos_strings_et.xtb
+++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Prinditöö tühistamiseks vajutage sisestusklahvi.</translation>
 <translation id="467510802200863975">Paroolid ei kattu</translation>
 <translation id="4731797938093519117">Vanema juurdepääs</translation>
+<translation id="4773299976671772492">Peatatud</translation>
 <translation id="4808449224298348341">Prinditöö <ph name="DOCUMENT_TITLE" /> tühistati</translation>
 <translation id="4890353053343094602">Valige kohe uus</translation>
 <translation id="4932733599132424254">Kuupäev</translation>
diff --git a/chromeos/strings/chromeos_strings_eu.xtb b/chromeos/strings/chromeos_strings_eu.xtb
index 2dd8f23..5c1779d5 100644
--- a/chromeos/strings/chromeos_strings_eu.xtb
+++ b/chromeos/strings/chromeos_strings_eu.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" /> (<ph name="CREATION_TIME" />) - <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> orri Sakatu Sartu inprimatze-lana bertan behera uzteko.</translation>
 <translation id="467510802200863975">Pasahitzak ez datoz bat</translation>
 <translation id="4731797938093519117">Gurasoen sarbidea</translation>
+<translation id="4773299976671772492">Gelditu egin da</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> inprimatze-lana bertan behera utzi da</translation>
 <translation id="4890353053343094602">Aukeratu beste bat berehala</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb
index 2a542428..c5abd1f 100644
--- a/chromeos/strings/chromeos_strings_fa.xtb
+++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576">‏<ph name="DOCUMENT_TITLE" />، <ph name="PRINTER_NAME" />، <ph name="CREATION_TIME" />، <ph name="PRINTED_PAGE_NUMBER" /> از مجموع <ph name="TOTAL_PAGE_NUMBER" />. برای لغو کار چاپ، Enter را فشار دهید.</translation>
 <translation id="467510802200863975">گذرواژه‌ها با هم مطابقت ندارند</translation>
 <translation id="4731797938093519117">دسترسی والدین</translation>
+<translation id="4773299976671772492">متوقف شد</translation>
 <translation id="4808449224298348341">کار چاپ <ph name="DOCUMENT_TITLE" /> لغو شد</translation>
 <translation id="4890353053343094602">انتخاب فوری موردی جدید</translation>
 <translation id="4932733599132424254">تاریخ</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index c58208f..ec01a77 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> Peruuta tulostustyö painamalla Enter.</translation>
 <translation id="467510802200863975">Salasanat eivät täsmää</translation>
 <translation id="4731797938093519117">Avaus vanhemmille</translation>
+<translation id="4773299976671772492">Keskeytetty</translation>
 <translation id="4808449224298348341">Peruutettu tulostustyö: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Valitse uusi välittömästi</translation>
 <translation id="4932733599132424254">Päiväys</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb
index 8ac048d1..41679f90 100644
--- a/chromeos/strings/chromeos_strings_fil.xtb
+++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> sa <ph name="TOTAL_PAGE_NUMBER" />. Pindutin ang enter para kanselahin ang pag-print.</translation>
 <translation id="467510802200863975">Hindi nagtutugma ang mga password</translation>
 <translation id="4731797938093519117">Pangunahing access</translation>
+<translation id="4773299976671772492">Inihinto</translation>
 <translation id="4808449224298348341">Kinansela ang pag-print ng <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Pumili agad ng bago</translation>
 <translation id="4932733599132424254">Petsa</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb
index 13bfcad..4c1cd306 100644
--- a/chromeos/strings/chromeos_strings_fr-CA.xtb
+++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> sur <ph name="TOTAL_PAGE_NUMBER" />. Appuyez sur Entrée pour annuler la tâche d'impression.</translation>
 <translation id="467510802200863975">Les mots de passe ne correspondent pas</translation>
 <translation id="4731797938093519117">Accès parental</translation>
+<translation id="4773299976671772492">Arrêté</translation>
 <translation id="4808449224298348341">Tâche d'impression annulée : <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Choisissez-en un immédiatement</translation>
 <translation id="4932733599132424254">Date</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb
index b4c1e23..2c80b67 100644
--- a/chromeos/strings/chromeos_strings_fr.xtb
+++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> sur <ph name="TOTAL_PAGE_NUMBER" />. Appuyez sur Entrée pour annuler la tâche d'impression.</translation>
 <translation id="467510802200863975">Les mots de passe sont différents</translation>
 <translation id="4731797938093519117">Accès parental</translation>
+<translation id="4773299976671772492">Interrompu</translation>
 <translation id="4808449224298348341">Tâche d'impression annulée pour <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Choisissez-en un nouveau immédiatement</translation>
 <translation id="4932733599132424254">Date</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb
index 2a28245..2ab1f25 100644
--- a/chromeos/strings/chromeos_strings_gl.xtb
+++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de <ph name="TOTAL_PAGE_NUMBER" />. Para cancelar o traballo de impresión, preme Intro.</translation>
 <translation id="467510802200863975">Os contrasinais non coinciden</translation>
 <translation id="4731797938093519117">Acceso parental</translation>
+<translation id="4773299976671772492">Detido</translation>
 <translation id="4808449224298348341">Cancelouse o traballo de impresión <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Escolle un novo inmediatamente</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb
index f0ebbfe9..81e255d 100644
--- a/chromeos/strings/chromeos_strings_gu.xtb
+++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" />માંથી <ph name="PRINTED_PAGE_NUMBER" />. પ્રિન્ટ કરવાનું અટકાવવા માટે, Enter કી દબાવો.</translation>
 <translation id="467510802200863975">પાસવર્ડ મેળ ખાતા નથી</translation>
 <translation id="4731797938093519117">માતાપિતા માટે ઍક્સેસ</translation>
+<translation id="4773299976671772492">રોક્યું</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" />ને પ્રિન્ટ કરવાનું રદ કર્યું</translation>
 <translation id="4890353053343094602">તરત જ નવો પાસવર્ડ પસંદ કરો</translation>
 <translation id="4932733599132424254">તારીખ</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb
index 9b17fd26..43381457 100644
--- a/chromeos/strings/chromeos_strings_hi.xtb
+++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> में से <ph name="PRINTED_PAGE_NUMBER" />. प्रिंट का काम बंद करने के लिए enter का बटन दबाएं.</translation>
 <translation id="467510802200863975">पासवर्ड मेल नहीं खाते</translation>
 <translation id="4731797938093519117">अभिभावक ऐक्सेस</translation>
+<translation id="4773299976671772492">रोक दिया गया</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> के प्रिंट का काम बंद किया गया</translation>
 <translation id="4890353053343094602">तुरंत कोई नया पासवर्ड चुनें</translation>
 <translation id="4932733599132424254">तारीख</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb
index dee8c5c..b3b1c977 100644
--- a/chromeos/strings/chromeos_strings_hr.xtb
+++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> od <ph name="TOTAL_PAGE_NUMBER" />. Pritisnite tipku Enter da biste otkazali zadatak ispisa.</translation>
 <translation id="467510802200863975">Zaporke se ne podudaraju</translation>
 <translation id="4731797938093519117">Roditeljski pristup</translation>
+<translation id="4773299976671772492">Zaustavljeno</translation>
 <translation id="4808449224298348341">Otkazan zadatak ispisa dokumenta <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Odmah odaberite novu</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb
index 723e46777..e443597 100644
--- a/chromeos/strings/chromeos_strings_hu.xtb
+++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />. oldal az összesen <ph name="TOTAL_PAGE_NUMBER" /> oldalból A nyomtatási feladat törléséhez nyomja meg az Enter billentyűt.</translation>
 <translation id="467510802200863975">A jelszavak nem egyeznek</translation>
 <translation id="4731797938093519117">Szülői hozzáférés</translation>
+<translation id="4773299976671772492">Leállítva</translation>
 <translation id="4808449224298348341">Nyomtatási feladat (<ph name="DOCUMENT_TITLE" />) megszakítva</translation>
 <translation id="4890353053343094602">Azonnal válasszon új jelszót</translation>
 <translation id="4932733599132424254">Dátum</translation>
diff --git a/chromeos/strings/chromeos_strings_hy.xtb b/chromeos/strings/chromeos_strings_hy.xtb
index 4d841e5..6dbf2fbb 100644
--- a/chromeos/strings/chromeos_strings_hy.xtb
+++ b/chromeos/strings/chromeos_strings_hy.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />։ Հպեք Enter՝ տպումը չեղարկելու համար։</translation>
 <translation id="467510802200863975">Գաղտնաբառերը չեն համընկնում</translation>
 <translation id="4731797938093519117">Ծնողի մուտք</translation>
+<translation id="4773299976671772492">Դադարեցված է</translation>
 <translation id="4808449224298348341">Տպման առաջադրանքը չեղարկվեց՝ <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Հնարավորինս արագ փոխեք գաղտնաբառը</translation>
 <translation id="4932733599132424254">Ամսաթիվ</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index d4c5fa4..8cd6ab2 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> dari <ph name="TOTAL_PAGE_NUMBER" />. Tekan enter untuk membatalkan tugas pencetakan.</translation>
 <translation id="467510802200863975">Sandi tidak cocok</translation>
 <translation id="4731797938093519117">Akses orang tua</translation>
+<translation id="4773299976671772492">Dihentikan</translation>
 <translation id="4808449224298348341">Tugas pencetakan <ph name="DOCUMENT_TITLE" /> dibatalkan</translation>
 <translation id="4890353053343094602">Segera pilih satu sandi baru</translation>
 <translation id="4932733599132424254">Tanggal</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb
index fedf6cec..2814c91 100644
--- a/chromeos/strings/chromeos_strings_is.xtb
+++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> af <ph name="TOTAL_PAGE_NUMBER" />. Ýttu á færslulykilinn til að hætta við prentverkið.</translation>
 <translation id="467510802200863975">Aðgangsorð stemma ekki</translation>
 <translation id="4731797938093519117">Foreldraaðgangur</translation>
+<translation id="4773299976671772492">Stöðvað</translation>
 <translation id="4808449224298348341">Hætt við prentverkið <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Veldu nýtt án tafar</translation>
 <translation id="4932733599132424254">Dagsetning</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb
index 19a161c..b067b8e5 100644
--- a/chromeos/strings/chromeos_strings_it.xtb
+++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -34,7 +34,7 @@
 <translation id="3838338534323494292">Nuova password</translation>
 <translation id="4003259559679196451"><ph name="ENROLLMENT_DOMAIN" /> gestisce questo dispositivo e ha accesso a tutta l'attività utente, tra cui le pagine web visitate, le password e le email.</translation>
 <translation id="4003384961948020559">Operazione non riuscita - Scomparto di uscita pieno</translation>
-<translation id="4027485274696301677">Questo dispositivo <ph name="DEVICE_TYPE" /> è gestito da <ph name="ENROLLMENT_DOMAIN" />. Gli amministratori possono configurare il dispositivo da remoto.</translation>
+<translation id="4027485274696301677">Questo dispositivo <ph name="DEVICE_TYPE" /> è gestito da <ph name="ENROLLMENT_DOMAIN" />. Gli amministratori possono configurarlo da remoto.</translation>
 <translation id="4034824040120875894">Stampante</translation>
 <translation id="4227825898293920515">La password scade tra <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Nessun processo di stampa in corso</translation>
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> di <ph name="TOTAL_PAGE_NUMBER" />. Premi Invio per annullare il processo di stampa.</translation>
 <translation id="467510802200863975">Le password non corrispondono</translation>
 <translation id="4731797938093519117">Accesso genitore</translation>
+<translation id="4773299976671772492">Interrotta</translation>
 <translation id="4808449224298348341">Processo di stampa <ph name="DOCUMENT_TITLE" /> annullato</translation>
 <translation id="4890353053343094602">Scegline subito una nuova</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb
index 9b8fc7b..92b66e88 100644
--- a/chromeos/strings/chromeos_strings_iw.xtb
+++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576">‏<ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> מתוך <ph name="TOTAL_PAGE_NUMBER" />. ניתן להקיש על Enter כדי לבטל את משימת ההדפסה.</translation>
 <translation id="467510802200863975">הסיסמאות אינן תואמות</translation>
 <translation id="4731797938093519117">גישת הורים</translation>
+<translation id="4773299976671772492">הופסק</translation>
 <translation id="4808449224298348341">משימת ההדפסה <ph name="DOCUMENT_TITLE" /> בוטלה</translation>
 <translation id="4890353053343094602">יש לבחור מיד סיסמה חדשה</translation>
 <translation id="4932733599132424254">תאריך</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 13c1e59..61c3c6c 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />、<ph name="PRINTER_NAME" />、<ph name="CREATION_TIME" />、<ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />。印刷ジョブをキャンセルするには、Enter キーを押します。</translation>
 <translation id="467510802200863975">パスワードが一致しません</translation>
 <translation id="4731797938093519117">保護者によるアクセス</translation>
+<translation id="4773299976671772492">停止しました</translation>
 <translation id="4808449224298348341">キャンセルされた印刷ジョブ <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">新しいパスワードを今すぐ選択してください</translation>
 <translation id="4932733599132424254">日付</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb
index c268a39..d27c758 100644
--- a/chromeos/strings/chromeos_strings_ka.xtb
+++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> / <ph name="TOTAL_PAGE_NUMBER" />. გთხოვთ დააჭიროთ შეყვანის ღილაკს ამ ბეჭდვის დავალების გასაუქმებლად.</translation>
 <translation id="467510802200863975">პაროლები არ ემთხვევა</translation>
 <translation id="4731797938093519117">მშობლის წვდომა</translation>
+<translation id="4773299976671772492">შეწყვეტილია</translation>
 <translation id="4808449224298348341">ბეჭდვის დავალება გაუქმდა <ph name="DOCUMENT_TITLE" />-ისთვის</translation>
 <translation id="4890353053343094602">დაუყოვნებლივ აირჩიეთ ახალი</translation>
 <translation id="4932733599132424254">თარიღი</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb
index 229cbac..7f3dca07 100644
--- a/chromeos/strings/chromeos_strings_kk.xtb
+++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Басып шығарудан бас тарту үшін "Enter" пернесін басыңыз.</translation>
 <translation id="467510802200863975">Құпия сөздер сәйкес келмейді.</translation>
 <translation id="4731797938093519117">Ата-ананың кіру рұқсаты</translation>
+<translation id="4773299976671772492">Тоқтатылды</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> құжатын басып шығарудан бас тартылды.</translation>
 <translation id="4890353053343094602">Дереу жаңа құпия сөз таңдаңыз.</translation>
 <translation id="4932733599132424254">Күні</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb
index 4150f665..7daba17 100644
--- a/chromeos/strings/chromeos_strings_km.xtb
+++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> ក្នុង​ចំណោម <ph name="TOTAL_PAGE_NUMBER" />។ ចុច enter ដើម្បីបោះបង់​ការងារបោះពុម្ព។</translation>
 <translation id="467510802200863975">ពាក្យសម្ងាត់​មិនត្រូវគ្នាទេ</translation>
 <translation id="4731797938093519117">សិទ្ធិចូលប្រើប្រាស់​សម្រាប់មាតាបិតា</translation>
+<translation id="4773299976671772492">បានឈប់</translation>
 <translation id="4808449224298348341">បានបោះបង់​ការងារបោះពុម្ព <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">សូមជ្រើសរើស​ពាក្យសម្ងាត់​ថ្មីភ្លាមៗ</translation>
 <translation id="4932733599132424254">កាលបរិច្ឆេទ</translation>
diff --git a/chromeos/strings/chromeos_strings_kn.xtb b/chromeos/strings/chromeos_strings_kn.xtb
index 91d7221..d8af6018 100644
--- a/chromeos/strings/chromeos_strings_kn.xtb
+++ b/chromeos/strings/chromeos_strings_kn.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> ರಲ್ಲಿ <ph name="PRINTED_PAGE_NUMBER" /> ಮುದ್ರಣ ಕಾರ್ಯವನ್ನು ರದ್ದುಮಾಡಲು enter ಒತ್ತಿರಿ.</translation>
 <translation id="467510802200863975">ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="4731797938093519117">ಪೋಷಕ ಪ್ರವೇಶ ಬಟನ್‌</translation>
+<translation id="4773299976671772492">ನಿಲ್ಲಿಸಲಾಗಿದೆ</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> ಮುದ್ರಣ ಕಾರ್ಯವನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ</translation>
 <translation id="4890353053343094602">ಹೊಸದೊಂದನ್ನು ತತ್‌ಕ್ಷಣ ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="4932733599132424254">ದಿನಾಂಕ</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index 0011b4f..8bb4f2c 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> 인쇄 작업을 취소하려면 Enter를 누릅니다.</translation>
 <translation id="467510802200863975">비밀번호가 일치하지 않습니다.</translation>
 <translation id="4731797938093519117">부모 액세스</translation>
+<translation id="4773299976671772492">중지됨</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> 인쇄 작업 취소됨</translation>
 <translation id="4890353053343094602">지금 바로 새 비밀번호를 선택하세요.</translation>
 <translation id="4932733599132424254">날짜</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb
index 358796c5..2804c8f6 100644
--- a/chromeos/strings/chromeos_strings_ky.xtb
+++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> ичинен <ph name="PRINTED_PAGE_NUMBER" /> Басып чыгарууну токтотуу үчүн "Enter" баскычын басыңыз.</translation>
 <translation id="467510802200863975">Сырсөздөр дал келген жок</translation>
 <translation id="4731797938093519117">Ата-эненин кирүү уруксаты</translation>
+<translation id="4773299976671772492">Токтотулду</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> документин басып чыгаруу токтотулду</translation>
 <translation id="4890353053343094602">Дароо жаңы сырсөз тандаңыз</translation>
 <translation id="4932733599132424254">Күнү</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index a8612e3c..26489fc 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> ຈາກທັງໝົດ <ph name="TOTAL_PAGE_NUMBER" />. ກົດ Enter ເພື່ອຍົກເລີກວຽກພິມ.</translation>
 <translation id="467510802200863975">ລະຫັດຜ່ານບໍ່ກົງກັນ</translation>
 <translation id="4731797938093519117">ສິດເຂົ້າເຖິງຂອງພໍ່ແມ່</translation>
+<translation id="4773299976671772492">ຢຸດ​ແລ້ວ</translation>
 <translation id="4808449224298348341">ຍົກເລີກວຽກພິມ <ph name="DOCUMENT_TITLE" /> ແລ້ວ</translation>
 <translation id="4890353053343094602">ເລືອກລະຫັດຜ່ານໃໝ່ໃນທັນທີ</translation>
 <translation id="4932733599132424254">ວັນ​ທີ</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index 89cc8e4..ad754bf6 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, „<ph name="PRINTER_NAME" />“, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> iš <ph name="TOTAL_PAGE_NUMBER" /> psl. Paspauskite „Enter“, jei norite atšaukti spausdinimo užduotį.</translation>
 <translation id="467510802200863975">Slaptažodžiai neatitinka</translation>
 <translation id="4731797938093519117">Tėvų prieiga</translation>
+<translation id="4773299976671772492">Sustabdyta</translation>
 <translation id="4808449224298348341">Spausdinimo užduotis atšaukta: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Nedelsdami pasirinkite naują</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb
index faebb6f..dfc1fb75 100644
--- a/chromeos/strings/chromeos_strings_lv.xtb
+++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />: <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> no <ph name="TOTAL_PAGE_NUMBER" /> lapas(-ām). Lai atceltu drukas uzdevumu, nospiediet taustiņu Enter.</translation>
 <translation id="467510802200863975">Paroles nav vienādas</translation>
 <translation id="4731797938093519117">Vecāku piekļuve</translation>
+<translation id="4773299976671772492">Pārtraukts</translation>
 <translation id="4808449224298348341">Drukas uzdevums “<ph name="DOCUMENT_TITLE" />” tika atcelts</translation>
 <translation id="4890353053343094602">Nekavējoties izvēlieties jaunu</translation>
 <translation id="4932733599132424254">Datums</translation>
diff --git a/chromeos/strings/chromeos_strings_mk.xtb b/chromeos/strings/chromeos_strings_mk.xtb
index ddf66f6..517fd13e 100644
--- a/chromeos/strings/chromeos_strings_mk.xtb
+++ b/chromeos/strings/chromeos_strings_mk.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> од <ph name="TOTAL_PAGE_NUMBER" />. Притиснете Enter за да го откажете налогот за печатење.</translation>
 <translation id="467510802200863975">Лозинките не се совпаѓаат</translation>
 <translation id="4731797938093519117">Пристап за родители</translation>
+<translation id="4773299976671772492">Сопрено</translation>
 <translation id="4808449224298348341">Откажан налог за печатење: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Веднаш изберете нова</translation>
 <translation id="4932733599132424254">Датум</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
index 23feef1..ff7a0c7 100644
--- a/chromeos/strings/chromeos_strings_ml.xtb
+++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, ആകെയുള്ള <ph name="TOTAL_PAGE_NUMBER" /> എണ്ണത്തിൽ <ph name="PRINTED_PAGE_NUMBER" /> എണ്ണം. പ്രിന്റ് ജോലി റദ്ദാക്കാൻ എന്റർ അമർത്തുക.</translation>
 <translation id="467510802200863975">പാസ്‌വേഡുകൾ പൊരുത്തപ്പെടുന്നില്ല</translation>
 <translation id="4731797938093519117">രക്ഷാകർതൃ ആക്‌സസ്</translation>
+<translation id="4773299976671772492">അവസാനിപ്പിച്ചു</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> എന്ന പ്രിന്റ് ജോലി റദ്ദാക്കി</translation>
 <translation id="4890353053343094602">പുതിയ പാസ്‌വേഡ് പെട്ടെന്ന് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="4932733599132424254">തീയതി</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index df49e79..01f3419 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" />-с <ph name="PRINTED_PAGE_NUMBER" />. Хэвлэх ажлыг цуцлахын тулд enter дээр дарна уу.</translation>
 <translation id="467510802200863975">Нууц үг таарахгүй байна</translation>
 <translation id="4731797938093519117">Эцэг эхийн хандалт</translation>
+<translation id="4773299976671772492">Зогссон</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> хэвлэх ажлыг цуцалсан</translation>
 <translation id="4890353053343094602">Нэн даруй шинийг сонгоно уу</translation>
 <translation id="4932733599132424254">Огноо</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb
index ed82794..1f5418a 100644
--- a/chromeos/strings/chromeos_strings_mr.xtb
+++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> पैकी <ph name="PRINTED_PAGE_NUMBER" />. प्रिंट कार्य रद्द करण्यासाठी एंटर दाबा.</translation>
 <translation id="467510802200863975">पासवर्ड जुळत नाहीत</translation>
 <translation id="4731797938093519117">पालक अ‍ॅक्सेस</translation>
+<translation id="4773299976671772492">थांबविले</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> हे प्रिंट कार्य रद्द केले</translation>
 <translation id="4890353053343094602">तत्काळ नवीन निवडा</translation>
 <translation id="4932733599132424254">तारीख</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index 95d6a0b..8c4b7e4 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> daripada <ph name="TOTAL_PAGE_NUMBER" />. Tekan enter untuk membatalkan tugas cetak.</translation>
 <translation id="467510802200863975">Kata laluan tidak sepadan</translation>
 <translation id="4731797938093519117">Akses ibu bapa</translation>
+<translation id="4773299976671772492">Dihentikan</translation>
 <translation id="4808449224298348341">Tugas cetak <ph name="DOCUMENT_TITLE" /> dibatalkan</translation>
 <translation id="4890353053343094602">Pilih kata laluan baharu secepat mungkin</translation>
 <translation id="4932733599132424254">Tarikh</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb
index b52b544c..599a52c 100644
--- a/chromeos/strings/chromeos_strings_my.xtb
+++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />၊ <ph name="PRINTER_NAME" />၊ <ph name="CREATION_TIME" />၊ စာမျက်နှာ <ph name="TOTAL_PAGE_NUMBER" /> မျက်နှာအနက် <ph name="PRINTED_PAGE_NUMBER" /> မျက်နှာ။ ပရင့်ထုတ်ရန်ဖိုင် ပယ်ဖျက်ရန် enter နှိပ်ပါ။</translation>
 <translation id="467510802200863975">စကားဝှက်များ မတူညီပါ</translation>
 <translation id="4731797938093519117">မိဘ သုံးခွင့်</translation>
+<translation id="4773299976671772492">ဆိုင်းငံ့ထား</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> ပရင့်ထုတ်ခြင်းကို ပယ်ဖျက်လိုက်သည်။</translation>
 <translation id="4890353053343094602">ချက်ချင်း အသစ်တစ်ခု ‌ရွေးပါ</translation>
 <translation id="4932733599132424254">ရက်စွဲ</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb
index 7fe1bedf..fe8950ef 100644
--- a/chromeos/strings/chromeos_strings_ne.xtb
+++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> मध्ये <ph name="PRINTED_PAGE_NUMBER" />। प्रिन्ट गर्ने कार्य रद्द गर्न enter थिच्नुहोस्।</translation>
 <translation id="467510802200863975">पासवर्डहरू मिलेनन्</translation>
 <translation id="4731797938093519117">अभिभावकको पहुँच</translation>
+<translation id="4773299976671772492">रोकियो</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> प्रिन्ट गर्ने कार्य रद्द गरियो</translation>
 <translation id="4890353053343094602">तुरुन्तै एउटा नयाँ पासवर्ड राख्नुहोस्</translation>
 <translation id="4932733599132424254">मिति</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index 8b270c3..ae8ac60 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> van <ph name="TOTAL_PAGE_NUMBER" />. Druk op Enter om de afdruktaak te annuleren.</translation>
 <translation id="467510802200863975">De wachtwoorden komen niet overeen</translation>
 <translation id="4731797938093519117">Toegang door ouders</translation>
+<translation id="4773299976671772492">Beëindigd</translation>
 <translation id="4808449224298348341">Afdruktaak <ph name="DOCUMENT_TITLE" /> geannuleerd</translation>
 <translation id="4890353053343094602">Kies onmiddellijk een nieuw wachtwoord</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb
index b9cd3b0f..1736099 100644
--- a/chromeos/strings/chromeos_strings_no.xtb
+++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> av <ph name="TOTAL_PAGE_NUMBER" />. Trykk på Enter for å avbryte utskriftsjobben.</translation>
 <translation id="467510802200863975">Passordene er ikke like</translation>
 <translation id="4731797938093519117">Foreldretilgang</translation>
+<translation id="4773299976671772492">Stoppet</translation>
 <translation id="4808449224298348341">Avbrøt utskriftsjobben <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Velg et nytt passord umiddelbart</translation>
 <translation id="4932733599132424254">Dato</translation>
diff --git a/chromeos/strings/chromeos_strings_pa.xtb b/chromeos/strings/chromeos_strings_pa.xtb
index 0127fba..477f410 100644
--- a/chromeos/strings/chromeos_strings_pa.xtb
+++ b/chromeos/strings/chromeos_strings_pa.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> ਵਿੱਚੋਂ <ph name="PRINTED_PAGE_NUMBER" />। ਪ੍ਰਿੰਟ ਜੌਬ ਨੂੰ ਰੱਦ ਕਰਨ ਲਈ Enter ਦਬਾਓ।</translation>
 <translation id="467510802200863975">ਪਾਸਵਰਡ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ</translation>
 <translation id="4731797938093519117">ਮਾਂ-ਪਿਓ ਲਈ ਪਹੁੰਚ</translation>
+<translation id="4773299976671772492">ਬੰਦ ਕੀਤਾ</translation>
 <translation id="4808449224298348341">ਰੱਦ ਕੀਤੀ ਪ੍ਰਿੰਟ ਜੌਬ <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">ਛੇਤੀ ਇੱਕ ਨਵਾਂ ਪਾਸਵਰਡ ਚੁਣੋ</translation>
 <translation id="4932733599132424254">ਤਾਰੀਖ</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb
index 743533e..36ea8745 100644
--- a/chromeos/strings/chromeos_strings_pl.xtb
+++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> z <ph name="TOTAL_PAGE_NUMBER" />. Naciśnij Enter, by anulować zadanie drukowania.</translation>
 <translation id="467510802200863975">Hasła nie są zgodne</translation>
 <translation id="4731797938093519117">Dostęp rodzica</translation>
+<translation id="4773299976671772492">Zatrzymano</translation>
 <translation id="4808449224298348341">Zadanie drukowania <ph name="DOCUMENT_TITLE" /> zostało anulowane</translation>
 <translation id="4890353053343094602">Jak najszybciej wybierz nowe.</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb
index 9408613..f268941 100644
--- a/chromeos/strings/chromeos_strings_pt-BR.xtb
+++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de <ph name="TOTAL_PAGE_NUMBER" />. Pressione "Enter" para cancelar o trabalho de impressão.</translation>
 <translation id="467510802200863975">As senhas não são iguais</translation>
 <translation id="4731797938093519117">Acesso de pai/mãe</translation>
+<translation id="4773299976671772492">Interrompida</translation>
 <translation id="4808449224298348341">Trabalho de impressão cancelado: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Escolha uma nova imediatamente</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-PT.xtb b/chromeos/strings/chromeos_strings_pt-PT.xtb
index 0b910bfe..d42940c4 100644
--- a/chromeos/strings/chromeos_strings_pt-PT.xtb
+++ b/chromeos/strings/chromeos_strings_pt-PT.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de <ph name="TOTAL_PAGE_NUMBER" />. Prima Enter para cancelar a tarefa de impressão.</translation>
 <translation id="467510802200863975">As palavras-passe não correspondem.</translation>
 <translation id="4731797938093519117">Acesso parental</translation>
+<translation id="4773299976671772492">Parado</translation>
 <translation id="4808449224298348341">Foi cancelada a tarefa de impressão de <ph name="DOCUMENT_TITLE" />.</translation>
 <translation id="4890353053343094602">Escolha uma nova de imediato</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index d80a7c82..a554cc9 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> din <ph name="TOTAL_PAGE_NUMBER" />. Apasă pe Enter pentru a anula sarcina de printare.</translation>
 <translation id="467510802200863975">Parolele nu se potrivesc</translation>
 <translation id="4731797938093519117">Acces pentru părinți</translation>
+<translation id="4773299976671772492">Oprit</translation>
 <translation id="4808449224298348341">S-a anulat sarcina de printare <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Alege imediat una nouă</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index bf29e97..16fb6a12a 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576">Файл "<ph name="DOCUMENT_TITLE" />", принтер "<ph name="PRINTER_NAME" />", дата – <ph name="CREATION_TIME" />, напечатано страниц: <ph name="PRINTED_PAGE_NUMBER" /> из <ph name="TOTAL_PAGE_NUMBER" />. Чтобы отменить задание печати, нажмите клавишу "Ввод".</translation>
 <translation id="467510802200863975">Пароли не совпадают.</translation>
 <translation id="4731797938093519117">Родительский доступ</translation>
+<translation id="4773299976671772492">Остановлено</translation>
 <translation id="4808449224298348341">Отменено задание печати файла "<ph name="DOCUMENT_TITLE" />"</translation>
 <translation id="4890353053343094602">Смените пароль как можно скорее.</translation>
 <translation id="4932733599132424254">Дата</translation>
diff --git a/chromeos/strings/chromeos_strings_si.xtb b/chromeos/strings/chromeos_strings_si.xtb
index 0e6be1b..ba0b9bf 100644
--- a/chromeos/strings/chromeos_strings_si.xtb
+++ b/chromeos/strings/chromeos_strings_si.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="TOTAL_PAGE_NUMBER" /> න් <ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> මුද්‍රණ කාර්යය අවලංගු කිරීමට enter ඔබන්න.</translation>
 <translation id="467510802200863975">මුරපද නොගැළපෙති</translation>
 <translation id="4731797938093519117">මාපිය ප්‍රවේශය</translation>
+<translation id="4773299976671772492">නවත්වන ලදි</translation>
 <translation id="4808449224298348341">මුද්‍රණ කාර්යය <ph name="DOCUMENT_TITLE" /> අවලංගු කරන ලදී</translation>
 <translation id="4890353053343094602">වහාම අලුත් එකක් තෝරන්න</translation>
 <translation id="4932733599132424254">දිනය</translation>
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb
index cdc62d0..86611ca2 100644
--- a/chromeos/strings/chromeos_strings_sk.xtb
+++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> z <ph name="TOTAL_PAGE_NUMBER" />. Tlačovú úlohu zrušíte stlačením klávesa Enter.</translation>
 <translation id="467510802200863975">Heslá sa nezhodujú</translation>
 <translation id="4731797938093519117">Rodičovský prístup</translation>
+<translation id="4773299976671772492">Zastavené</translation>
 <translation id="4808449224298348341">Bola zrušená tlačová úloha <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Okamžite si zvoľte nové heslo</translation>
 <translation id="4932733599132424254">Dátum</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb
index a813f12..3062ef1 100644
--- a/chromeos/strings/chromeos_strings_sl.xtb
+++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> od <ph name="TOTAL_PAGE_NUMBER" />. Pritisnite tipko Enter, če želite preklicati tiskalno opravilo.</translation>
 <translation id="467510802200863975">Gesli se ne ujemata</translation>
 <translation id="4731797938093519117">Starševski dostop</translation>
+<translation id="4773299976671772492">Ustavljeno</translation>
 <translation id="4808449224298348341">Preklicano tiskalno opravilo za dokument <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Takoj izberite novo</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb
index 80dcb895..6ed3e05 100644
--- a/chromeos/strings/chromeos_strings_sq.xtb
+++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> nga <ph name="TOTAL_PAGE_NUMBER" />. Shtyp Enter për të anuluar printimin.</translation>
 <translation id="467510802200863975">Fjalëkalimet nuk përputhen</translation>
 <translation id="4731797938093519117">Qasja e prindit</translation>
+<translation id="4773299976671772492">Ndaloi</translation>
 <translation id="4808449224298348341">U anulua printimi i "<ph name="DOCUMENT_TITLE" />"</translation>
 <translation id="4890353053343094602">Zgjidh një të re menjëherë</translation>
 <translation id="4932733599132424254">Data</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb
index c64ac20..92573b6 100644
--- a/chromeos/strings/chromeos_strings_sr-Latn.xtb
+++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> od <ph name="TOTAL_PAGE_NUMBER" />. Pritisnite taster Enter da biste otkazali zadatak štampanja.</translation>
 <translation id="467510802200863975">Lozinke se ne podudaraju</translation>
 <translation id="4731797938093519117">Roditeljski pristup</translation>
+<translation id="4773299976671772492">Zaustavljeno je</translation>
 <translation id="4808449224298348341">Otkazan je zadatak štampanja <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Odmah odaberite novu</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index 98e86b9..77f690f 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> од <ph name="TOTAL_PAGE_NUMBER" />. Притисните тастер Enter да бисте отказали задатак штампања.</translation>
 <translation id="467510802200863975">Лозинке се не подударају</translation>
 <translation id="4731797938093519117">Родитељски приступ</translation>
+<translation id="4773299976671772492">Заустављено је</translation>
 <translation id="4808449224298348341">Отказан је задатак штампања <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Одмах одаберите нову</translation>
 <translation id="4932733599132424254">Датум</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index 7f2be74c..51059860 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> av <ph name="TOTAL_PAGE_NUMBER" />. Tryck på retur för att avbryta utskriftsjobbet.</translation>
 <translation id="467510802200863975">Lösenorden matchar inte</translation>
 <translation id="4731797938093519117">Föräldraåtkomst</translation>
+<translation id="4773299976671772492">Har stoppats</translation>
 <translation id="4808449224298348341">Utskriftsjobbet <ph name="DOCUMENT_TITLE" /> har avbrutits</translation>
 <translation id="4890353053343094602">Välj ett nytt omedelbart</translation>
 <translation id="4932733599132424254">Datum</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb
index 6b21d2961..10db181 100644
--- a/chromeos/strings/chromeos_strings_sw.xtb
+++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> kati ya <ph name="TOTAL_PAGE_NUMBER" />. Bonyeza 'Enter' ili ughairi kazi ya kuchapisha.</translation>
 <translation id="467510802200863975">Manenosiri hayalingani</translation>
 <translation id="4731797938093519117">Idhini ya mzazi</translation>
+<translation id="4773299976671772492">Imesimamishwa</translation>
 <translation id="4808449224298348341">Kazi ya kuchapisha ya <ph name="DOCUMENT_TITLE" /> ilighairiwa</translation>
 <translation id="4890353053343094602">Chagua nenosiri jipya mara moja</translation>
 <translation id="4932733599132424254">Tarehe</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb
index 513919e1..92c15ad 100644
--- a/chromeos/strings/chromeos_strings_ta.xtb
+++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. அச்சுப் பணியை ரத்துசெய்ய என்ட்டர் விசையை அழுத்தவும்.</translation>
 <translation id="467510802200863975">கடவுச்சொற்கள் பொருந்தவில்லை</translation>
 <translation id="4731797938093519117">பெற்றோர் அணுகல்</translation>
+<translation id="4773299976671772492">நிறுத்தப்பட்டது</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> அச்சுப் பணி ரத்துசெய்யப்பட்டது</translation>
 <translation id="4890353053343094602">புதிய கடவுச்சொல்லை உடனே தேர்ந்தெடுக்கவும்</translation>
 <translation id="4932733599132424254">தேதி</translation>
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
index 67fa8c9..9ec3bb8 100644
--- a/chromeos/strings/chromeos_strings_te.xtb
+++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="TOTAL_PAGE_NUMBER" />లో <ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />. ప్రింట్ టాస్క్‌ను రద్దు చేయడానికి ఎంటర్ నొక్కండి.</translation>
 <translation id="467510802200863975">పాస్‌వర్డ్‌లు సరిపోలడం లేదు</translation>
 <translation id="4731797938093519117">తల్లి/తండ్రి యాక్సెస్</translation>
+<translation id="4773299976671772492">ఆపివేయబడింది</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> ప్రింట్ టాస్క్ రద్దు చేయబడింది</translation>
 <translation id="4890353053343094602">వెంటనే ఒక కొత్త దానిని ఎంచుకోండి</translation>
 <translation id="4932733599132424254">తేదీ</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb
index 05a6f49..49b4630 100644
--- a/chromeos/strings/chromeos_strings_th.xtb
+++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> จาก <ph name="TOTAL_PAGE_NUMBER" /> หน้า กด Enter เพื่อยกเลิกงานพิมพ์</translation>
 <translation id="467510802200863975">รหัสผ่านไม่ตรงกัน</translation>
 <translation id="4731797938093519117">การเข้าถึงของผู้ปกครอง</translation>
+<translation id="4773299976671772492">หยุดแล้ว</translation>
 <translation id="4808449224298348341">ยกเลิกงานพิมพ์ <ph name="DOCUMENT_TITLE" /> แล้ว</translation>
 <translation id="4890353053343094602">อย่ารอช้า รีบเลือกรหัสผ่านใหม่</translation>
 <translation id="4932733599132424254">วันที่</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index 4cea9a6..60b1208 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> Yazdırma işini iptal etmek için enter tuşuna basın.</translation>
 <translation id="467510802200863975">Şifreler eşleşmiyor</translation>
 <translation id="4731797938093519117">Ebeveyn erişimi</translation>
+<translation id="4773299976671772492">Durduruldu</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> yazdırma işi iptal edildi</translation>
 <translation id="4890353053343094602">Hemen yeni bir tane seçin</translation>
 <translation id="4932733599132424254">Tarih</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb
index 662f88d..3836c79 100644
--- a/chromeos/strings/chromeos_strings_uk.xtb
+++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> з <ph name="TOTAL_PAGE_NUMBER" />. Натисніть Enter, щоб скасувати завдання друку.</translation>
 <translation id="467510802200863975">Паролі не збігаються</translation>
 <translation id="4731797938093519117">Батьківський доступ</translation>
+<translation id="4773299976671772492">Зупинено</translation>
 <translation id="4808449224298348341">Завдання друку "<ph name="DOCUMENT_TITLE" />" скасовано</translation>
 <translation id="4890353053343094602">Негайно виберіть новий</translation>
 <translation id="4932733599132424254">Дата</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb
index b4064f48..5a8ab94 100644
--- a/chromeos/strings/chromeos_strings_ur.xtb
+++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576">‏<ph name="DOCUMENT_TITLE" />، <ph name="PRINTER_NAME" />، <ph name="CREATION_TIME" />، <ph name="TOTAL_PAGE_NUMBER" /> میں سے <ph name="PRINTED_PAGE_NUMBER" />۔ براہ کرم پرنٹ جاب منسوخ کرنے کے لیے enter دبائیں۔</translation>
 <translation id="467510802200863975">پاس ورڈز مماثل نہیں ہیں</translation>
 <translation id="4731797938093519117">والدین کی رسائی</translation>
+<translation id="4773299976671772492">روک دیا گیا</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> پرنٹ جاب منسوخ کر دی گئی</translation>
 <translation id="4890353053343094602">فوری طور پر نیا پاس ورڈ منتخب کریں</translation>
 <translation id="4932733599132424254">تاریخ</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb
index 47ed58ab..fd16d03c 100644
--- a/chromeos/strings/chromeos_strings_uz.xtb
+++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Chop etilishini bekor qilish uchun Enter tugmasini bosing.</translation>
 <translation id="467510802200863975">Parollaringiz mos kelmadi</translation>
 <translation id="4731797938093519117">Ota-ona kirishi</translation>
+<translation id="4773299976671772492">To‘xtatildi</translation>
 <translation id="4808449224298348341">Chop etilishi bekor qilindi: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Tezda yangi parol tanlang</translation>
 <translation id="4932733599132424254">Sana</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb
index b28be33..9991694 100644
--- a/chromeos/strings/chromeos_strings_vi.xtb
+++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Hãy nhấn để hủy lệnh in.</translation>
 <translation id="467510802200863975">Mật khẩu không khớp</translation>
 <translation id="4731797938093519117">Quyền truy cập của cha mẹ</translation>
+<translation id="4773299976671772492">Đã dừng</translation>
 <translation id="4808449224298348341">Đã hủy lệnh in <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Chọn ngay một mật khẩu mới</translation>
 <translation id="4932733599132424254">Ngày Tháng</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb
index 2d24be7..c8f8fbb2 100644
--- a/chromeos/strings/chromeos_strings_zh-CN.xtb
+++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />,<ph name="PRINTER_NAME" />,<ph name="CREATION_TIME" />,已打印 <ph name="PRINTED_PAGE_NUMBER" /> 页,共 <ph name="TOTAL_PAGE_NUMBER" /> 页。按 Enter 键即可取消这项打印任务。</translation>
 <translation id="467510802200863975">输入的两个密码不相同</translation>
 <translation id="4731797938093519117">家长访问</translation>
+<translation id="4773299976671772492">已停止</translation>
 <translation id="4808449224298348341">已取消打印任务“<ph name="DOCUMENT_TITLE" />”</translation>
 <translation id="4890353053343094602">请立即设置一个新密码</translation>
 <translation id="4932733599132424254">日期</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index 1694816..fc3525d 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />、<ph name="PRINTER_NAME" />、<ph name="CREATION_TIME" />,印咗 <ph name="PRINTED_PAGE_NUMBER" /> 頁,總共有 <ph name="TOTAL_PAGE_NUMBER" /> 頁。㩒一下 Enter 鍵就可以取消列印工作。</translation>
 <translation id="467510802200863975">密碼不相符</translation>
 <translation id="4731797938093519117">家長存取</translation>
+<translation id="4773299976671772492">已停止</translation>
 <translation id="4808449224298348341">取消咗列印工作 <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">立即選擇新密碼</translation>
 <translation id="4932733599132424254">日期</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index 73866ec..1583d1e 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />,<ph name="PRINTER_NAME" />,<ph name="CREATION_TIME" />,已列印 <ph name="PRINTED_PAGE_NUMBER" /> 頁 (共 <ph name="TOTAL_PAGE_NUMBER" /> 頁)。按下 Enter 鍵即可取消列印工作。</translation>
 <translation id="467510802200863975">密碼不相符</translation>
 <translation id="4731797938093519117">家長存取</translation>
+<translation id="4773299976671772492">已停止</translation>
 <translation id="4808449224298348341">已取消列印工作「<ph name="DOCUMENT_TITLE" />」</translation>
 <translation id="4890353053343094602">立即選擇新密碼</translation>
 <translation id="4932733599132424254">日期</translation>
diff --git a/chromeos/strings/chromeos_strings_zu.xtb b/chromeos/strings/chromeos_strings_zu.xtb
index 96225df..0225029 100644
--- a/chromeos/strings/chromeos_strings_zu.xtb
+++ b/chromeos/strings/chromeos_strings_zu.xtb
@@ -44,6 +44,7 @@
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> kwangu-<ph name="TOTAL_PAGE_NUMBER" /> Cindezela u-enter ukuze ukhansele umsebenzi wokuphrinta.</translation>
 <translation id="467510802200863975">Amaphasiwedi awafani</translation>
 <translation id="4731797938093519117">Ukufinyelela komzali</translation>
+<translation id="4773299976671772492">Imisiwe</translation>
 <translation id="4808449224298348341">Umsebenzi wokuphrinta i-<ph name="DOCUMENT_TITLE" /> ukhanseliwe</translation>
 <translation id="4890353053343094602">Khetha elisha elilodwa ngokushesha</translation>
 <translation id="4932733599132424254">Idethi</translation>
diff --git a/components/arc/session/arc_vm_client_adapter.cc b/components/arc/session/arc_vm_client_adapter.cc
index 87ef947..4c3484d8 100644
--- a/components/arc/session/arc_vm_client_adapter.cc
+++ b/components/arc/session/arc_vm_client_adapter.cc
@@ -8,6 +8,7 @@
 #include <sys/un.h>
 #include <time.h>
 
+#include <deque>
 #include <set>
 #include <utility>
 #include <vector>
@@ -348,6 +349,84 @@
   return true;
 }
 
+// Decodes a job name that may have "_2d" e.g. |kArcCreateDataJobName|
+// and returns a decoded string.
+std::string DecodeJobName(const std::string& raw_job_name) {
+  constexpr const char* kFind = "_2d";
+  std::string decoded(raw_job_name);
+  base::ReplaceSubstringsAfterOffset(&decoded, 0, kFind, "-");
+  return decoded;
+}
+
+enum class UpstartOperation {
+  JOB_START = 0,
+  JOB_STOP,
+};
+
+struct JobDesc {
+  std::string job_name;
+  UpstartOperation operation;
+  std::vector<std::string> environment;
+};
+
+void OnConfigureUpstartJobs(std::deque<JobDesc> jobs,
+                            chromeos::VoidDBusMethodCallback callback,
+                            bool result);
+
+// Starts or stops a job in |jobs| one by one. If starting a job fails, the
+// whole operation is aborted and the |callback| is immediately called with
+// false. Errors on stopping a job is just ignored with some logs. Once all jobs
+// are successfully processed, |callback| is called with true.
+void ConfigureUpstartJobs(std::deque<JobDesc> jobs,
+                          chromeos::VoidDBusMethodCallback callback) {
+  if (jobs.empty()) {
+    std::move(callback).Run(true);
+    return;
+  }
+
+  const auto& job_name = jobs.front().job_name;
+  const auto& operation = jobs.front().operation;
+  const auto& environment = jobs.front().environment;
+
+  VLOG(1) << (operation == UpstartOperation::JOB_START ? "Starting "
+                                                       : "Stopping ")
+          << DecodeJobName(job_name);
+
+  auto wrapped_callback = base::BindOnce(&OnConfigureUpstartJobs,
+                                         std::move(jobs), std::move(callback));
+  switch (operation) {
+    case UpstartOperation::JOB_START:
+      chromeos::UpstartClient::Get()->StartJob(job_name, environment,
+                                               std::move(wrapped_callback));
+      break;
+    case UpstartOperation::JOB_STOP:
+      chromeos::UpstartClient::Get()->StopJob(job_name, environment,
+                                              std::move(wrapped_callback));
+      break;
+  }
+}
+
+// Called when the Upstart operation started in ConfigureUpstartJobs is
+// done. Handles the fatal error (if any) and then starts the next job.
+void OnConfigureUpstartJobs(std::deque<JobDesc> jobs,
+                            chromeos::VoidDBusMethodCallback callback,
+                            bool result) {
+  const std::string job_name = DecodeJobName(jobs.front().job_name);
+  const bool is_start = (jobs.front().operation == UpstartOperation::JOB_START);
+
+  if (!result && is_start) {
+    LOG(ERROR) << "Failed to start " << job_name;
+    // TODO(yusukes): Record UMA for this case.
+    std::move(callback).Run(false);
+    return;
+  }
+
+  VLOG(1) << job_name
+          << (is_start ? " started" : (result ? " stopped " : " not running?"));
+  jobs.pop_front();
+  ConfigureUpstartJobs(std::move(jobs), std::move(callback));
+}
+
 }  // namespace
 
 class ArcVmClientAdapter : public ArcClientAdapter,
@@ -490,112 +569,28 @@
 
   void OnIsDevMode(chromeos::VoidDBusMethodCallback callback,
                    bool is_dev_mode) {
-    VLOG(1) << "Starting arcvm-per-board-features";
-    // Note: the Upstart job is a task, and the callback for the start request
-    // won't be called until the task finishes. When the callback is called with
-    // true, it is ensured that the per-board features files exist.
-    chromeos::UpstartClient::Get()->StartJob(
-        kArcVmPerBoardFeaturesJobName, /*environment=*/{},
-        base::BindOnce(&ArcVmClientAdapter::OnArcVmPerBoardFeaturesStarted,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
     is_dev_mode_ = is_dev_mode;
-  }
+    std::deque<JobDesc> jobs{
+        // Note: the first Upstart job is a task, and the callback for the start
+        // request won't be called until the task finishes. When the callback is
+        // called with true, it is ensured that the per-board features files
+        // exist.
+        JobDesc{kArcVmPerBoardFeaturesJobName, UpstartOperation::JOB_START, {}},
 
-  void OnArcVmPerBoardFeaturesStarted(chromeos::VoidDBusMethodCallback callback,
-                                      bool result) {
-    if (!result) {
-      LOG(ERROR) << "Failed to start arcvm-per-board-features";
-      // TODO(yusukes): Record UMA for this case.
-      std::move(callback).Run(result);
-      return;
-    }
-    // Make sure to kill a stale arcvm-server-proxy job (if any).
-    chromeos::UpstartClient::Get()->StopJob(
-        kArcVmServerProxyJobName, /*environment=*/{},
-        base::BindOnce(&ArcVmClientAdapter::OnArcVmServerProxyJobStopped,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
-  }
-
-  void OnArcVmServerProxyJobStopped(chromeos::VoidDBusMethodCallback callback,
-                                    bool result) {
-    // Ignore |result| since it can be false when the proxy job has already been
-    // stopped for other reasons, but it's not considered as an error.
-    VLOG(1) << "OnArcVmServerProxyJobStopped: job "
-            << (result ? "stopped" : "not running?");
-
-    // Make sure to stop arc-keymasterd if it's already started. Always move
-    // |callback| as is and ignore |result|.
-    chromeos::UpstartClient::Get()->StopJob(
-        kArcKeymasterJobName, /*environment=*/{},
-        base::BindOnce(&ArcVmClientAdapter::OnArcKeymasterJobStopped,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
-  }
-
-  void OnArcKeymasterJobStopped(chromeos::VoidDBusMethodCallback callback,
-                                bool result) {
-    VLOG(1) << "OnArcKeymasterJobStopped: arc-keymasterd job "
-            << (result ? "stopped" : "not running?");
-
-    // Start arc-keymasterd. Always move |callback| as is and ignore |result|.
-    VLOG(1) << "Starting arc-keymasterd";
-    chromeos::UpstartClient::Get()->StartJob(
-        kArcKeymasterJobName, /*environment=*/{},
-        base::BindOnce(&ArcVmClientAdapter::OnArcKeymasterJobStarted,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
-  }
-
-  void OnArcKeymasterJobStarted(chromeos::VoidDBusMethodCallback callback,
-                                bool result) {
-    if (!result) {
-      LOG(ERROR) << "Failed to start arc-keymasterd job";
-      std::move(callback).Run(false);
-      return;
-    }
-
-    // Kill a stale arc-sensor-service job
-    chromeos::UpstartClient::Get()->StopJob(
-        kArcSensorServiceJobName, /*environment=*/{},
-        base::BindOnce(&ArcVmClientAdapter::OnArcSensorServiceStopped,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
-  }
-
-  void OnArcSensorServiceStopped(chromeos::VoidDBusMethodCallback callback,
-                                 bool result) {
-    VLOG(1) << "OnArcSensorServiceStopped: job "
-            << (result ? "stopped" : "not running?");
-
-    VLOG(1) << "Starting arc-sensor-service";
-    chromeos::UpstartClient::Get()->StartJob(
-        kArcSensorServiceJobName, /*environment=*/{},
-        base::BindOnce(&ArcVmClientAdapter::OnArcSensorServiceStarted,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
-  }
-
-  void OnArcSensorServiceStarted(chromeos::VoidDBusMethodCallback callback,
-                                 bool result) {
-    if (!result) {
-      LOG(ERROR) << "Failed to start arc-sensor-service job";
-      std::move(callback).Run(false);
-      return;
-    }
-
-    // Kill a stale arcvm-boot-notification-server job
-    chromeos::UpstartClient::Get()->StopJob(
-        kArcVmBootNotificationServerJobName, /*environment=*/{},
-        base::BindOnce(
-            &ArcVmClientAdapter::OnArcVmBootNotificationServerStopped,
-            weak_factory_.GetWeakPtr(), std::move(callback)));
-  }
-
-  void OnArcVmBootNotificationServerStopped(
-      chromeos::VoidDBusMethodCallback callback,
-      bool result) {
-    VLOG(1) << "OnArcVmBootNotificationServerStopped: job "
-            << (result ? "stopped" : "not running?");
-
-    VLOG(1) << "Starting arcvm-boot-notification-server";
-    chromeos::UpstartClient::Get()->StartJob(
-        kArcVmBootNotificationServerJobName, /*environment=*/{},
+        JobDesc{kArcVmServerProxyJobName, UpstartOperation::JOB_STOP, {}},
+        JobDesc{kArcKeymasterJobName, UpstartOperation::JOB_STOP, {}},
+        JobDesc{kArcKeymasterJobName, UpstartOperation::JOB_START, {}},
+        JobDesc{kArcSensorServiceJobName, UpstartOperation::JOB_STOP, {}},
+        JobDesc{kArcSensorServiceJobName, UpstartOperation::JOB_START, {}},
+        JobDesc{kArcVmBootNotificationServerJobName,
+                UpstartOperation::JOB_STOP,
+                {}},
+        JobDesc{kArcVmBootNotificationServerJobName,
+                UpstartOperation::JOB_START,
+                {}},
+    };
+    ConfigureUpstartJobs(
+        std::move(jobs),
         base::BindOnce(
             &ArcVmClientAdapter::OnArcVmBootNotificationServerStarted,
             weak_factory_.GetWeakPtr(), std::move(callback)));
@@ -605,11 +600,10 @@
       chromeos::VoidDBusMethodCallback callback,
       bool result) {
     if (!result) {
-      LOG(ERROR) << "Failed to start arcvm-boot-notification-server job";
+      LOG(ERROR) << "ConfigureUpstartJobs failed";
       std::move(callback).Run(false);
       return;
     }
-
     base::ThreadPool::PostTaskAndReplyWithResult(
         FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE},
         base::BindOnce(&IsArcVmBootNotificationServerListening),
@@ -639,29 +633,17 @@
       std::move(callback).Run(false);
       return;
     }
-    VLOG(1) << "Starting arcvm-server-proxy";
-    chromeos::UpstartClient::Get()->StartJob(
-        kArcVmServerProxyJobName, /*environment=*/{},
-        base::BindOnce(&ArcVmClientAdapter::OnArcVmServerProxyJobStarted,
-                       weak_factory_.GetWeakPtr(), std::move(params),
-                       std::move(callback)));
-  }
-
-  void OnArcVmServerProxyJobStarted(UpgradeParams params,
-                                    chromeos::VoidDBusMethodCallback callback,
-                                    bool result) {
-    if (!result) {
-      LOG(ERROR) << "Failed to start arcvm-server-proxy job";
-      std::move(callback).Run(false);
-      return;
-    }
-
-    VLOG(1) << "Starting arc-create-data";
-    const std::string account_id =
+    std::vector<std::string> environment = {
+        "CHROMEOS_USER=" +
         cryptohome::CreateAccountIdentifierFromIdentification(cryptohome_id_)
-            .account_id();
-    chromeos::UpstartClient::Get()->StartJob(
-        kArcCreateDataJobName, {"CHROMEOS_USER=" + account_id},
+            .account_id()};
+    std::deque<JobDesc> jobs{
+        JobDesc{kArcVmServerProxyJobName, UpstartOperation::JOB_START, {}},
+        JobDesc{kArcCreateDataJobName, UpstartOperation::JOB_START,
+                std::move(environment)},
+    };
+    ConfigureUpstartJobs(
+        std::move(jobs),
         base::BindOnce(&ArcVmClientAdapter::OnArcCreateDataJobStarted,
                        weak_factory_.GetWeakPtr(), std::move(params),
                        std::move(callback)));
@@ -671,11 +653,10 @@
                                  chromeos::VoidDBusMethodCallback callback,
                                  bool result) {
     if (!result) {
-      LOG(ERROR) << "Failed to start arc-create-data job";
+      LOG(ERROR) << "ConfigureUpstartJobs (on upgrading ARCVM) failed";
       std::move(callback).Run(false);
       return;
     }
-
     VLOG(2) << "Checking file system status";
     base::ThreadPool::PostTaskAndReplyWithResult(
         FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE},
diff --git a/components/autofill/core/browser/data_model/autofill_profile_comparator.cc b/components/autofill/core/browser/data_model/autofill_profile_comparator.cc
index e0d7eb5..9d025eec9 100644
--- a/components/autofill/core/browser/data_model/autofill_profile_comparator.cc
+++ b/components/autofill/core/browser/data_model/autofill_profile_comparator.cc
@@ -17,6 +17,7 @@
 #include "components/autofill/core/browser/address_rewriter.h"
 #include "components/autofill/core/browser/autofill_data_util.h"
 #include "components/autofill/core/browser/autofill_metrics.h"
+#include "components/autofill/core/browser/data_model/autofill_structured_address_utils.h"
 #include "components/autofill/core/browser/geo/autofill_country.h"
 #include "components/autofill/core/browser/geo/state_names.h"
 #include "components/autofill/core/common/autofill_clock.h"
@@ -333,8 +334,7 @@
   // structure should be possible.
   // * One name is a variant of the other. In this scenario, use the non-variant
   // name. Note, p1 is the newer profile.
-  if (base::FeatureList::IsEnabled(
-          features::kAutofillEnableSupportForMoreStructureInNames)) {
+  if (structured_address::StructuredNamesEnabled()) {
     // First, set info to the original profile.
     *name_info = p2.GetNameInfo();
     // If the name of the |p1| is empty, just keep the state of p2.
@@ -1007,6 +1007,12 @@
     return true;
   }
 
+  // If the two names are just a permutation of each other, they are mergeable
+  // for structured names.
+  if (structured_address::StructuredNamesEnabled() &&
+      structured_address::AreStringTokenEquivalent(full_name_1, full_name_2))
+    return true;
+
   base::string16 canon_full_name_1 = NormalizeForComparison(full_name_1);
   base::string16 canon_full_name_2 = NormalizeForComparison(full_name_2);
 
diff --git a/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc b/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc
index 195bf050..88cc560 100644
--- a/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc
+++ b/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc
@@ -752,6 +752,57 @@
   EXPECT_FALSE(comparator_.AreMergeable(p, not_mergeable_by_phone_number));
 }
 
+TEST_P(AutofillProfileComparatorTest, MergeStructuredNames_WithPermutation) {
+  // This test is only applicable to structured names.
+  if (!StructuredNames())
+    return;
+
+  // The first name has an observed structure.
+  NameInfo name1;
+  name1.SetRawInfoWithVerificationStatus(
+      NAME_FIRST, UTF8ToUTF16("Thomas"),
+      autofill::structured_address::VerificationStatus::kObserved);
+  name1.SetRawInfoWithVerificationStatus(
+      NAME_MIDDLE, UTF8ToUTF16("A."),
+      autofill::structured_address::VerificationStatus::kObserved);
+  name1.SetRawInfoWithVerificationStatus(
+      NAME_LAST, UTF8ToUTF16("Anderson"),
+      autofill::structured_address::VerificationStatus::kObserved);
+  AutofillProfile profile1 = CreateProfileWithName(name1);
+  profile1.FinalizeAfterImport();
+
+  EXPECT_EQ(profile1.GetRawInfo(NAME_FULL), UTF8ToUTF16("Thomas A. Anderson"));
+  EXPECT_EQ(profile1.GetVerificationStatus(NAME_FULL),
+            autofill::structured_address::VerificationStatus::kFormatted);
+
+  // The second name has an observed full name that uses a custom formatting.
+  NameInfo name2;
+  name2.SetRawInfoWithVerificationStatus(
+      NAME_FULL, UTF8ToUTF16("Anderson, Thomas A."),
+      autofill::structured_address::VerificationStatus::kObserved);
+  AutofillProfile profile2 = CreateProfileWithName(name2);
+  profile2.FinalizeAfterImport();
+
+  NameInfo merged_name;
+  comparator_.MergeNames(profile1, profile2, &merged_name);
+
+  // The merged name should maintain the structure but use the observation of
+  // the custom-formatted full name.
+  EXPECT_EQ(merged_name.GetRawInfo(NAME_FULL),
+            UTF8ToUTF16("Anderson, Thomas A."));
+  EXPECT_EQ(merged_name.GetVerificationStatus(NAME_FULL),
+            autofill::structured_address::VerificationStatus::kObserved);
+  EXPECT_EQ(merged_name.GetRawInfo(NAME_FIRST), UTF8ToUTF16("Thomas"));
+  EXPECT_EQ(merged_name.GetVerificationStatus(NAME_FIRST),
+            autofill::structured_address::VerificationStatus::kObserved);
+  EXPECT_EQ(merged_name.GetRawInfo(NAME_MIDDLE), UTF8ToUTF16("A."));
+  EXPECT_EQ(merged_name.GetVerificationStatus(NAME_MIDDLE),
+            autofill::structured_address::VerificationStatus::kObserved);
+  EXPECT_EQ(merged_name.GetRawInfo(NAME_LAST), UTF8ToUTF16("Anderson"));
+  EXPECT_EQ(merged_name.GetVerificationStatus(NAME_LAST),
+            autofill::structured_address::VerificationStatus::kObserved);
+}
+
 TEST_P(AutofillProfileComparatorTest, MergeNames) {
   NameInfo name1;
   name1.SetRawInfo(NAME_FULL, UTF8ToUTF16("John Quincy Public"));
diff --git a/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc b/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc
index 636336e6..e6392f9 100644
--- a/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc
+++ b/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc
@@ -8,6 +8,7 @@
 
 #include "base/bind.h"
 #include "base/bind_helpers.h"
+#include "base/feature_list.h"
 #include "build/build_config.h"
 #include "components/autofill/core/common/autofill_prefs.h"
 #include "components/prefs/pref_service.h"
@@ -16,6 +17,15 @@
 #include "components/sync/driver/sync_user_settings.h"
 #include "google_apis/gaia/google_service_auth_error.h"
 
+namespace {
+
+#if defined(OS_ANDROID)
+constexpr base::Feature kWalletRequiresFirstSyncSetupComplete{
+    "WalletRequiresFirstSyncSetupComplete", base::FEATURE_ENABLED_BY_DEFAULT};
+#endif
+
+}  // namespace
+
 namespace browser_sync {
 
 AutofillWalletModelTypeController::AutofillWalletModelTypeController(
@@ -90,10 +100,13 @@
       pref_service_->GetBoolean(autofill::prefs::kAutofillCreditCardEnabled) &&
       !sync_service_->GetAuthError().IsPersistentError();
 #if defined(OS_ANDROID)
-  // On Android, it's also required that the initial Sync setup is complete
-  // (i.e. the user has previously opted in to Sync-the-feature, even if it's
-  // not enabled right now).
-  preconditions_met &= sync_service_->GetUserSettings()->IsFirstSetupComplete();
+  if (base::FeatureList::IsEnabled(kWalletRequiresFirstSyncSetupComplete)) {
+    // On Android, it's also required that the initial Sync setup is complete
+    // (i.e. the user has previously opted in to Sync-the-feature, even if it's
+    // not enabled right now).
+    preconditions_met &=
+        sync_service_->GetUserSettings()->IsFirstSetupComplete();
+  }
 #endif
   return preconditions_met ? PreconditionState::kPreconditionsMet
                            : PreconditionState::kMustStopAndClearData;
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
index 20ddbbf..beafceb 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigasie is geblokkeer: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Toegelaat</translation>
 <translation id="429312253194641664">'n Werf speel tans media</translation>
+<translation id="4336434711095810371">Vee alle data uit</translation>
 <translation id="4433925000917964731">Ligte bladsy deur Google verskaf</translation>
 <translation id="4434045419905280838">Opspringers en herleidings</translation>
 <translation id="445467742685312942">Laat werwe toe om beskermde inhoud te speel</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Incognito-oortjie</translation>
 <translation id="5300589172476337783">Wys</translation>
 <translation id="5301954838959518834">OK, het dit</translation>
-<translation id="5307446750509046227">Vee werfberging uit</translation>
 <translation id="5313967007315987356">Voeg werf by</translation>
 <translation id="5317780077021120954">Berg</translation>
 <translation id="5335288049665977812">Laat werwe toe om JavaScript te gebruik (aanbeveel)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Vee uit</translation>
 <translation id="8300705686683892304">Bestuur deur program</translation>
 <translation id="8372893542064058268">Laat agtergrondsinkronisering vir 'n spesifieke werf toe.</translation>
+<translation id="8376384591331888629">Insluitend derdeparty-webkoekies op hierdie werf</translation>
 <translation id="83792324527827022">'n Werf gebruik tans jou kamera en mikrofoon</translation>
 <translation id="8380167699614421159">Hierdie werf wys indringerige of misleidende advertensies</translation>
 <translation id="8394832520002899662">Tik om na werf terug te keer</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Blokkeer JavaScript vir 'n spesifieke werf.</translation>
 <translation id="8816026460808729765">Blokkeer werwe om toegang tot sensors kry</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Berging</translation>
 <translation id="8926666909099850184">NFC is af vir hierdie toestel. Skakel dit aan in <ph name="BEGIN_LINK" />Android-instellings<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Hierdie werf maak vinnig oop en reageer vinnig vir die meeste mense</translation>
 <translation id="8941729603749328384">www.voorbeeld.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Skakel toestemmings vir <ph name="APP_NAME" /> in <ph name="BEGIN_LINK" />Android-instellings<ph name="END_LINK" /> aan.</translation>
 <translation id="945632385593298557">Toegang tot jou mikrofoon</translation>
 <translation id="965817943346481315">Blokkeer as werf indringerige of misleidende advertensies wys (aanbeveel)</translation>
+<translation id="967624055006145463">Data geberg</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
index 2176b06..fe1d7ea 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">ዳሰሳ ታግዷል፦ <ph name="URL" /></translation>
 <translation id="4278390842282768270">ተፈቅዷል</translation>
 <translation id="429312253194641664">አንድ ጣቢያ ሚዲያን በማጫወት ላይ ነው</translation>
+<translation id="4336434711095810371">ሁሉንም ውሂብ አጽዳ</translation>
 <translation id="4433925000917964731">ቀላል ገጹ በGoogle ቀርቧል።</translation>
 <translation id="4434045419905280838">ብቅ-ባዮች እና አቅጣጫ ማዞሮች</translation>
 <translation id="445467742685312942">ጣቢያዎች የተጠበቀ ይዘትን እንዲያጫውት ይፍቀዱ</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ማንነት የማያሳውቅ ትር</translation>
 <translation id="5300589172476337783">አሳይ</translation>
 <translation id="5301954838959518834">እሺ፣ ገባኝ</translation>
-<translation id="5307446750509046227">የጣቢያ ማከማቻን አጽዳ</translation>
 <translation id="5313967007315987356">ጣቢያ አክል</translation>
 <translation id="5317780077021120954">አስቀምጥ</translation>
 <translation id="5335288049665977812">ጣቢያዎች ጃቫስክሪፕትን እንዲያሄዱ ፍቀድላቸው (የሚመከር)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">ሰርዝ</translation>
 <translation id="8300705686683892304">በመተግበሪያ የሚተዳደር</translation>
 <translation id="8372893542064058268">ለአንድ የተወሰነ ጣቢያ የጀርባ ስምረትን ይፍቀዱ።</translation>
+<translation id="8376384591331888629">በዚህ ጣቢያ ላይ የሶስተኛ ወገን ኩኪዎችን ጨምሮ</translation>
 <translation id="83792324527827022">አንድ ጣቢያ የእርስዎን ካሜራ እና ማይክሮፎን እየተጠቀመ ነው</translation>
 <translation id="8380167699614421159">ይህ ጣቢያ ረባሽ ወይም አሳሳች ማስታወቂያዎችን ያሳያል</translation>
 <translation id="8394832520002899662">ወደ ጣቢያው ለመመለስ መታ ያድርጉ</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">ጃቫስክሪፕትን ለአንድ የተወሰነ ጣቢያ አግድ።</translation>
 <translation id="8816026460808729765">ጣቢያዎች ዳሳሾችን እንዳይደርሱ ያግዱ</translation>
 <translation id="8847988622838149491">ዩ ኤስ ቢ</translation>
-<translation id="885701979325669005">ማከማቻ</translation>
 <translation id="8926666909099850184">NFC ለዚህ መሣሪያ ጠፍቷል። በ<ph name="BEGIN_LINK" />Android ቅንበሮች<ph name="END_LINK" /> ውስጥ ያብሩት።</translation>
 <translation id="8929372349074745002">ይህ ጣቢያ ለአብዛኛዎቹ ሰዎች በፍጥነት ይከፍታል እና ምላሽ ይሰጣል</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">ለ <ph name="APP_NAME" /> በ <ph name="BEGIN_LINK" />Android ቅንብሮች<ph name="END_LINK" /> ውስጥ ፈቃዶችን ያብሩ።</translation>
 <translation id="945632385593298557">የእርስዎን ማይክሮፎን ይድረሱ</translation>
 <translation id="965817943346481315">ጣቢያው ረባሽ ወይም አሳሳች ማስታወቂያዎችን የሚያሳይ ከሆነ ማገድ (የሚመከር)</translation>
+<translation id="967624055006145463">የተከማቸ ውሂብ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
index 513cc68..b917228 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">التنقل محظور: <ph name="URL" /></translation>
 <translation id="4278390842282768270">منح الإذن</translation>
 <translation id="429312253194641664">تفعيل موقع إلكتروني للوسائط</translation>
+<translation id="4336434711095810371">محو جميع البيانات</translation>
 <translation id="4433925000917964731">‏نسخة خفيفة تقدِّمها Google</translation>
 <translation id="4434045419905280838">النوافذ المنبثقة وإعادة التوجيه</translation>
 <translation id="445467742685312942">السماح للمواقع الإلكترونية بتشغيل المحتوى المَحمي</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">علامة تبويب "التصفُّح المتخفي"</translation>
 <translation id="5300589172476337783">عرض</translation>
 <translation id="5301954838959518834">حسنًا</translation>
-<translation id="5307446750509046227">محو مساحة تخزين المواقع</translation>
 <translation id="5313967007315987356">إضافة موقع إلكتروني</translation>
 <translation id="5317780077021120954">حفظ</translation>
 <translation id="5335288049665977812">‏السماح للمواقع الإلكترونية بتشغيل JavaScript (موصى به)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">‏حظر JavaScript لموقع إلكتروني مُعيَّن.</translation>
 <translation id="8816026460808729765">يمكنك حظر المواقع الإلكترونية من الوصول إلى أجهزة الاستشعار.</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">التخزين</translation>
 <translation id="8926666909099850184">‏تقنية NFC غير مفعّلة على هذا الجهاز. فعّلها في<ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">يفتح هذا الموقع الإلكتروني ويستجيب بشكل سريع لدى معظم الأشخاص.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">‏فعِّل الأذونات لتطبيق <ph name="APP_NAME" /> في <ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">الدخول إلى الميكروفون</translation>
 <translation id="965817943346481315">الحظر في حال كان الموقع الإلكتروني يعرض إعلانات مضلِّلة أو غير مرغوب فيها (مُستحسَن)</translation>
+<translation id="967624055006145463">البيانات المُخزَّنة</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
index 97c74bb..92e69ad 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">নেভিগে’শ্বন অৱৰোধ কৰা আছে: <ph name="URL" /></translation>
 <translation id="4278390842282768270">অনুমতি দিয়া হৈছে</translation>
 <translation id="429312253194641664">ছাইটটোৱে মিডিয়া প্লে’ কৰি আছে</translation>
+<translation id="4336434711095810371">সকলো ডেটা মচক</translation>
 <translation id="4433925000917964731">Googleএ প্ৰদান কৰা লাইট পৃষ্ঠা</translation>
 <translation id="4434045419905280838">পপ-আপ আৰু পুনৰ নির্দেশ</translation>
 <translation id="445467742685312942">ছাইটসমূহক সুৰক্ষিত সমল প্লে' কৰিবলৈ অনুমতি দিয়ক</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ইনক’গনিট’ টেব</translation>
 <translation id="5300589172476337783">দেখুৱাওক</translation>
 <translation id="5301954838959518834">ঠিক আছে, বুজি পালোঁ</translation>
-<translation id="5307446750509046227">ছাইটৰ ষ্ট’ৰেজ মচক</translation>
 <translation id="5313967007315987356">ছাইট যোগ দিয়ক</translation>
 <translation id="5317780077021120954">ছেভ কৰক</translation>
 <translation id="5335288049665977812">JavaScript চলাবলৈ ছাইটক অনুমতি দিয়ক (চুপাৰিছ কৰা)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">কোনো নির্দিষ্ট ছাইটৰ বাবে JavaScript অৱৰোধ কৰক।</translation>
 <translation id="8816026460808729765">ছেন্সৰসমূহ এক্সেছ কৰাত ছাইটসমূহ অৱৰোধ কৰক</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ষ্ট’ৰেজ</translation>
 <translation id="8926666909099850184">এই ডিভাইচটোৰ বাবে NFC অফ কৰা আছে। ইয়াক <ph name="BEGIN_LINK" />Android ছেটিংসমূহ<ph name="END_LINK" />লৈ গৈ অন কৰক।</translation>
 <translation id="8929372349074745002">সৰহভাগ লোকৰ বাবে এই ছাইটটো খোল খায় তথা সেইটোৱে দ্ৰুতভাৱে সঁহাৰি দিয়ে</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android ছেটিংসমূহ<ph name="END_LINK" />ত <ph name="APP_NAME" />ৰ বাবে অনুমতিসমূহ অন কৰক।</translation>
 <translation id="945632385593298557">আপোনাৰ মাইক্ৰ'ফ'ন এক্সেছ কৰক</translation>
 <translation id="965817943346481315">কোনো ছাইটে অননুমোদিত বা বিভ্ৰান্তিকৰ বিজ্ঞাপন দেখুৱালে সেয়া অৱৰোধ কৰক ( চুপাৰিছ কৰা)</translation>
+<translation id="967624055006145463">ডেটা সঞ্চয় কৰা হ’ল</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb
index 8c166471..658ab21 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Naviqasiya bloklandı: <ph name="URL" /></translation>
 <translation id="4278390842282768270">İcazə verilib</translation>
 <translation id="429312253194641664">Sayt media oxudur</translation>
+<translation id="4336434711095810371">Bütün datanı silin</translation>
 <translation id="4433925000917964731">Google'un dəstəklədiyi lite səhifəsi</translation>
 <translation id="4434045419905280838">Popap və yönləndirmələr</translation>
 <translation id="445467742685312942">Saytlara qorunan kontenti oxutmağa icazə verin</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Aanonim tab</translation>
 <translation id="5300589172476337783">Göstərin</translation>
 <translation id="5301954838959518834">Ok, anladım</translation>
-<translation id="5307446750509046227">Sayt yaddaşını silin</translation>
 <translation id="5313967007315987356">Sayt əlavə edin</translation>
 <translation id="5317780077021120954">Yadda saxlayın</translation>
 <translation id="5335288049665977812">Saytlara JavaScript işlətməyə icazə verin (tövsiyə olunur)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">JavaScript'i bəzi saytlarda blok edin.</translation>
 <translation id="8816026460808729765">Saytların sensorlara girişini blok edin</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Yaddaş</translation>
 <translation id="8926666909099850184">NFC bu cihazda deaktivdir. <ph name="BEGIN_LINK" />Android Ayarlarında<ph name="END_LINK" /> onu aktiv edin.</translation>
 <translation id="8929372349074745002">Bu sayt əksər insanlar üçün sürətli açılır və işləyir</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="APP_NAME" /> üçün icazələri <ph name="BEGIN_LINK" />Android Ayarlarında<ph name="END_LINK" /> aktiv edin.</translation>
 <translation id="945632385593298557">Mikrofonunuza giriş</translation>
 <translation id="965817943346481315">Sayt inadçı və ya aldadıcı reklamlar göstərirsə, blok edin (tövsiyə olunur)</translation>
+<translation id="967624055006145463">Yadda saxlanmış data</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
index d5a0768..3d3e4d5 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Пераход па наступным адрасе заблакіраваны: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Дазволена</translation>
 <translation id="429312253194641664">Сайт прайграе мультымедыя</translation>
+<translation id="4336434711095810371">Выдаліць усе даныя</translation>
 <translation id="4433925000917964731">Старонка, спрошчаная алгарытмамі Google</translation>
 <translation id="4434045419905280838">Усплыв. вокны і перанакіраванні</translation>
 <translation id="445467742685312942">Дазволіць сайтам прайграваць абароненае змесціва</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Укладка інкогніта</translation>
 <translation id="5300589172476337783">Паказаць</translation>
 <translation id="5301954838959518834">OK</translation>
-<translation id="5307446750509046227">Ачысціць сховішча</translation>
 <translation id="5313967007315987356">Дадаванне сайта</translation>
 <translation id="5317780077021120954">Захаваць</translation>
 <translation id="5335288049665977812">Дазволіць сайтам запускаць JavaScript (рэкамендавана)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Блакіраванне JavaScript для канкрэтнага сайта.</translation>
 <translation id="8816026460808729765">Забараніць сайтам доступ да датчыкаў</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Сховішча</translation>
 <translation id="8926666909099850184">Функцыя NFC выключана на гэтай прыладзе. Уключыце яе ў <ph name="BEGIN_LINK" />Наладах Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">У большасці карыстальнікаў гэты сайт адкрываецца і працуе хутка</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Уключыце для праграмы "<ph name="APP_NAME" />" дазволы ў <ph name="BEGIN_LINK" />Наладах Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Доступ да мікрафона</translation>
 <translation id="965817943346481315">Блакіраваць, калі сайт паказвае назойлівую рэкламу або рэкламу, якая ўводзіць у зман (рэкамендуецца)</translation>
+<translation id="967624055006145463">Захаваныя даныя</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
index e134b43e..aa09708f 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Навигирането е блокирано: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Разрешено</translation>
 <translation id="429312253194641664">Сайт възпроизвежда мултимедийно съдържание</translation>
+<translation id="4336434711095810371">Изчистване на всички данни</translation>
 <translation id="4433925000917964731">Олекотена страница, предоставена от Google</translation>
 <translation id="4434045419905280838">Изскач. прозорци и пренасочвания</translation>
 <translation id="445467742685312942">Разрешаване на сайтовете да възпроизвеждат защитено съдържание</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Раздел в режим „инкогнито“</translation>
 <translation id="5300589172476337783">Показване</translation>
 <translation id="5301954838959518834">Добре, разбрах</translation>
-<translation id="5307446750509046227">Изчистване на данните</translation>
 <translation id="5313967007315987356">Добавяне на сайт</translation>
 <translation id="5317780077021120954">Запазване</translation>
 <translation id="5335288049665977812">Разрешаване на сайтовете да изпълняват JavaScript (препоръчително)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Блокиране на JavaScript за конкретен сайт.</translation>
 <translation id="8816026460808729765">Блокиране на достъпа на сайтовете до сензорите</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Хранилище</translation>
 <translation id="8926666909099850184">Функцията за NFC е изключена на това устройство. Включете я от <ph name="BEGIN_LINK" />настройките на Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">За повечето хора този сайт се отваря и реагира бързо</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Включете разрешенията за <ph name="APP_NAME" /> от <ph name="BEGIN_LINK" />настройките на Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Достъп до микрофона</translation>
 <translation id="965817943346481315">Блокиране, ако на сайта се показват натрапчиви или подвеждащи реклами (препоръчително)</translation>
+<translation id="967624055006145463">Съхранени данни</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
index 2ec1a76..746b1328 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">নেভিগেশন অবরুদ্ধ করা হয়েছে: <ph name="URL" /></translation>
 <translation id="4278390842282768270">মঞ্জুরিপ্রাপ্ত</translation>
 <translation id="429312253194641664">একটি সাইট মিডিয়া চালাচ্ছে</translation>
+<translation id="4336434711095810371">সব ডেটা মুছে ফেলুন</translation>
 <translation id="4433925000917964731">Google লাইট পৃষ্ঠা পাঠিয়েছে</translation>
 <translation id="4434045419905280838">পপ-আপ এবং রিডাইরেক্ট</translation>
 <translation id="445467742685312942">সাইটকে সুরক্ষিত কন্টেন্ট চালানোর জন্য অনুমতি দিন</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ছদ্মবেশী ট্যাব</translation>
 <translation id="5300589172476337783">দেখান</translation>
 <translation id="5301954838959518834">ঠিক আছে, বুঝেছি</translation>
-<translation id="5307446750509046227">সাইটের সেভ করা ডেটা মুছুন</translation>
 <translation id="5313967007315987356">সাইট যোগ করুন</translation>
 <translation id="5317780077021120954">সেভ করুন</translation>
 <translation id="5335288049665977812">সাইটগুলিকে JavaScript চালানোর অনুমতি দিন (প্রস্তাবিত)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">একটি নির্দিষ্ট সাইটের জন্য জাভাস্ক্রিপ্ট ব্লক করুন।</translation>
 <translation id="8816026460808729765">সেন্সর অ্যাক্সেস করা থেকে সাইটকে ব্লক করুন</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">স্টোরেজ</translation>
 <translation id="8926666909099850184">এই ডিভাইসে NFC বন্ধ আছে। <ph name="BEGIN_LINK" />Android সেটিংস<ph name="END_LINK" /> থেকে এটি চালু করুন।</translation>
 <translation id="8929372349074745002">বেশিরভাগ লোকের ক্ষেত্রে এই সাইট খুব কম সময়ের মধ্যেই খুলেও যায় এবং এখান থেকে সব রকম উত্তরও পান</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android সেটিংসে<ph name="END_LINK" /> <ph name="APP_NAME" />-এর জন্য অনুমতিগুলি চালু করুন।</translation>
 <translation id="945632385593298557">আপনার মাইক্রোফোন অ্যাক্সেস করুন</translation>
 <translation id="965817943346481315">সাইটে থাকা ব্যাঘাত সৃষ্টিকারী বা বিভ্রান্তিকর বিজ্ঞাপন ব্লক করুন (প্রস্তাবিত)</translation>
+<translation id="967624055006145463">ডেটা স্টোর করা হয়েছে</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
index ab729f25d..ca3a985 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigacija je blokirana: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Dozvoljeno</translation>
 <translation id="429312253194641664">Web lokacija reproducira medij</translation>
+<translation id="4336434711095810371">Obriši sve podatke</translation>
 <translation id="4433925000917964731">Jednostavnu stranicu omogućava Google</translation>
 <translation id="4434045419905280838">Skočni proz. i preusmjeravanja</translation>
 <translation id="445467742685312942">Dozvoljava web lokacijama da reproduciraju zaštićen sadržaj</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Anonimna kartica</translation>
 <translation id="5300589172476337783">Prikaži</translation>
 <translation id="5301954838959518834">Uredu, razumijem</translation>
-<translation id="5307446750509046227">Obriši pohranu web lok.</translation>
 <translation id="5313967007315987356">Dodajte web lokaciju</translation>
 <translation id="5317780077021120954">Sačuvaj</translation>
 <translation id="5335288049665977812">Web-lokacije mogu pokretati JavaScript (preporučeno)</translation>
@@ -228,7 +228,7 @@
 <translation id="8261506727792406068">Izbriši</translation>
 <translation id="8300705686683892304">Upravlja aplikacija</translation>
 <translation id="8372893542064058268">Dozvolite sinhronizaciju u pozadini za određenu web lokaciju.</translation>
-<translation id="8376384591331888629">Uključujući kolačiće treće strane na ovoj web-lokaciji</translation>
+<translation id="8376384591331888629">Uključujući kolačiće treće strane na ovoj web lokaciji</translation>
 <translation id="83792324527827022">Web lokacija koristi vašu kameru i mikrofon</translation>
 <translation id="8380167699614421159">Ova web lokacija prikazuje ometajuće ili obmanjujuće oglase</translation>
 <translation id="8394832520002899662">Dodirnite da se vratite na web lokaciju</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Blokiranje JavaScripta za određenu web lokaciju.</translation>
 <translation id="8816026460808729765">Blokiranje web lokacijama pristup senzorima</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Pohrana</translation>
 <translation id="8926666909099850184">NFC je isključen na ovom uređaju. Uključite ga u <ph name="BEGIN_LINK" />Postavkama Androida<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Ova web lokacija se otvara i reagira brzo kod većine korisnika</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Uključite odobrenja za aplikaciju <ph name="APP_NAME" /> u <ph name="BEGIN_LINK" />Postavkama Androida<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Pristup mikrofonu</translation>
 <translation id="965817943346481315">Blokirajte ako web lokacija prikazuje nametljive ili obmanjujuće oglase (preporučeno)</translation>
+<translation id="967624055006145463">Pohranjeni podaci</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
index cb4b318..5b1c415a 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">S'ha bloquejat la navegació: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Permès</translation>
 <translation id="429312253194641664">Un lloc web està reproduint contingut multimèdia</translation>
+<translation id="4336434711095810371">Esborra totes les dades</translation>
 <translation id="4433925000917964731">Pàgina en mode bàsic oferida per Google</translation>
 <translation id="4434045419905280838">Finestres emergents i redireccions</translation>
 <translation id="445467742685312942">Permet que els llocs web reprodueixin contingut protegit</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Pestanya d'incògnit</translation>
 <translation id="5300589172476337783">Mostra</translation>
 <translation id="5301954838959518834">D'acord</translation>
-<translation id="5307446750509046227">Esborra emmagatz. lloc</translation>
 <translation id="5313967007315987356">Afegeix un lloc web</translation>
 <translation id="5317780077021120954">Desa</translation>
 <translation id="5335288049665977812">Permet que els llocs web executin JavaScript (opció recomanada)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Suprimeix</translation>
 <translation id="8300705686683892304">Gestionats per aplicacions</translation>
 <translation id="8372893542064058268">Permet la sincronització en segon pla en un lloc concret.</translation>
+<translation id="8376384591331888629">Incloses les galetes de tercers en aquest lloc web</translation>
 <translation id="83792324527827022">Un lloc web està utilitzant la càmera i el micròfon</translation>
 <translation id="8380167699614421159">Aquest lloc web mostra anuncis intrusius o enganyosos</translation>
 <translation id="8394832520002899662">Toca per tornar al lloc web</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Bloqueja JavaScript en un lloc web concret.</translation>
 <translation id="8816026460808729765">Impedeix que els llocs web accedeixin als sensors</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Emmagatzematge</translation>
 <translation id="8926666909099850184">L'NFC està desactivada en aquest dispositiu. Activa-la a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Aquest lloc web s'obre i respon ràpidament per a la majoria de persones</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Activa els permisos per a <ph name="APP_NAME" /> a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Accés al micròfon</translation>
 <translation id="965817943346481315">Bloqueja els anuncis si el lloc web mostra publicitat intrusiva o enganyosa (opció recomanada)</translation>
+<translation id="967624055006145463">Dades emmagatzemades</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
index 524da5dc..acd784fe97 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigace je blokována: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Povoleno</translation>
 <translation id="429312253194641664">Web přehrává média</translation>
+<translation id="4336434711095810371">Vymazat všechna data</translation>
 <translation id="4433925000917964731">Zjednodušenou stránku poskytuje Google</translation>
 <translation id="4434045419905280838">Vyskakovací okna a přesměrování</translation>
 <translation id="445467742685312942">Povolit webům přehrávat chráněný obsah</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Anonymní karta</translation>
 <translation id="5300589172476337783">Zobrazit</translation>
 <translation id="5301954838959518834">Dobře, rozumím</translation>
-<translation id="5307446750509046227">Vymazat úložiště webů</translation>
 <translation id="5313967007315987356">Přidat web</translation>
 <translation id="5317780077021120954">Uložit</translation>
 <translation id="5335288049665977812">Povolit webům spouštět JavaScript (doporučeno)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blokovat JavaScript na konkrétním webu.</translation>
 <translation id="8816026460808729765">Blokovat webům přístup k senzorům</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Úložiště</translation>
 <translation id="8926666909099850184">Funkce NFC je v tomto zařízení vypnutá. Zapnete ji v <ph name="BEGIN_LINK" />Nastavení Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Tato stránka se pro většinu uživatelů rychle otevírá a rychle reaguje</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Zapněte v <ph name="BEGIN_LINK" />Nastavení Android<ph name="END_LINK" /> oprávnění pro aplikaci <ph name="APP_NAME" />.</translation>
 <translation id="945632385593298557">Přístup k mikrofonu</translation>
 <translation id="965817943346481315">Blokovat, pokud web zobrazuje rušivé nebo zavádějící reklamy (doporučeno)</translation>
+<translation id="967624055006145463">Uložená data</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
index f10d26ad..9f530ca61 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigationen er blokeret: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Tilladt</translation>
 <translation id="429312253194641664">Et website afspiller medier</translation>
+<translation id="4336434711095810371">Ryd alle data</translation>
 <translation id="4433925000917964731">Lite-side leveret af Google</translation>
 <translation id="4434045419905280838">Pop op-vinduer og omdirigeringer</translation>
 <translation id="445467742685312942">Tillad, at websites afspiller beskyttet indhold</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognitofane</translation>
 <translation id="5300589172476337783">Vis</translation>
 <translation id="5301954838959518834">OK, det er forstået</translation>
-<translation id="5307446750509046227">Ryd websitelagerplads</translation>
 <translation id="5313967007315987356">Tilføj website</translation>
 <translation id="5317780077021120954">Gem</translation>
 <translation id="5335288049665977812">Tillad, at websites kører JavaScript (anbefales)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Slet</translation>
 <translation id="8300705686683892304">Administreres af en app</translation>
 <translation id="8372893542064058268">Tillad synkronisering i baggrunden for et bestemt website.</translation>
+<translation id="8376384591331888629">Medtag tredjepartscookies på dette websites</translation>
 <translation id="83792324527827022">Et website anvender dit kamera og din mikrofon</translation>
 <translation id="8380167699614421159">Dette website viser påtrængende eller vildledende annoncer</translation>
 <translation id="8394832520002899662">Tryk for at vende tilbage til websitet</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Bloker JavaScript for et bestemt website.</translation>
 <translation id="8816026460808729765">Bloker adgang til sensorer på websites</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Lagerplads</translation>
 <translation id="8926666909099850184">NFC er deaktiveret for denne enhed. Aktivér funktionen i <ph name="BEGIN_LINK" />Android-indstillingerne<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Dette website åbner og reagerer hurtigt hos de fleste brugere</translation>
 <translation id="8941729603749328384">www.eksempel.dk</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Aktivér tilladelser for <ph name="APP_NAME" /> i <ph name="BEGIN_LINK" />Android-indstillingerne<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Adgang til din mikrofon</translation>
 <translation id="965817943346481315">Bloker, hvis websitet viser påtrængende eller vildledende annoncer (anbefales)</translation>
+<translation id="967624055006145463">Lagrede data</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
index aa0c190..9d01fb8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Die Navigation zu <ph name="URL" /> ist blockiert.</translation>
 <translation id="4278390842282768270">Zugelassen</translation>
 <translation id="429312253194641664">Eine Website gibt Medien wieder</translation>
+<translation id="4336434711095810371">Alle Daten löschen</translation>
 <translation id="4433925000917964731">Lite-Modus-Seite von Google bereitgestellt</translation>
 <translation id="4434045419905280838">Pop-ups und Weiterleitungen</translation>
 <translation id="445467742685312942">Websites erlauben, geschützte Inhalte wiederzugeben</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognitotab</translation>
 <translation id="5300589172476337783">Anzeigen</translation>
 <translation id="5301954838959518834">Ok</translation>
-<translation id="5307446750509046227">Websitespeicher löschen</translation>
 <translation id="5313967007315987356">Website hinzufügen</translation>
 <translation id="5317780077021120954">Speichern</translation>
 <translation id="5335288049665977812">Ausführung von JavaScript durch Websites zulassen (empfohlen)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Hier können Sie Websites angeben, für die JavaScript blockiert werden soll.</translation>
 <translation id="8816026460808729765">Zugriff auf Sensoren für Websites blockieren</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Speicher</translation>
 <translation id="8926666909099850184">NFC ist für dieses Gerät deaktiviert. Sie können die Funktion in den <ph name="BEGIN_LINK" />Android-Einstellungen<ph name="END_LINK" /> aktivieren.</translation>
 <translation id="8929372349074745002">Diese Website lädt und reagiert meistens schnell</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Die Berechtigungen für <ph name="APP_NAME" /> können in den <ph name="BEGIN_LINK" />Android-Einstellungen<ph name="END_LINK" /> aktiviert werden.</translation>
 <translation id="945632385593298557">Mikrofonzugriff</translation>
 <translation id="965817943346481315">Blockieren, wenn Website aufdringliche oder irreführende Werbung anzeigt (empfohlen)</translation>
+<translation id="967624055006145463">Gespeicherte Daten</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
index a878381..4cb3202 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Αποκλείστηκε η μετάβαση στη διεύθυνση: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Επιτρέπεται</translation>
 <translation id="429312253194641664">Ένας ιστότοπος κάνει αναπαραγωγή μέσων</translation>
+<translation id="4336434711095810371">Διαγραφή όλων των δεδομένων</translation>
 <translation id="4433925000917964731">Σελίδα Lite που παρέχεται από την Google</translation>
 <translation id="4434045419905280838">Αναδυόμενα παράθυρα και ανακατευθύνσεις</translation>
 <translation id="445467742685312942">Να επιτρέπεται στους ιστοτόπους η αναπαραγωγή προστατευμένου περιεχομένου</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Καρτέλα ανώνυμης περιήγησης</translation>
 <translation id="5300589172476337783">Εμφάνιση</translation>
 <translation id="5301954838959518834">OK, το κατάλαβα</translation>
-<translation id="5307446750509046227">Διαγ.αποθ.χώρου ιστότ.</translation>
 <translation id="5313967007315987356">Προσθήκη ιστότοπου</translation>
 <translation id="5317780077021120954">Αποθήκευση</translation>
 <translation id="5335288049665977812">Να επιτρέπεται στους ιστότοπους να εκτελούν JavaScript (συνιστάται)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Αποκλεισμός JavaScript για κάποιο συγκεκριμένο ιστότοπο.</translation>
 <translation id="8816026460808729765">Αποκλεισμός πρόσβασης στους αισθητήρες από ιστοτόπους</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Αποθήκευση</translation>
 <translation id="8926666909099850184">Το NFC είναι ανενεργό για αυτήν τη συσκευή. Ενεργοποιήστε το στις <ph name="BEGIN_LINK" />Ρυθμίσεις Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Αυτός ο ιστότοπος ανοίγει και αποκρίνεται γρήγορα για τους περισσότερους χρήστες.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Ενεργοποιήστε τις άδειες για την εφαρμογή <ph name="APP_NAME" /> στις <ph name="BEGIN_LINK" />Ρυθμίσεις Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Πρόσβαση στο μικρόφωνό σας</translation>
 <translation id="965817943346481315">Αποκλεισμός εάν ο ιστότοπος εμφανίζει παρεμβατικές ή παραπλανητικές διαφημίσεις (συνιστάται)</translation>
+<translation id="967624055006145463">Αποθηκευμένα δεδομένα</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
index f23dfd1..4cd1dc4 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigation is blocked: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Allowed</translation>
 <translation id="429312253194641664">A site is playing media</translation>
+<translation id="4336434711095810371">Clear all data</translation>
 <translation id="4433925000917964731">Lite page provided by Google</translation>
 <translation id="4434045419905280838">Pop-ups and redirects</translation>
 <translation id="445467742685312942">Allow sites to play protected content</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Incognito tab</translation>
 <translation id="5300589172476337783">Show</translation>
 <translation id="5301954838959518834">OK, got it</translation>
-<translation id="5307446750509046227">Clear site storage</translation>
 <translation id="5313967007315987356">Add site</translation>
 <translation id="5317780077021120954">Save</translation>
 <translation id="5335288049665977812">Allow sites to run JavaScript (recommended)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Block JavaScript for a specific site.</translation>
 <translation id="8816026460808729765">Block sites from accessing sensors</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Storage</translation>
 <translation id="8926666909099850184">NFC is off for this device. Turn it on in <ph name="BEGIN_LINK" />Android settings<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">This site opens and responds quickly for most people</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Turn on permissions for <ph name="APP_NAME" /> in <ph name="BEGIN_LINK" />Android settings<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Access your microphone</translation>
 <translation id="965817943346481315">Block if site shows intrusive or misleading ads (recommended)</translation>
+<translation id="967624055006145463">Data stored</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
index 174885c4..a22ed28 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navegación bloqueada: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Permitido</translation>
 <translation id="429312253194641664">Un sitio está reproduciendo contenido multimedia</translation>
+<translation id="4336434711095810371">Borrar todos los datos</translation>
 <translation id="4433925000917964731">Google proporcionó la página básica</translation>
 <translation id="4434045419905280838">Ventanas emergentes y redireccionamientos</translation>
 <translation id="445467742685312942">Permitir que los sitios reproduzcan contenido protegido</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Pestaña de incógnito</translation>
 <translation id="5300589172476337783">Mostrar</translation>
 <translation id="5301954838959518834">Entendido</translation>
-<translation id="5307446750509046227">Borrar el almacenamiento de sitios</translation>
 <translation id="5313967007315987356">Agregar sitio</translation>
 <translation id="5317780077021120954">Guardar</translation>
 <translation id="5335288049665977812">Permitir que los sitios ejecuten JavaScript (recomendado)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Bloquea JavaScript para un sitio específico.</translation>
 <translation id="8816026460808729765">Impedir que los sitios accedan a los sensores</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Almacenamiento</translation>
 <translation id="8926666909099850184">La tecnología NFC está desactivada en este dispositivo. Actívala en la <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Este sitio se abre y responde rápidamente para la mayoría de las personas</translation>
 <translation id="8941729603749328384">www.ejemplo.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Activa los permisos para <ph name="APP_NAME" /> en la <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Acceso al micrófono</translation>
 <translation id="965817943346481315">Bloquear si el sitio muestra anuncios intrusivos o engañosos (opción recomendada)</translation>
+<translation id="967624055006145463">Datos almacenados</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
index 9cd83fb..2ac3ca56 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Se ha bloqueado la navegación: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Permitido</translation>
 <translation id="429312253194641664">Un sitio web está reproduciendo elementos multimedia</translation>
+<translation id="4336434711095810371">Borrar todos los datos</translation>
 <translation id="4433925000917964731">Página básica ofrecida por Google</translation>
 <translation id="4434045419905280838">Ventanas emergentes y redirecciones</translation>
 <translation id="445467742685312942">Permitir que los sitios web reproduzcan contenido protegido</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Pestaña de incógnito</translation>
 <translation id="5300589172476337783">Mostrar</translation>
 <translation id="5301954838959518834">Entendido</translation>
-<translation id="5307446750509046227">Liberar espacio</translation>
 <translation id="5313967007315987356">Añadir sitio</translation>
 <translation id="5317780077021120954">Guardar</translation>
 <translation id="5335288049665977812">Permitir que los sitios web utilicen JavaScript (recomendado)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Bloquear JavaScript en un sitio web específico.</translation>
 <translation id="8816026460808729765">No permite que los sitios web accedan a los sensores</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Almacenamiento</translation>
 <translation id="8926666909099850184">La tecnología NFC está desactivada en este dispositivo. Actívala en los <ph name="BEGIN_LINK" />ajustes de Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Este sitio web se abre y responde con rapidez en la mayoría de los casos</translation>
 <translation id="8941729603749328384">www.ejemplo.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Activa los permisos para <ph name="APP_NAME" /> en los <ph name="BEGIN_LINK" />ajustes de Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Acceder al micrófono</translation>
 <translation id="965817943346481315">Bloquear si el sitio web muestra anuncios invasivos o engañosos (recomendado)</translation>
+<translation id="967624055006145463">Datos almacenados</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
index d453cf6..92528db 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigeerimine on blokeeritud: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Lubatud</translation>
 <translation id="429312253194641664">Sait esitab meediasisu</translation>
+<translation id="4336434711095810371">Kustuta kõik andmed</translation>
 <translation id="4433925000917964731">Lihtsustatud lehte pakub Google</translation>
 <translation id="4434045419905280838">Hüpikaknad ja ümbersuunamised</translation>
 <translation id="445467742685312942">Saitidel on lubatud esitada kaitstud sisu</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognito vaheleht</translation>
 <translation id="5300589172476337783">Kuva</translation>
 <translation id="5301954838959518834">Selge, sain aru</translation>
-<translation id="5307446750509046227">Tühjenda salvestusruum</translation>
 <translation id="5313967007315987356">Lisa sait</translation>
 <translation id="5317780077021120954">Salvesta</translation>
 <translation id="5335288049665977812">Luba saitidel käitada JavaScripti (soovitatav)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">JavaScripti blokeerimine konkreetsel saidil.</translation>
 <translation id="8816026460808729765">Blokeeri saitide jaoks juurdepääs anduritele</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Salvestamine</translation>
 <translation id="8926666909099850184">NFC on selle seadme puhul välja lülitatud. Lülitage see <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" /> sisse.</translation>
 <translation id="8929372349074745002">See sait avaneb ja vastab enamikule inimestele kiirelt</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Lülitage <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" /> sisse load rakendusele <ph name="APP_NAME" />.</translation>
 <translation id="945632385593298557">Juurdepääs mikrofonile</translation>
 <translation id="965817943346481315">Blokeeri, kui sait kuvab sekkuvaid või eksitavaid reklaame (soovitatav)</translation>
+<translation id="967624055006145463">Salvestatud andmete maht</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
index f7441f3..9d836b7 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385"><ph name="URL" /> orrira joateko aukera blokeatuta dago</translation>
 <translation id="4278390842282768270">Baimenduta</translation>
 <translation id="429312253194641664">Webgune bat multimedia-edukia erreproduzitzen ari da</translation>
+<translation id="4336434711095810371">Garbitu datu guztiak</translation>
 <translation id="4433925000917964731">Google-k eskainitako oinarrizko orria</translation>
 <translation id="4434045419905280838">Leiho gainerak. / Birbideratzeak</translation>
 <translation id="445467742685312942">Baimendu webguneei eduki babestua erreproduzitzea</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Ezkutuko moduko fitxa</translation>
 <translation id="5300589172476337783">Erakutsi</translation>
 <translation id="5301954838959518834">Ados, ulertu dut</translation>
-<translation id="5307446750509046227">Garbitu webgune-datuak</translation>
 <translation id="5313967007315987356">Gehitu webgunea</translation>
 <translation id="5317780077021120954">Gorde</translation>
 <translation id="5335288049665977812">Baimendu webguneei JavaScript erabiltzea (gomendatua)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blokeatu JavaScript webgune zehatz batean.</translation>
 <translation id="8816026460808729765">Ez utzi webguneei sentsoreak erabiltzen</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Biltegia</translation>
 <translation id="8926666909099850184">NFC aukera desaktibatuta dago gailu honetan. Aktiba ezazu <ph name="BEGIN_LINK" />Android-en ezarpenetan<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Webgune hau bizkor irekitzen da eta bizkor erantzuten die gehienei</translation>
 <translation id="8941729603749328384">www.adibidea.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Aktibatu <ph name="APP_NAME" /> aplikaziorako baimenak <ph name="BEGIN_LINK" />Android-en ezarpenetan<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Atzitu mikrofonoa</translation>
 <translation id="965817943346481315">Webguneak iragarki oztopatzaileak erakusten baditu, blokea itzazu (gomendatua)</translation>
+<translation id="967624055006145463">Gordetako datuak</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
index 531d876..b5b7a7ca 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">پیمایش مسدود شده است: <ph name="URL" /></translation>
 <translation id="4278390842282768270">مجاز است</translation>
 <translation id="429312253194641664">سایتی درحال پخش رسانه است</translation>
+<translation id="4336434711095810371">پاک کردن همه داده‌ها</translation>
 <translation id="4433925000917964731">‏صفحه ساده‌شده را Google ارائه کرده است</translation>
 <translation id="4434045419905280838">پنجره‌های بازشو و هدایت‌ها</translation>
 <translation id="445467742685312942">به سایت‌ها اجازه داده شود محتوای محافظت‌شده پخش کنند</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">برگه ناشناس</translation>
 <translation id="5300589172476337783">نمایش</translation>
 <translation id="5301954838959518834">بله، متوجه شدم</translation>
-<translation id="5307446750509046227">پاک کردن فضای ذخیره‌سازی سایت</translation>
 <translation id="5313967007315987356">افزودن سایت</translation>
 <translation id="5317780077021120954">ذخیره</translation>
 <translation id="5335288049665977812">مجاز کردن همه سایت‌ها برای اجرای جاوااسکریپت (توصیه‌ می‌شود)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">حذف</translation>
 <translation id="8300705686683892304">مدیریت‌شده توسط برنامه</translation>
 <translation id="8372893542064058268">«همگام‌سازی پس‌زمینه» را برای یک سایت خاص مجاز کنید.</translation>
+<translation id="8376384591331888629">شامل کوکی‌های شخص ثالث در این سایت می‌شود</translation>
 <translation id="83792324527827022">سایتی درحال استفاده از دوربین و میکروفونتان است</translation>
 <translation id="8380167699614421159">این سایتْ آگهی‌های مزاحم یا گمراه‌کننده نشان می‌دهد</translation>
 <translation id="8394832520002899662">برای برگشتن به سایت ضربه بزنید</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">مسدود کردن جاوااسکریپت برای سایتی خاص.</translation>
 <translation id="8816026460808729765">سایت‌ها نمی‌توانند به حسگرها دسترسی داشته باشند</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">فضای ذخیره‌سازی</translation>
 <translation id="8926666909099850184">‏NFC برای این دستگاه خاموش است. در <ph name="BEGIN_LINK" />تنظیمات Android<ph name="END_LINK" /> آن را روشن کنید.</translation>
 <translation id="8929372349074745002">این سایت برای اکثر افراد سریع باز می‌شود و پاسخ می‌دهد</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">‏اجازه‌های <ph name="APP_NAME" /> را در <ph name="BEGIN_LINK" />تنظیمات Android<ph name="END_LINK" /> روشن کنید.</translation>
 <translation id="945632385593298557">دسترسی به میکروفن</translation>
 <translation id="965817943346481315">اگر سایتْ آگهی‌های مزاحم یا گمراه‌کننده نشان می‌دهد مسدود شود (توصیه می‌شود)</translation>
+<translation id="967624055006145463">داده ذخیره شد</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
index 2ae33617..7821c24 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Kohde on estetty: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Sallittu</translation>
 <translation id="429312253194641664">Sivusto toistaa mediaa</translation>
+<translation id="4336434711095810371">Poista kaikki data</translation>
 <translation id="4433925000917964731">Googlen tarjoama yksinkertaistettu sivu</translation>
 <translation id="4434045419905280838">Ponn.ikkunat ja uudelleenohjaus</translation>
 <translation id="445467742685312942">Salli sivustojen toistaa suojattua sisältöä</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Incognito-välilehti</translation>
 <translation id="5300589172476337783">Näytä</translation>
 <translation id="5301954838959518834">Selvä</translation>
-<translation id="5307446750509046227">Poista sivustotiedot</translation>
 <translation id="5313967007315987356">Lisää sivusto</translation>
 <translation id="5317780077021120954">Tallenna</translation>
 <translation id="5335288049665977812">Anna kaikkien sivustojen käyttää JavaScriptiä (suositus).</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Estä JavaScript tietyllä sivustolla.</translation>
 <translation id="8816026460808729765">Estä sivustoja käyttämästä tunnistimia</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Tallennus</translation>
 <translation id="8926666909099850184">NFC on pois päältä tällä laitteella. Voit laittaa sen päälle <ph name="BEGIN_LINK" />Androidin asetuksista<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Useimmissa tapauksissa sivusto avautuu ja vastaa nopeasti</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Laita luvat (<ph name="APP_NAME" />) päälle <ph name="BEGIN_LINK" />Androidin asetuksista<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Mikrofonin käyttöoikeus</translation>
 <translation id="965817943346481315">Estä, jos sivusto näyttää häiritseviä tai harhaanjohtavia mainoksia (suositus)</translation>
+<translation id="967624055006145463">Tallennettu data</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
index 3df44e3..d1e034f 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Naka-block ang navigation: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Pinapayagan</translation>
 <translation id="429312253194641664">May site na nagpe-play ng media</translation>
+<translation id="4336434711095810371">I-clear ang lahat ng data</translation>
 <translation id="4433925000917964731">Hatid ng Google ang lite na page</translation>
 <translation id="4434045419905280838">Mga pop-up at pag-redirect</translation>
 <translation id="445467742685312942">Pahintulutan ang mga site na mag-play ng pinoprotektahang content</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Tab na incognito</translation>
 <translation id="5300589172476337783">Ipakita</translation>
 <translation id="5301954838959518834">OK, nakuha ko</translation>
-<translation id="5307446750509046227">I-clear ang storage ng site</translation>
 <translation id="5313967007315987356">Magdagdag ng site</translation>
 <translation id="5317780077021120954">I-save</translation>
 <translation id="5335288049665977812">Payagan ang mga site na magpatakbo ng JavaScript (inirerekomenda)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">I-block ang JavaScript para sa isang partikular na site.</translation>
 <translation id="8816026460808729765">I-block ang mga site sa pag-access sa mga sensor</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Storage</translation>
 <translation id="8926666909099850184">Naka-off ang NFC para sa device na ito. I-on ito sa <ph name="BEGIN_LINK" />Mga Setting ng Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Mabilis na bumubukas at tumutugon ang site na ito para sa karamihan ng mga tao</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">I-on ang mga pahintulot para sa <ph name="APP_NAME" /> sa <ph name="BEGIN_LINK" />Mga Setting ng Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">I-access ang iyong mikropono</translation>
 <translation id="965817943346481315">I-block kung nagpapakita ang site ng mga nakakasagabal o nakakapanlinlang na ad (inirerekomenda)</translation>
+<translation id="967624055006145463">Naka-store na data</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
index 33a05c7..f678c920 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigation bloquée : <ph name="URL" /></translation>
 <translation id="4278390842282768270">Autorisé</translation>
 <translation id="429312253194641664">Un site lit du contenu multimédia</translation>
+<translation id="4336434711095810371">Effacer toutes les données</translation>
 <translation id="4433925000917964731">Page en version simplifiée fournie par Google</translation>
 <translation id="4434045419905280838">Fenêt. context. et redirections</translation>
 <translation id="445467742685312942">Autoriser les sites à lire du contenu protégé</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Onglet de navigation privée</translation>
 <translation id="5300589172476337783">Afficher</translation>
 <translation id="5301954838959518834">J'ai compris.</translation>
-<translation id="5307446750509046227">Suppr. stock. des sites</translation>
 <translation id="5313967007315987356">Ajouter un site</translation>
 <translation id="5317780077021120954">Enregistrer</translation>
 <translation id="5335288049665977812">Autoriser les sites à exécuter JavaScript (recommandé)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Bloquez JavaScript sur un site en particulier.</translation>
 <translation id="8816026460808729765">Empêcher les sites d'accéder aux capteurs</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Stockage</translation>
 <translation id="8926666909099850184">La NFC est désactivée pour cet appareil. Activez-la dans le menu <ph name="BEGIN_LINK" />Paramètres Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Ce site s'ouvre et répond rapidement pour la majorité des gens</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Vous pouvez activer les autorisations pour <ph name="APP_NAME" /> dans les <ph name="BEGIN_LINK" />paramètres d'Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Accès à votre microphone</translation>
 <translation id="965817943346481315">Bloquer si le site diffuse des annonces intrusives ou trompeuses (recommandé)</translation>
+<translation id="967624055006145463">Données stockées</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
index c308ef52..27cb61d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">La navigation sur <ph name="URL" /> est bloquée.</translation>
 <translation id="4278390842282768270">Autorisé</translation>
 <translation id="429312253194641664">Un site est en train de lire un contenu multimédia</translation>
+<translation id="4336434711095810371">Effacer toutes les données</translation>
 <translation id="4433925000917964731">Page simplifiée fournie par Google</translation>
 <translation id="4434045419905280838">Pop-up et redirections</translation>
 <translation id="445467742685312942">Autoriser les sites à lire les contenus protégés</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Onglet de navigation privée</translation>
 <translation id="5300589172476337783">Afficher</translation>
 <translation id="5301954838959518834">OK</translation>
-<translation id="5307446750509046227">Effacer données stockage</translation>
 <translation id="5313967007315987356">Ajouter un site</translation>
 <translation id="5317780077021120954">Enregistrer</translation>
 <translation id="5335288049665977812">Autoriser les sites à exécuter JavaScript (recommandé)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Bloquer JavaScript sur un site spécifique.</translation>
 <translation id="8816026460808729765">Bloque l'accès aux capteurs pour certains sites</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Données stockées</translation>
 <translation id="8926666909099850184">La fonctionnalité NFC est désactivée pour cet appareil. Activez-la dans les <ph name="BEGIN_LINK" />paramètres Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Ce site s'ouvre et répond aux interactions rapidement pour la majorité des utilisateurs</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Activez les autorisations pour <ph name="APP_NAME" /> dans les <ph name="BEGIN_LINK" />paramètres Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Accéder à votre micro</translation>
 <translation id="965817943346481315">Bloquer si le site affiche des annonces intrusives ou trompeuses (recommandé)</translation>
+<translation id="967624055006145463">Données stockées</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
index 0e759b93..f391afbd 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">A navegación está bloqueada: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Permitida</translation>
 <translation id="429312253194641664">Un sitio está reproducindo contido multimedia</translation>
+<translation id="4336434711095810371">Borrar todos os datos</translation>
 <translation id="4433925000917964731">Páxina en modo básico ofrecida por Google.</translation>
 <translation id="4434045419905280838">Ventás emerxentes e redireccións</translation>
 <translation id="445467742685312942">Permitir que os sitios reproduzan contido protexido</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Pestana do modo de incógnito</translation>
 <translation id="5300589172476337783">Mostrar</translation>
 <translation id="5301954838959518834">Entendido</translation>
-<translation id="5307446750509046227">Borrar datos do sitio</translation>
 <translation id="5313967007315987356">Engadir sitio</translation>
 <translation id="5317780077021120954">Gardar</translation>
 <translation id="5335288049665977812">Permite que os sitios executen JavaScript (recomendado)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Eliminar</translation>
 <translation id="8300705686683892304">Sitios xestionados pola aplicación</translation>
 <translation id="8372893542064058268">Permite a sincronización en segundo plano nun sitio específico.</translation>
+<translation id="8376384591331888629">Incluír as cookies de terceiros deste sitio</translation>
 <translation id="83792324527827022">Un sitio está utilizando a cámara e o micrófono</translation>
 <translation id="8380167699614421159">Este sitio mostra anuncios intrusivos ou enganosos</translation>
 <translation id="8394832520002899662">Toca para volver ao sitio</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Bloquea JavaScript para un sitio específico.</translation>
 <translation id="8816026460808729765">Impide que os sitios accedan aos sensores</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Almacenamento</translation>
 <translation id="8926666909099850184">A NFC está desactivada para este dispositivo. Actívaa en <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Este sitio ábrese e responde rápido para a maioría dos usuarios</translation>
 <translation id="8941729603749328384">www.exemplo.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Activa os permisos para <ph name="APP_NAME" /> en <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Acceso ao teu micrófono</translation>
 <translation id="965817943346481315">Bloquear se o sitio mostra anuncios enganosos ou intrusivos (recomendado)</translation>
+<translation id="967624055006145463">Datos almacenados</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
index 511f3e0..238aec62 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">નેવિગેશન અવરોધિત છે: <ph name="URL" /></translation>
 <translation id="4278390842282768270">મંજૂર</translation>
 <translation id="429312253194641664">સાઇટ મીડિયા ચલાવી રહી છે</translation>
+<translation id="4336434711095810371">બધો ડેટા સાફ કરો</translation>
 <translation id="4433925000917964731">Google દ્વારા પૂરું પાડવામાં આવેલું લાઇટ વર્ઝનનું પેજ</translation>
 <translation id="4434045419905280838">પૉપ-અપ અને રીડાયરેક્ટ</translation>
 <translation id="445467742685312942">સાઇટને સંરક્ષિત કન્ટેન્ટ ચલાવવાની મંજૂરી આપો</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">છૂપા મોડમાંની ટૅબ</translation>
 <translation id="5300589172476337783">બતાવો</translation>
 <translation id="5301954838959518834">બરાબર, સમજાઇ ગયું</translation>
-<translation id="5307446750509046227">સાઇટ સ્ટોરેજ સાફ કરો</translation>
 <translation id="5313967007315987356">સાઈટ ઉમેરો</translation>
 <translation id="5317780077021120954">સાચવો</translation>
 <translation id="5335288049665977812">સાઇટ્સને JavaScript ચલાવાની મંજૂરી આપો (ભલામણ કરેલ)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">કોઈ ચોક્કસ સાઇટ માટે JavaScriptને બ્લૉક કરો.</translation>
 <translation id="8816026460808729765">સાઇટને સેન્સરને ઍક્સેસ કરવાથી બ્લૉક કરો</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">સ્ટોરેજ</translation>
 <translation id="8926666909099850184">આ ડિવાઇસ માટે NFC સેવા બંધ કરેલી છે. તેને <ph name="BEGIN_LINK" />Android સેટિંગ<ph name="END_LINK" />માં ચાલુ કરો.</translation>
 <translation id="8929372349074745002">આ સાઇટ મોટાભાગના લોકો માટે ઝડપથી ખૂલે છે અને પ્રતિસાદ આપે છે</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android સેટિંગ<ph name="END_LINK" />માં <ph name="APP_NAME" /> માટે પરવાનગીઓ ચાલુ કરો.</translation>
 <translation id="945632385593298557">તમારા માઇક્રોફોનની ઍક્સેસ</translation>
 <translation id="965817943346481315">જો સાઇટ ઘૃણાસ્પદ અથવા ભ્રામક જાહેરાતો બતાવતી હોય, તો બ્લૉક કરો (ભલામણ કરેલ)</translation>
+<translation id="967624055006145463">સ્ટોર કરેલ ડેટા</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
index b4e9da2..f8bcfead 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">मार्गदर्शक अवरोधित है: <ph name="URL" /></translation>
 <translation id="4278390842282768270">अनुमति है</translation>
 <translation id="429312253194641664">किसी साइट पर मीडिया चल रहा है</translation>
+<translation id="4336434711095810371">सारा डेटा मिटाएं</translation>
 <translation id="4433925000917964731">लाइट पेज Google ने मुहैया कराया है</translation>
 <translation id="4434045419905280838">पॉप-अप और रीडायरेक्ट</translation>
 <translation id="445467742685312942">साइटों को सभी सुरक्षित सामग्री चलाने दें</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">गुप्त टैब</translation>
 <translation id="5300589172476337783">दिखाएं</translation>
 <translation id="5301954838959518834">ठीक है, समझ लिया</translation>
-<translation id="5307446750509046227">साइट की मेमोरी मिटाएं</translation>
 <translation id="5313967007315987356">साइट जोड़ें</translation>
 <translation id="5317780077021120954">सेव करें</translation>
 <translation id="5335288049665977812">साइटों को JavaScript चलाने की अनुमति दें (हम इस सेटिंग को चालू रखने का सुझाव देते हैं)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">किसी खास साइट के लिए JavaScript पर रोक लगाएं.</translation>
 <translation id="8816026460808729765">साइटों को सेंसर ऐक्सेस करने से रोकें</translation>
 <translation id="8847988622838149491">यूएसबी</translation>
-<translation id="885701979325669005">मेमोरी</translation>
 <translation id="8926666909099850184">इस डिवाइस पर NFC बंद है. <ph name="BEGIN_LINK" />Android सेटिंग<ph name="END_LINK" /> में इसे चालू करें.</translation>
 <translation id="8929372349074745002">ज़्यादातर लोगों के लिए यह साइट तेज़ी से खुलती है और जवाब देती है</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android की सेटिंग<ph name="END_LINK" /> में जाकर, <ph name="APP_NAME" /> के लिए अनुमतियां चालू करें.</translation>
 <translation id="945632385593298557">अपना माइक्रोफ़ोन एक्सेस करें</translation>
 <translation id="965817943346481315">अगर साइट तंग करने वाले या गुमराह करने वाले विज्ञापन दिखाई देते हैं, तो उन्हें ब्लॉक करें (सुझाव)</translation>
+<translation id="967624055006145463">डेटा संग्रहित किया गया</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
index ee14b57..2d30f38 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Otvaranje je blokirano: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Dopušteno</translation>
 <translation id="429312253194641664">Web-lokacija reproducira medije</translation>
+<translation id="4336434711095810371">Izbriši sve podatke</translation>
 <translation id="4433925000917964731">Jednostavna stranica koju pruža Google</translation>
 <translation id="4434045419905280838">Skočni prozori i preusmjeravanja</translation>
 <translation id="445467742685312942">Web-lokacijama je dopuštena reprodukcija zaštićenog sadržaja</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Anonimna kartica</translation>
 <translation id="5300589172476337783">Prikaži</translation>
 <translation id="5301954838959518834">U redu, shvaćam</translation>
-<translation id="5307446750509046227">Izbriši pohranu</translation>
 <translation id="5313967007315987356">Dodaj web-lokaciju</translation>
 <translation id="5317780077021120954">Spremi</translation>
 <translation id="5335288049665977812">Web-lokacije mogu pokretati JavaScript (preporučeno)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Blokiranje JavaScripta za određenu web-lokaciju.</translation>
 <translation id="8816026460808729765">Blokiranje pristupa senzorima za web-lokacije</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Prostor za pohranu</translation>
 <translation id="8926666909099850184">NFC je isključen za ovaj uređaj. Uključite ga u <ph name="BEGIN_LINK" />postavkama Androida<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Za većinu ljudi ova se web-lokacija brzo otvara i reagira</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Uključite dopuštenja za aplikaciju <ph name="APP_NAME" /> u <ph name="BEGIN_LINK" />Androidovim postavkama<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Pristup mikrofonu</translation>
 <translation id="965817943346481315">Blokiraj ako web-lokacija prikazuje ometajuće ili obmanjujuće oglase (preporučeno)</translation>
+<translation id="967624055006145463">Pohranjeni podaci</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
index 35d1d40..48228c7 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Le van tiltva az ide vezető navigáció: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Engedélyezve</translation>
 <translation id="429312253194641664">Az egyik webhely médiatartalmat játszik le</translation>
+<translation id="4336434711095810371">Az összes adat törlése</translation>
 <translation id="4433925000917964731">Egyszerű oldal a Google-tól</translation>
 <translation id="4434045419905280838">Előugró ablakok és átirányítások</translation>
 <translation id="445467742685312942">Védett tartalmak lejátszásának engedélyezése a webhelyek számára</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognitó lap</translation>
 <translation id="5300589172476337783">Megjelenítés</translation>
 <translation id="5301954838959518834">Rendben, értem</translation>
-<translation id="5307446750509046227">Webhelytárhely törlése</translation>
 <translation id="5313967007315987356">Webhely hozzáadása</translation>
 <translation id="5317780077021120954">Mentés</translation>
 <translation id="5335288049665977812">Engedélyezze a webhelyek számára a JavaScript futtatását (ajánlott)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Törlés</translation>
 <translation id="8300705686683892304">Alkalmazás által kezelt</translation>
 <translation id="8372893542064058268">Háttérben történő szinkronizálás engedélyezése adott webhely esetében.</translation>
+<translation id="8376384591331888629">Ide tartoznak többek között az ezen a webhelyen található, harmadik felektől származó cookie-k</translation>
 <translation id="83792324527827022">Egy webhely használja az Ön kameráját és mikrofonját</translation>
 <translation id="8380167699614421159">Ez a webhely tolakodó vagy félrevezető hirdetéseket jelenít meg</translation>
 <translation id="8394832520002899662">Koppintson a webhelyre való visszatéréshez</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">JavaScript letiltása adott webhelynél.</translation>
 <translation id="8816026460808729765">Az érzékelőkhöz való hozzáférés tiltása a webhelyek számára</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Tárolás</translation>
 <translation id="8926666909099850184">Az NFC ki van kapcsolva ezen az eszközön. Kapcsolja be az <ph name="BEGIN_LINK" />Android Beállítások alkalmazásában<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Ez a webhely gyorsan megnyílik és reagál a legtöbb felhasználó számára</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">A(z) <ph name="APP_NAME" /> alkalmazásra vonatkozó engedélyeket az <ph name="BEGIN_LINK" />Android-beállítások<ph name="END_LINK" /> között lehet aktiválni.</translation>
 <translation id="945632385593298557">Hozzáférés a mikrofonhoz</translation>
 <translation id="965817943346481315">Letiltás, ha a webhely tolakodó vagy félrevezető hirdetéseket jelenít meg (ajánlott)</translation>
+<translation id="967624055006145463">Tárolt adatok</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
index 235bfdc3..5f441df 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Նավարկումն արգելափակված է՝ <ph name="URL" /></translation>
 <translation id="4278390842282768270">Թույլատրված է</translation>
 <translation id="429312253194641664">Կայքում մեդիա ֆայլ է նվագարկվում</translation>
+<translation id="4336434711095810371">Մաքրել բոլոր տվյալները</translation>
 <translation id="4433925000917964731">Էջի Lite տարբերակը տրամադրվել է Google-ի կողմից</translation>
 <translation id="4434045419905280838">Ելնող պատուհաններ և վերահղում</translation>
 <translation id="445467742685312942">Թույլատրել կայքերին նվագարկել պաշտպանված բովանդակություն</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Ինկոգնիտո ներդիր</translation>
 <translation id="5300589172476337783">Ցույց տալ</translation>
 <translation id="5301954838959518834">Պարզ է</translation>
-<translation id="5307446750509046227">Մաքրել կայքերի տվյալները</translation>
 <translation id="5313967007315987356">Ավելացնել կայք</translation>
 <translation id="5317780077021120954">Պահել</translation>
 <translation id="5335288049665977812">Թույլ տալ կայքերին գործարկել JavaScript-ը (խորհուրդ է տրվում)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Արգելափակել JavaScript-ը նշված կայքի համար:</translation>
 <translation id="8816026460808729765">Արգելել կայքերին օգտագործել տվիչները</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Պահեստ</translation>
 <translation id="8926666909099850184">Սարքի NFC-ն անջատված է։ Միացրեք այն <ph name="BEGIN_LINK" />Android-ի կարգավորումներում<ph name="END_LINK" />։</translation>
 <translation id="8929372349074745002">Այս կայքը հիմնականում բեռնվում և արձագանքում է արագ</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Միացնել <ph name="APP_NAME" />-ի թույլտվությունները <ph name="BEGIN_LINK" />Android-ի կարգավորումներում<ph name="END_LINK" />։</translation>
 <translation id="945632385593298557">Խոսափողի օգտագործում</translation>
 <translation id="965817943346481315">Արգելափակել, եթե կայքը հոգնեցնող կամ մոլորեցնող գովազդ է ցուցադրում (խորհուրդ է տրվում)</translation>
+<translation id="967624055006145463">Պահված տվյալներ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
index d9ec468..151edb1 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigasi diblokir: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Diizinkan</translation>
 <translation id="429312253194641664">Sebuah situs sedang memutar media</translation>
+<translation id="4336434711095810371">Hapus semua data</translation>
 <translation id="4433925000917964731">Halaman ringan yang ditampilkan oleh Google.</translation>
 <translation id="4434045419905280838">Pop-up dan pengalihan</translation>
 <translation id="445467742685312942">Izinkan situs memutar konten yang dilindungi</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Tab samaran</translation>
 <translation id="5300589172476337783">Tampilkan</translation>
 <translation id="5301954838959518834">Oke, mengerti</translation>
-<translation id="5307446750509046227">Hapus penyimpanan situs</translation>
 <translation id="5313967007315987356">Tambahkan situs</translation>
 <translation id="5317780077021120954">Simpan</translation>
 <translation id="5335288049665977812">Izinkan situs menjalankan JavaScript (disarankan)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blokir JavaScript untuk situs tertentu.</translation>
 <translation id="8816026460808729765">Memblokir situs agar tidak mengakses sensor</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Penyimpanan</translation>
 <translation id="8926666909099850184">NFC dinonaktifkan di perangkat ini. Aktifkan di <ph name="BEGIN_LINK" />Setelan Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Situs ini membuka dan merespons dengan cepat bagi sebagian besar orang</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Aktifkan izin untuk <ph name="APP_NAME" /> di <ph name="BEGIN_LINK" />Setelan Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Akses mikrofon Anda</translation>
 <translation id="965817943346481315">Blokir jika situs menampilkan iklan yang mengganggu atau menyesatkan (direkomendasikan)</translation>
+<translation id="967624055006145463">Data disimpan</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
index 5ff7dab6..4c95f70d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Lokað er fyrir skoðun: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Leyft</translation>
 <translation id="429312253194641664">Vefsvæði er að spila efni</translation>
+<translation id="4336434711095810371">Hreinsa öll gögn</translation>
 <translation id="4433925000917964731">Léttútgáfa síðu frá Google</translation>
 <translation id="4434045419905280838">Sprettigluggar og framsendingar</translation>
 <translation id="445467742685312942">Leyfa vefsvæðum að spila varið efni</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Huliðsflipi</translation>
 <translation id="5300589172476337783">Sýna</translation>
 <translation id="5301954838959518834">Ég skil</translation>
-<translation id="5307446750509046227">Hreinsa geymslu vefsvæða</translation>
 <translation id="5313967007315987356">Bæta vefsvæði við</translation>
 <translation id="5317780077021120954">Vista</translation>
 <translation id="5335288049665977812">Leyfa vefsvæðum að keyra JavaScript (ráðlagt)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Eyða</translation>
 <translation id="8300705686683892304">Stjórnað af forriti</translation>
 <translation id="8372893542064058268">Leyfa bakgrunnssamstillingu fyrir ákveðið vefsvæði.</translation>
+<translation id="8376384591331888629">Hafa fótspor þriðju aðila á þessu vefsvæði með</translation>
 <translation id="83792324527827022">Vefsvæði er að nota myndavélina þína og hljóðnemann</translation>
 <translation id="8380167699614421159">Þetta vefsvæði sýnir ágengar eða villandi auglýsingar</translation>
 <translation id="8394832520002899662">Ýttu til að fara aftur á vefsvæðið</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Setja JavaScript á bannlista fyrir ákveðna síðu.</translation>
 <translation id="8816026460808729765">Loka fyrir aðgang vefsvæða að skynjurum</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Geymslurými</translation>
 <translation id="8926666909099850184">Slökkt er á NFC fyrir þetta tæki. Kveiktu á því í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Þetta vefsvæði opnast fljótt og svarar hratt fyrir flesta notendur</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Kveiktu á heimildum fyrir <ph name="APP_NAME" /> í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Aðgangur að hljóðnemanum</translation>
 <translation id="965817943346481315">Loka fyrir ef vefsvæði sýnir ágengar eða villandi auglýsingar (ráðlagt)</translation>
+<translation id="967624055006145463">Vistuð gögn</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
index 51ba73f..8289cbd 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigazione bloccata: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Consentito</translation>
 <translation id="429312253194641664">Un sito sta riproducendo contenuti multimediali</translation>
+<translation id="4336434711095810371">Cancella tutti i dati</translation>
 <translation id="4433925000917964731">Pagina Lite fornita da Google</translation>
 <translation id="4434045419905280838">Popup e reindirizzamenti</translation>
 <translation id="445467742685312942">Consenti ai siti di riprodurre contenuti protetti</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Scheda di navigazione in incognito</translation>
 <translation id="5300589172476337783">Mostra</translation>
 <translation id="5301954838959518834">OK</translation>
-<translation id="5307446750509046227">Cancella dati dei siti</translation>
 <translation id="5313967007315987356">Aggiungi sito</translation>
 <translation id="5317780077021120954">Salva</translation>
 <translation id="5335288049665977812">Consenti l'esecuzione di JavaScript nei siti (opzione consigliata)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blocca JavaScript per un sito specifico.</translation>
 <translation id="8816026460808729765">Impedisci ai siti di accedere ai sensori</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Dati memorizzati dai siti</translation>
 <translation id="8926666909099850184">Funzionalità NFC non attiva per questo dispositivo. Attivala nelle <ph name="BEGIN_LINK" />Impostazioni Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Questo sito si apre e risponde velocemente per la maggior parte degli utenti</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Attiva le autorizzazioni per l'app <ph name="APP_NAME" /> nelle <ph name="BEGIN_LINK" />Impostazioni Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Accesso al microfono</translation>
 <translation id="965817943346481315">Blocca se il sito mostra annunci invasivi o fuorvianti (consigliato)</translation>
+<translation id="967624055006145463">Dati memorizzati</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
index 0287f3d6..30cca3a 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">הניווט חסום: <ph name="URL" /></translation>
 <translation id="4278390842282768270">מותר</translation>
 <translation id="429312253194641664">אתר מסוים מפעיל מדיה</translation>
+<translation id="4336434711095810371">ניקוי כל הנתונים</translation>
 <translation id="4433925000917964731">‏גרסת Lite של הדף נוצרה על ידי Google</translation>
 <translation id="4434045419905280838">חלונות קופצים והפניות אוטומטיות</translation>
 <translation id="445467742685312942">מתן הרשאה לאתרים להציג תוכן מוגן</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">כרטיסיית גלישה בסתר</translation>
 <translation id="5300589172476337783">הצגה</translation>
 <translation id="5301954838959518834">בסדר, הבנתי</translation>
-<translation id="5307446750509046227">מחיקת נתוני אתר מהאחסון</translation>
 <translation id="5313967007315987356">הוסף אתר</translation>
 <translation id="5317780077021120954">שמור</translation>
 <translation id="5335288049665977812">‏אפשר לאתרים להריץ JavaScript (מומלץ)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">‏חסימת JavaScript באתר ספציפי.</translation>
 <translation id="8816026460808729765">חסימת הגישה של אתרים אל חיישנים</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">אחסון</translation>
 <translation id="8926666909099850184">‏קישוריות ה-NFC מושבתת במכשיר הזה. ניתן להפעיל אותה דרך <ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">רוב האנשים מדווחים שהאתר נפתח ומגיב במהירות</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">‏יש להעניק הרשאות עבור <ph name="APP_NAME" /> ב<ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">גישה למיקרופון שלך</translation>
 <translation id="965817943346481315">חסימה אם באתר מוצגות מודעות מפריעות או מטעות (מומלץ)</translation>
+<translation id="967624055006145463">נפח הנתונים</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
index 1c4c61ff..d1024d2 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385"><ph name="URL" /> へのアクセスがブロックされました</translation>
 <translation id="4278390842282768270">許可</translation>
 <translation id="429312253194641664">サイトでメディアが再生されています</translation>
+<translation id="4336434711095810371">データをすべて消去</translation>
 <translation id="4433925000917964731">Google から提供されている軽量版のページ</translation>
 <translation id="4434045419905280838">ポップアップとリダイレクト</translation>
 <translation id="445467742685312942">保護されたコンテンツの再生をサイトに許可する</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">シークレット タブ</translation>
 <translation id="5300589172476337783">表示</translation>
 <translation id="5301954838959518834">OK</translation>
-<translation id="5307446750509046227">サイトのストレージをクリア</translation>
 <translation id="5313967007315987356">サイトを追加</translation>
 <translation id="5317780077021120954">保存</translation>
 <translation id="5335288049665977812">サイトに JavaScript の実行を許可する(推奨)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">特定のサイトで JavaScript をブロックします。</translation>
 <translation id="8816026460808729765">サイトによるセンサーへのアクセスをブロックする</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ストレージ</translation>
 <translation id="8926666909099850184">このデバイスでは NFC がオフになっています。<ph name="BEGIN_LINK" />Android の設定<ph name="END_LINK" />でオンにしてください。</translation>
 <translation id="8929372349074745002">このサイトは、ほとんどの環境ですばやく表示され応答しています</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android の設定<ph name="END_LINK" />で <ph name="APP_NAME" /> の権限を有効にしてください。</translation>
 <translation id="945632385593298557">マイクへのアクセス</translation>
 <translation id="965817943346481315">煩わしい広告や誤解を招く広告が表示されるサイトの場合にブロック(推奨)</translation>
+<translation id="967624055006145463">保存データ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
index 73c8d0ca..7480551 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">ნავიგაცია დაბლოკილია: <ph name="URL" /></translation>
 <translation id="4278390842282768270">დაშვებულია</translation>
 <translation id="429312253194641664">საიტზე გაშვებულია მედია-კონტენტი</translation>
+<translation id="4336434711095810371">ყველა მონაცემის გასუფთავება</translation>
 <translation id="4433925000917964731">გვერდის Lite ვერსიას უზრუნველყოფს Google</translation>
 <translation id="4434045419905280838">ამომხ. ფანჯრები/გადამისამართება</translation>
 <translation id="445467742685312942">საიტებისთვის დაცული კონტენტის დაკვრის დაშვება</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ინკოგნიტო ჩანართი</translation>
 <translation id="5300589172476337783">ჩვენება</translation>
 <translation id="5301954838959518834">კარგი, გასაგებია</translation>
-<translation id="5307446750509046227">საიტის მეხსიერ. გასუფთ.</translation>
 <translation id="5313967007315987356">საიტის დამატება</translation>
 <translation id="5317780077021120954">შენახვა</translation>
 <translation id="5335288049665977812">საიტებისთვის JavaScript-ის გაშვების დაშვება (რეკომენდებული)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">კონკრეტულ საიტზე JavaScript-ის დაბლოკვა.</translation>
 <translation id="8816026460808729765">საიტებისთვის სენსორებზე წვდომის აკრძალვა</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">შენახვა</translation>
 <translation id="8926666909099850184">NFC გამორთულია ამ მოწყობილობისთვის. მისი ჩართვა შეგიძლიათ <ph name="BEGIN_LINK" />Android-ის პარამეტრებიდან<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">მომხმარებელთა უმეტესობისთვის ეს საიტი სწრაფად იხსნება და რეაგირებს</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="APP_NAME" />-ისთვის ნებართვების გააქტიურება <ph name="BEGIN_LINK" />Android-ის პარამეტრებში<ph name="END_LINK" /> შეგიძლიათ.</translation>
 <translation id="945632385593298557">თქვენი მიკროფონი ხელმისაწვდომია</translation>
 <translation id="965817943346481315">დაბლოკვა, თუ საიტი აჩვენებს მომაბეზრებელ ან შეცდომაში შემყვან რეკლამას (რეკომენდებული)</translation>
+<translation id="967624055006145463">შენახული მონაცემები</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
index 5aa681b..5b84d6f 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Навигация тыйылған: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Рұқсат етілген</translation>
 <translation id="429312253194641664">Сайтта мультимедиа ойнатылуда</translation>
+<translation id="4336434711095810371">Барлық деректерді өшіру</translation>
 <translation id="4433925000917964731">Google бетті Lite нұсқасында ұсынды</translation>
 <translation id="4434045419905280838">Қалқымалы терезе және бағыттау</translation>
 <translation id="445467742685312942">Сайттарға қорғалған мазмұнды ойнатуға рұқсат беру</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Инкогнито қойындысы</translation>
 <translation id="5300589172476337783">Көрсету</translation>
 <translation id="5301954838959518834">Жарайды, түсінікті</translation>
-<translation id="5307446750509046227">Сайт деректерін жою</translation>
 <translation id="5313967007315987356">Сайт қосу</translation>
 <translation id="5317780077021120954">Сақтау</translation>
 <translation id="5335288049665977812">Сайттарға JavaScript тілін іске қосуға рұқсат беру (ұсынылады)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Белгілі бір сайт үшін JavaScript бағдарламасын бөгеуге болады.</translation>
 <translation id="8816026460808729765">Сайттардың датчиктерді пайдалануына тыйым салу</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Сақтау</translation>
 <translation id="8926666909099850184">Бұл құрылғыда NFC функциясы өшірілген. Оны <ph name="BEGIN_LINK" />Android параметрлерінен<ph name="END_LINK" /> қосыңыз.</translation>
 <translation id="8929372349074745002">Сайт көптеген адамдар үшін жылдам ашылып, жұмыс істейді.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="APP_NAME" /> браузері үшін рұқсаттарды <ph name="BEGIN_LINK" />Android параметрлерінде<ph name="END_LINK" /> қосыңыз.</translation>
 <translation id="945632385593298557">Микрофонды пайдалану мүмкіндігі</translation>
 <translation id="965817943346481315">Сайт мазалайтын немесе жалған ақпаратты жарнамалар көрсеткен жағдайда бөгеу (ұсынылады)</translation>
+<translation id="967624055006145463">Сақталған деректер</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
index 0f08253..1342f664 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">ការរុករកត្រូវបានរារាំង៖ <ph name="URL" /></translation>
 <translation id="4278390842282768270">បានអនុញ្ញាត</translation>
 <translation id="429312253194641664">គេហទំព័រ​កំពុង​ចាក់មេឌៀ</translation>
+<translation id="4336434711095810371">សម្អាត​ទិន្នន័យ​ទាំងអស់</translation>
 <translation id="4433925000917964731">ទំព័រស្រាល​ដែល​ផ្ដល់​ដោយ Google</translation>
 <translation id="4434045419905280838">ផ្ទាំងផុស​ និង​ការ​បញ្ជូន​បន្ត</translation>
 <translation id="445467742685312942">អនុញ្ញាតឱ្យ​គេហទំព័រ​ចាក់ខ្លឹមសារដែលមាន​ការការពារ</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ផ្ទាំង​អនាមិក</translation>
 <translation id="5300589172476337783">បង្ហាញ</translation>
 <translation id="5301954838959518834">យល់ព្រម ខ្ញុំយល់ហើយ</translation>
-<translation id="5307446750509046227">សម្អាតទំហំផ្ទុកគេហទំព័រ</translation>
 <translation id="5313967007315987356">បន្ថែមគេហទំព័រ</translation>
 <translation id="5317780077021120954">រក្សាទុក</translation>
 <translation id="5335288049665977812">អនុញ្ញាតឲ្យគេហទំព័រដំណើរការ JavaScript (បានណែនាំ)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">ទប់ស្កាត់ JavaScript សម្រាប់គេហទំព័រជាក់លាក់។</translation>
 <translation id="8816026460808729765">ទប់ស្កាត់​គេហទំព័រ​មិនឱ្យ​ចូលប្រើ​ឧបករណ៍​ចាប់សញ្ញា</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ឧបករណ៍ផ្ទុកទិន្នន័យ</translation>
 <translation id="8926666909099850184">NFC ត្រូវ​បាន​បិទសម្រាប់​ឧបករណ៍​នេះ។ បើក NFC នៅក្នុង<ph name="BEGIN_LINK" />ការកំណត់ Android<ph name="END_LINK" />។</translation>
 <translation id="8929372349074745002">គេហទំព័រនេះ​បើក និងឆ្លើយតបយ៉ាងរហ័ស​សម្រាប់​មនុស្សភាគច្រើន</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">បើក​ការអនុញ្ញាត​សម្រាប់ <ph name="APP_NAME" /> នៅក្នុង​<ph name="BEGIN_LINK" />ការកំណត់ Android<ph name="END_LINK" />។</translation>
 <translation id="945632385593298557">ចូលប្រើម៉ៃក្រូហ្វូនរបស់អ្នក</translation>
 <translation id="965817943346481315">ទប់ស្កាត់ ​ប្រសិនបើ​គេហទំព័របង្ហាញ​ការផ្សាយពាណិជ្ជកម្ម​ដែលនាំឱ្យយល់ច្រឡំ ឬរំខាន (បានណែនាំ)</translation>
+<translation id="967624055006145463">​ទិន្នន័យដែល​បាន​រក្សា​ទុក</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
index 163d510..1aa21078 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">ನ್ಯಾವಿಗೇಶನ್‌ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ: <ph name="URL" /></translation>
 <translation id="4278390842282768270">ಅನುಮತಿಸಲಾಗಿದೆ</translation>
 <translation id="429312253194641664">ಒಂದು ಸೈಟ್, ಮಾಧ್ಯಮವನ್ನು ಪ್ಲೇ ಮಾಡುತ್ತಿದೆ</translation>
+<translation id="4336434711095810371">ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ</translation>
 <translation id="4433925000917964731">Lite ಪುಟವನ್ನು Google ಒದಗಿಸಿದೆ</translation>
 <translation id="4434045419905280838">ಪಾಪ್-ಅಪ್‌ಗಳು ಹಾಗೂ ಮರುನಿರ್ದೇಶನಗಳು</translation>
 <translation id="445467742685312942">ಸಂರಕ್ಷಿತ ವಿಷಯವನ್ನು ಪ್ಲೇ ಮಾಡಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿ ನೀಡಿ</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌</translation>
 <translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
 <translation id="5301954838959518834">ಸರಿ, ಅರ್ಥವಾಯಿತು</translation>
-<translation id="5307446750509046227">ಸೈಟ್ ಸಂಗ್ರಹಣೆಯನ್ನು ಅಳಿಸಿ</translation>
 <translation id="5313967007315987356">ಸೈಟ್ ಸೇರಿಸಿ</translation>
 <translation id="5317780077021120954">ಉಳಿಸು</translation>
 <translation id="5335288049665977812">JavaScript ರನ್ ಮಾಡಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
@@ -229,6 +229,7 @@
 <translation id="8261506727792406068">ಅಳಿಸಿ</translation>
 <translation id="8300705686683892304">ಆ್ಯಪ್ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation>
 <translation id="8372893542064058268">ನಿರ್ದಿಷ್ಟ ಸೈಟ್‌ಗಾಗಿ ಹಿನ್ನೆಲೆ ಸಿಂಕ್‌ ಅನುಮತಿಸಿ.</translation>
+<translation id="8376384591331888629">ಈ ಸೈಟ್‌ನಲ್ಲಿನ ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ಒಳಗೊಂಡಿದೆ</translation>
 <translation id="83792324527827022">ಒಂದು ಸೈಟ್ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಹಾಗೂ ಮೈಕ್ರೊಫೋನ್ ಅನ್ನು ಬಳಸುತ್ತಿದೆ</translation>
 <translation id="8380167699614421159">ಅತಿಕ್ರಮಣಕಾರಿಯಾಗಿರುವ ಅಥವಾ ತಪ್ಪುದಾರಿಗೆಳೆಯುವ ಜಾಹೀರಾತುಗಳನ್ನು ಈ ಸೈಟ್ ತೋರಿಸುತ್ತದೆ</translation>
 <translation id="8394832520002899662">ಸೈಟ್‌ಗೆ ಮರಳಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
@@ -250,7 +251,6 @@
 <translation id="8801436777607969138">ನಿರ್ದಿಷ್ಟ ಸೈಟ್‌ಗೆ JavaScript ಅನ್ನು ನಿರ್ಬಂಧಿಸಿ.</translation>
 <translation id="8816026460808729765">ಸೆನ್ಸರ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸದಂತೆ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ಸಂಗ್ರಹಣೆ</translation>
 <translation id="8926666909099850184">ಈ ಸಾಧನದಲ್ಲಿ NFC ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ. ಇದನ್ನು <ph name="BEGIN_LINK" />Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> ತೆರೆಯಿರಿ.</translation>
 <translation id="8929372349074745002">ಈ ಸೈಟ್ ಸಾಕಷ್ಟು ಜನರಿಗೆ ತ್ವರಿತವಾಗಿ ತೆರೆಯುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +262,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> <ph name="APP_NAME" /> ಗಾಗಿ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ.</translation>
 <translation id="945632385593298557">ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶಿಸಿ</translation>
 <translation id="965817943346481315">ಅತಿಕ್ರಮಣಕಾರಿಯಾಗಿರುವ ಅಥವಾ ತಪ್ಪುದಾರಿಗೆಳೆಯುವ ಜಾಹೀರಾತುಗಳನ್ನು ಸೈಟ್ ತೋರಿಸಿದರೆ ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
+<translation id="967624055006145463">ಸಂಗ್ರಹಣೆ ಮಾಡಿರುವ ಡೇಟಾ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
index 0c917536..e5d5554 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">탐색이 차단됨: <ph name="URL" /></translation>
 <translation id="4278390842282768270">허용</translation>
 <translation id="429312253194641664">사이트에서 미디어 재생 중</translation>
+<translation id="4336434711095810371">모든 데이터 삭제</translation>
 <translation id="4433925000917964731">Google에서 제공하는 라이트 페이지</translation>
 <translation id="4434045419905280838">팝업 및 리디렉션</translation>
 <translation id="445467742685312942">사이트에서 보호된 콘텐츠를 재생하도록 허용</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">시크릿 탭</translation>
 <translation id="5300589172476337783">표시</translation>
 <translation id="5301954838959518834">확인</translation>
-<translation id="5307446750509046227">사이트 저장용량 삭제</translation>
 <translation id="5313967007315987356">사이트 추가</translation>
 <translation id="5317780077021120954">저장</translation>
 <translation id="5335288049665977812">사이트에서 자바스크립트를 실행하도록 허용(권장)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">특정 사이트의 자바스크립트를 차단합니다.</translation>
 <translation id="8816026460808729765">사이트에서 센서에 액세스하지 못하도록 차단</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">저장소</translation>
 <translation id="8926666909099850184">기기에서 NFC가 사용 중지되어 있습니다. <ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서 NFC를 사용 설정하세요.</translation>
 <translation id="8929372349074745002">이 사이트는 대부분의 사용자를 대상으로 빠르게 열리고 응답합니다.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서 <ph name="APP_NAME" /> 관련 권한을 허용하세요.</translation>
 <translation id="945632385593298557">마이크에 액세스</translation>
 <translation id="965817943346481315">사이트에서 방해가 되거나 사용자를 현혹하는 광고를 표시하는 경우 광고 차단(권장)</translation>
+<translation id="967624055006145463">저장된 데이터</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
index 0843411..9808d87 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Чабыттоо бөгөттөлгөн: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Уруксат берилген</translation>
 <translation id="429312253194641664">Сайтта медиа файл ойнотулууда</translation>
+<translation id="4336434711095810371">Бардык маалыматты өчүрүү</translation>
 <translation id="4433925000917964731">Барактын lite-версиясы Google аркылуу алынган.</translation>
 <translation id="4434045419905280838">Калкыма терезелер жана багыттоолор</translation>
 <translation id="445467742685312942">Сайттарга корголгон мазмунду ойнотууга уруксат берүү</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Жашыруун өтмөк</translation>
 <translation id="5300589172476337783">Көрсөтүү</translation>
 <translation id="5301954838959518834">Жарайт, түшүндүм</translation>
-<translation id="5307446750509046227">Сайт сактагычын тазалоо</translation>
 <translation id="5313967007315987356">Сайт кошуу</translation>
 <translation id="5317780077021120954">Сактоо</translation>
 <translation id="5335288049665977812">Сайттарга JavaScript'ти иштетүүгө уруксат берилсин (сунушталат)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Белгилүү бир сайтта JavaScript'ти бөгөттөө.</translation>
 <translation id="8816026460808729765">Сайттардын сенсорлорду колдонуусун бөгөттөө</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Сактагыч</translation>
 <translation id="8926666909099850184">NFC бул түзмөктө өчүрүлгөн. <ph name="BEGIN_LINK" />Android жөндөөлөрүнө<ph name="END_LINK" /> өтүп, аны күйгүзүңүз.</translation>
 <translation id="8929372349074745002">Адатта бул сайт тез ачылат</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="APP_NAME" /> колдонмосу үчүн уруксаттарды <ph name="BEGIN_LINK" />Android Жөндөөлөрүнөн<ph name="END_LINK" /> күйгүзүңүз.</translation>
 <translation id="945632385593298557">Микрофонуңузга мүмкүнчүлүк алуу</translation>
 <translation id="965817943346481315">Эгер сайт тажатма же адаштыруучу жарнамаларды көрсөтүп баштаса, бөгөттөлсүн (сунушталат)</translation>
+<translation id="967624055006145463">Сакталган дайындар</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
index 28d9d59..b4af552 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">ການນໍາທາງຖືກບລັອກໄວ້: <ph name="URL" /></translation>
 <translation id="4278390842282768270">ອະນຸຍາດແລ້ວ</translation>
 <translation id="429312253194641664">ເວັບໄຊກຳລັງຫຼິ້ນສື່ຢູ່</translation>
+<translation id="4336434711095810371">ລຶບລ້າງຂໍ້ມູນທັງໝົດ</translation>
 <translation id="4433925000917964731">ໜ້າ Lite ທີ່ Google ສະໜອງໃຫ້</translation>
 <translation id="4434045419905280838">ປັອບອັບ ແລະ ການປ່ຽນເສັ້ນທາງ</translation>
 <translation id="445467742685312942">ອະນຸຍາດໃຫ້ເວັບໄຊຫຼິ້ນເນື້ອຫາທີ່ໄດ້ຮັບການປົກປ້ອງ</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ແຖບທີ່ບໍ່ເຜີຍຕົວຕົນ</translation>
 <translation id="5300589172476337783">ສະ​ແດງ​</translation>
 <translation id="5301954838959518834">ຕົກລົງ, ເຂົ້າໃຈແລ້ວ</translation>
-<translation id="5307446750509046227">ລຶບລ້າງບ່ອນເກັບຂໍ້ມູນເວັບໄຊ</translation>
 <translation id="5313967007315987356">ເພີ່ມ​ເວັບ​ໄຊ​ທ໌</translation>
 <translation id="5317780077021120954">ບັນທຶກ</translation>
 <translation id="5335288049665977812">ອະນຸຍາດໃຫ້ເວັບໄຊເປີດໃຊ້ JavaScript (ແນະນຳ)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">ບລັອກ JavaScript ສຳລັບເວັບໄຊສະເພາະ.</translation>
 <translation id="8816026460808729765">ບລັອກເວັບໄຊບໍ່ໃຫ້ເຂົາເຖິງເຊັນເຊີ</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ການເກັບຂໍ້ມູນ</translation>
 <translation id="8926666909099850184">NFC ປິດຢູ່ສຳລັບອຸປະກອນນີ້. ກະລຸນາເປີດມັນໃນ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າ Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">ເວັບໄຊນີ້ເປີດ ແລະ ຕອບສະໜອງຢ່າງວ່ອງໄວສຳລັບຄົນສ່ວນໃຫຍ່</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">ເປີດການອະນຸຍາດສຳລັບ <ph name="APP_NAME" /> ໃນ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າ Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">ເຂົ້າ​ຫາ​ໄມ​ໂຄ​ຣ​ໂຟນ​ຂອງ​ທ່ານ</translation>
 <translation id="965817943346481315">ບລັອກຖ້າເວັບໄຊສະແດງໂຄສະນາທີ່ລົບກວນ ຫຼື ຫຼອກລວງ (ແນະນຳ)</translation>
+<translation id="967624055006145463">ເກັບຂໍ້ມູນໄວ້ແລ້ວ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
index 642db0c0..9222d037 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Naršymas užblokuotas: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Leidžiama</translation>
 <translation id="429312253194641664">Svetainėje leidžiama medija</translation>
+<translation id="4336434711095810371">Išvalyti visus duomenis</translation>
 <translation id="4433925000917964731">Supaprastintasis puslapis, kurį teikia „Google“</translation>
 <translation id="4434045419905280838">Iššok. langai ir peradresavimai</translation>
 <translation id="445467742685312942">Leisti svetainėms leisti saugomą turinį</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognito skirtukas</translation>
 <translation id="5300589172476337783">Rodyti</translation>
 <translation id="5301954838959518834">Gerai, supratau</translation>
-<translation id="5307446750509046227">Išvalyti svetainės saug.</translation>
 <translation id="5313967007315987356">Pridėti svetainę</translation>
 <translation id="5317780077021120954">Išsaugoti</translation>
 <translation id="5335288049665977812">Leisti svetainėms paleisti „JavaScript“ (rekomenduojama)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Ištrinti</translation>
 <translation id="8300705686683892304">Valdo programa</translation>
 <translation id="8372893542064058268">Leisti fono sinchronizavimą konkrečioje svetainėje.</translation>
+<translation id="8376384591331888629">Įskaitant trečiosios šalies slapukus jūsų svetainėje</translation>
 <translation id="83792324527827022">Svetainėje naudojamas jūsų fotoaparatas ir mikrofonas</translation>
 <translation id="8380167699614421159">Šioje svetainėje rodomi nepageidaujami arba klaidinantys skelbimai</translation>
 <translation id="8394832520002899662">Norėdami grįžti į svetainę, palieskite</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Blokuoti „JavaScript“ konkrečioje svetainėje.</translation>
 <translation id="8816026460808729765">Svetainės blokuojamos, kad nepasiektų jutiklių</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Saugykla</translation>
 <translation id="8926666909099850184">ALR išjungtas šiame įrenginyje. Įjunkite ALR <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Ši svetainė daugumai žmonių atsidaro ir reaguoja greitai</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Įjunkite „<ph name="APP_NAME" />“ leidimus <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Prieiga prie mikrofono</translation>
 <translation id="965817943346481315">Blokuoti, jei svetainėje rodomi nepageidaujami arba klaidinantys skelbimai (rekomenduojama)</translation>
+<translation id="967624055006145463">Saugomi duomenys</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
index fb814f0f..1678f54 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigācija ir bloķēta: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Atļauts</translation>
 <translation id="429312253194641664">Vietne atskaņo multivides saturu</translation>
+<translation id="4336434711095810371">Notīrīt visus datus</translation>
 <translation id="4433925000917964731">Vienkāršota lapa, ko nodrošina Google</translation>
 <translation id="4434045419905280838">Uznirstošie elem. un novirzīšana</translation>
 <translation id="445467742685312942">Ļaut vietnēm atskaņot aizsargātu saturu</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognito cilne</translation>
 <translation id="5300589172476337783">Rādīt</translation>
 <translation id="5301954838959518834">Labi, sapratu</translation>
-<translation id="5307446750509046227">Notīrīt vietnes krātuvi</translation>
 <translation id="5313967007315987356">Pievienot vietni</translation>
 <translation id="5317780077021120954">Saglabāt</translation>
 <translation id="5335288049665977812">Atļaut vietnēm izmantot JavaScript (ieteicams)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Dzēst</translation>
 <translation id="8300705686683892304">Pārvalda lietotne</translation>
 <translation id="8372893542064058268">Atļaut sinhronizāciju fonā konkrētai vietnei</translation>
+<translation id="8376384591331888629">Arī šajā vietnē esošos trešo pušu sīkfailus</translation>
 <translation id="83792324527827022">Kāda vietne izmanto jūsu kameru un mikrofonu</translation>
 <translation id="8380167699614421159">Šajā vietnē tiek rādītas traucējošas vai maldinošas reklāmas</translation>
 <translation id="8394832520002899662">Lai atgrieztos vietnē, pieskarieties šeit</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Bloķēt JavaScript konkrētai vietnei.</translation>
 <translation id="8816026460808729765">Bloķēt vietņu piekļuvi sensoriem</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Krātuve</translation>
 <translation id="8926666909099850184">Šajā ierīcē tehnoloģija NFC ir izslēgta. Ieslēdziet to <ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Lielākajai daļai lietotāju šī vietne atveras un reaģē ātri.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" /> ieslēdziet atļaujas lietotnei <ph name="APP_NAME" />.</translation>
 <translation id="945632385593298557">Piekļuve mikrofonam</translation>
 <translation id="965817943346481315">Bloķēt, ja vietnē tiek rādītas traucējošas vai maldinošas reklāmas (ieteicams)</translation>
+<translation id="967624055006145463">Dati saglabāti</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
index 275efab..1fb464bd 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Навигацијата е блокирана: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Дозволено</translation>
 <translation id="429312253194641664">Сајтот репродуцира аудиовизуелни содржини</translation>
+<translation id="4336434711095810371">Избриши ги сите податоци</translation>
 <translation id="4433925000917964731">Lite-страница овозможена од Google</translation>
 <translation id="4434045419905280838">Скокачки прозорци/пренасочувања</translation>
 <translation id="445467742685312942">Дозволи сајтовите да пуштаат заштитени содржини</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Картичка инкогнито</translation>
 <translation id="5300589172476337783">Прикажи</translation>
 <translation id="5301954838959518834">Добро, сфатив</translation>
-<translation id="5307446750509046227">Избриши го капацитетот</translation>
 <translation id="5313967007315987356">Додај локација</translation>
 <translation id="5317780077021120954">Зачувај</translation>
 <translation id="5335288049665977812">Дозволи сајтовите да извршуваат JavaScript (се препорачува)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Избриши</translation>
 <translation id="8300705686683892304">Управувани од апликација</translation>
 <translation id="8372893542064058268">Дозволи Синхронизација во заднина за одреден сајт.</translation>
+<translation id="8376384591331888629">Вклучувајќи колачиња од трети страни</translation>
 <translation id="83792324527827022">Сајтот ги користи камерата и микрофонот</translation>
 <translation id="8380167699614421159">Сајтов прикажува нападни или лажни реклами</translation>
 <translation id="8394832520002899662">Допрете за да се вратите на сајтот</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Блокирај JavaScript за одреден сајт.</translation>
 <translation id="8816026460808729765">Блокирајте го пристапот до сензорите за сајтовите</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Склад</translation>
 <translation id="8926666909099850184">NFC е исклучена за уредов. Вклучете ја во <ph name="BEGIN_LINK" />„Поставки за Android“<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Сајтов се отвора и реагира брзо за повеќето луѓе</translation>
 <translation id="8941729603749328384">www.primer.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Вклучете ги дозволите за <ph name="APP_NAME" /> во <ph name="BEGIN_LINK" />Поставки за Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Пристапи до микрофонот</translation>
 <translation id="965817943346481315">Блокирај ако сајтот прикажува нападни или лажни реклами (препорачано)</translation>
+<translation id="967624055006145463">Складирани податоци</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
index 2299f01f..c01bbd6 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">നാവിഗേഷൻ തടഞ്ഞിരിക്കുന്നു: <ph name="URL" /></translation>
 <translation id="4278390842282768270">അനുവദനീയം</translation>
 <translation id="429312253194641664">സൈറ്റ്, മീഡിയ പ്ലേ ചെയ്യുന്നു</translation>
+<translation id="4336434711095810371">എല്ലാ ഡാറ്റയും മായ്ക്കുക</translation>
 <translation id="4433925000917964731">Google നല്‍കുന്ന ലൈറ്റ് പേജ്</translation>
 <translation id="4434045419905280838">പോപ്-അപ്പുകളും റീഡയറക്‌റ്റുകളും</translation>
 <translation id="445467742685312942">പരിരക്ഷിത ഉള്ളടക്കം പ്ലേ ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കുക</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">അദൃശ്യ ടാബ്</translation>
 <translation id="5300589172476337783">കാണിക്കുക</translation>
 <translation id="5301954838959518834">മനസ്സിലായി</translation>
-<translation id="5307446750509046227">സൈറ്റ് സംഭരണം മായ്ക്കൂ</translation>
 <translation id="5313967007315987356">സൈറ്റ് ചേർക്കുക</translation>
 <translation id="5317780077021120954">സംരക്ഷിക്കുക</translation>
 <translation id="5335288049665977812">JavaScript റൺ ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കുക (ശുപാർശചെയ്‌തിരിക്കുന്നു)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">ഇല്ലാതാക്കുക</translation>
 <translation id="8300705686683892304">ആപ്പ് മാനേജ് ചെയ്യുന്നത്</translation>
 <translation id="8372893542064058268">ഒരു പ്രത്യേക സൈറ്റിന് വേണ്ടി പശ്ചാത്തലം സമന്വയിപ്പിക്കൽ അനുവദിക്കുക.</translation>
+<translation id="8376384591331888629">ഈ സൈറ്റിൽ മൂന്നാം കക്ഷി കുക്കികളെ ഉൾപ്പെടുത്തുന്നു</translation>
 <translation id="83792324527827022">ഒരു സൈറ്റ് നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കുന്നു</translation>
 <translation id="8380167699614421159">ഈ സൈറ്റ്, അനാവശ്യമോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങള്‍ കാണിക്കുന്നു</translation>
 <translation id="8394832520002899662">സൈറ്റിലേക്ക് മടങ്ങാൻ ടാപ്പ് ചെയ്യുക</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">ഒരു നിർദ്ദിഷ്‌ട സൈറ്റിനായി JavaScript ബ്ലോക്ക് ചെയ്യുക.</translation>
 <translation id="8816026460808729765">സെൻസറുകൾ ആക്‌സസ് ചെയ്യുന്നതിൽ നിന്ന് സൈറ്റുകളെ ബ്ലോക്ക് ചെയ്യുക</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">സംഭരണം</translation>
 <translation id="8926666909099850184">ഈ ഉപകരണത്തിനുള്ള NFC ഓഫാണ്. ഇത് <ph name="BEGIN_LINK" />Android ക്രമീകരണത്തിൽ<ph name="END_LINK" /> ഓണാക്കുക.</translation>
 <translation id="8929372349074745002">കൂടുതൽ ആളുകൾക്കും ഈ സൈറ്റ് വേഗത്തിൽ തുറക്കുകയും പ്രതികരിക്കുകയും ചെയ്യുന്നു</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android ക്രമീകരണത്തിൽ<ph name="END_LINK" /> <ph name="APP_NAME" /> ആപ്പിനായി അനുമതികൾ ഓണാക്കുക.</translation>
 <translation id="945632385593298557">നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യുക</translation>
 <translation id="965817943346481315">സൈറ്റ്, അനാവശ്യമോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങള്‍ കാണിക്കുന്നുണ്ടെങ്കില്‍ ബ്ലോക്ക് ചെയ്യുക (ശുപാര്‍ശ ചെയ്യുന്നു)</translation>
+<translation id="967624055006145463">ഡാറ്റ സംഭരിച്ചു</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
index 66f817a..0111b02 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Навигацыг хориглосон байна: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Зөвшөөрөгдсөн</translation>
 <translation id="429312253194641664">Сайт медиа тоглуулж байна</translation>
+<translation id="4336434711095810371">Бүх өгөгдлийг устгах</translation>
 <translation id="4433925000917964731">Google-с өгч буй энгийн хуудас</translation>
 <translation id="4434045419905280838">Попап болон дахин чиглүүлэлт</translation>
 <translation id="445467742685312942">Сайтуудад хамгаалагдсан контент тоглуулахыг зөвшөөрөх</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Нууцлалтай чихтэй хуудас</translation>
 <translation id="5300589172476337783">Харуулах</translation>
 <translation id="5301954838959518834">OK, ойлголоо</translation>
-<translation id="5307446750509046227">Сайтын санг устгах</translation>
 <translation id="5313967007315987356">Сайт нэмэх</translation>
 <translation id="5317780077021120954">Хадгалах</translation>
 <translation id="5335288049665977812">Сайтад JavaScript-г ажиллуулахыг зөвшөөрөх (санал болгосон)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Зарим сайт дээр JavaScript-г блоклоно уу.</translation>
 <translation id="8816026460808729765">Сайтуудыг мэдрэгчид хандахыг хориглох</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Хадгалалт</translation>
 <translation id="8926666909099850184">Энэ төхөөрөмж дээр NFC унтраалттай байна. Үүнийг <ph name="BEGIN_LINK" />Android-н тохиргоо<ph name="END_LINK" /> хэсэгт асаана уу.</translation>
 <translation id="8929372349074745002">Энэ сайт ихэнх хүнд хурдан нээгдэж, хариулдаг</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="APP_NAME" />-н зөвшөөрлийг <ph name="BEGIN_LINK" />Андройдын тохиргоо<ph name="END_LINK" />-нд асаана уу.</translation>
 <translation id="945632385593298557">Микрофонд хандах</translation>
 <translation id="965817943346481315">Сайт төвөгтэй эсвэл хуурамч зар харуулсан тохиолдолд блоклох (санал болгосон)</translation>
+<translation id="967624055006145463">Хадгалсан өгөгдөл</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
index 6e31378..c8d010d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">नेव्हिगेशन अवरोधित केले आहे: <ph name="URL" /></translation>
 <translation id="4278390842282768270">अनुमत</translation>
 <translation id="429312253194641664">साइट मीडिया प्ले करत आहे</translation>
+<translation id="4336434711095810371">सर्व डेटा साफ करा</translation>
 <translation id="4433925000917964731">Google द्वारे पुरवलेले लाइट पेज</translation>
 <translation id="4434045419905280838">पॉप-अप आणि रीडिरेक्ट</translation>
 <translation id="445467742685312942">साइटना संरक्षित आशय प्ले करू द्या</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">गुप्त टॅब</translation>
 <translation id="5300589172476337783">दर्शवा</translation>
 <translation id="5301954838959518834">ठीक आहे, समजले</translation>
-<translation id="5307446750509046227">साइट स्टोरेज साफ करा</translation>
 <translation id="5313967007315987356">साइट जोडा</translation>
 <translation id="5317780077021120954">सेव्ह करा</translation>
 <translation id="5335288049665977812">साइटना JavaScript रन करण्याची अनुमती द्या (शिफारस केलेले)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">हटवा</translation>
 <translation id="8300705686683892304">ॲपद्वारे व्यवस्थापित</translation>
 <translation id="8372893542064058268">विशिष्ट साइटसाठी पार्श्वभूमी संकालनासाठी अनुमती द्या.</translation>
+<translation id="8376384591331888629">या साइटवरील तृतीय-पक्ष कुकीच्या समावेशासह</translation>
 <translation id="83792324527827022">साइट तुमचा कॅमेरा आणि मायक्रोफोन वापरत आहे</translation>
 <translation id="8380167699614421159">ही साइट अनाहूत किंवा दिशाभूल करणाऱ्या जाहिराती दाखवते</translation>
 <translation id="8394832520002899662">साइटवर परत जाण्यासाठी टॅप करा</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">विशिष्ट साइटसाठी JavaScript ब्लॉक करा.</translation>
 <translation id="8816026460808729765">साइटना सेन्सर ॲक्सेस करण्यापासून ब्लॉक करा</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">स्टोरेज</translation>
 <translation id="8926666909099850184">या डिव्हाइससाठी NFC बंद केले आहे. ते <ph name="BEGIN_LINK" />Android सेटिंग्जमध्ये<ph name="END_LINK" /> सुरू करा.</translation>
 <translation id="8929372349074745002">बहुतेक लोकांसाठी ही साइट झटपटपणे उघडते आणि प्रतिसाद देते</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android सेटिंग्ज<ph name="END_LINK" /> मध्‍ये <ph name="APP_NAME" /> साठी परवानग्या सुरू करा.</translation>
 <translation id="945632385593298557">तुमचा मायक्रोफोन ॲक्सेस करा</translation>
 <translation id="965817943346481315">साइट अनाहूत किंवा दिशाभूल करणाऱ्या जाहिराती दाखवत असल्यास ब्लॉक करा (शिफारस केलेले)</translation>
+<translation id="967624055006145463">डेटा स्टोअर केला</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
index 6deea613..5dc451f 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigasi disekat: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Dibenarkan</translation>
 <translation id="429312253194641664">Tapak sedang memainkan media</translation>
+<translation id="4336434711095810371">Kosongkan semua data</translation>
 <translation id="4433925000917964731">Halaman Lite disediakan oleh Google</translation>
 <translation id="4434045419905280838">Tetingkap timbul dan ubah hala</translation>
 <translation id="445467742685312942">Benarkan tapak memainkan kandungan yang dilindungi</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Tab Inkognito</translation>
 <translation id="5300589172476337783">Paparkan</translation>
 <translation id="5301954838959518834">OK, faham</translation>
-<translation id="5307446750509046227">Kosongkan storan tapak</translation>
 <translation id="5313967007315987356">Tambahkan tapak</translation>
 <translation id="5317780077021120954">Simpan</translation>
 <translation id="5335288049665977812">Benarkan tapak menjalankan JavaScript (disyorkan)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Sekat JavaScript untuk tapak tertentu.</translation>
 <translation id="8816026460808729765">Sekat tapak daripada mengakses penderia</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Storan</translation>
 <translation id="8926666909099850184">NFC dimatikan untuk peranti ini. Hidupkan dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Tapak ini dibuka dan memberikan respons dengan pantas untuk kebanyakan orang</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Hidupkan kebenaran untuk <ph name="APP_NAME" /> dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Akses mikrofon anda</translation>
 <translation id="965817943346481315">Sekat jika tapak menyiarkan iklan yang mengganggu atau mengelirukan (disyorkan)</translation>
+<translation id="967624055006145463">Data disimpan</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
index 5e12f71..e6ecc43 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">သွားလာမှုပြလမ်းညွှန်အား ပိတ်ထား၏- <ph name="URL" /></translation>
 <translation id="4278390842282768270">ခွင့်ပြုထား</translation>
 <translation id="429312253194641664">ဝဘ်ဆိုက်တစ်ခုက မီဒီယာကို ဖွင့်နေသည်</translation>
+<translation id="4336434711095810371">ဒေတာအားလုံး ရှင်းထုတ်ရန်</translation>
 <translation id="4433925000917964731">Google ၏ အပေါ့စား စာမျက်နှာ</translation>
 <translation id="4434045419905280838">ပေါ့ပ်အပ်နှင့် တစ်ဆင့်ညွှန်ချက်</translation>
 <translation id="445467742685312942">ကာကွယ်ထားသော အကြောင်းအရာများ ဖွင့်ရန် ဝဘ်ဆိုက်များကို� ခွင့်ပြုသည်</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ရုပ်ဖျက်တဘ်</translation>
 <translation id="5300589172476337783">ပြရန်</translation>
 <translation id="5301954838959518834">OK</translation>
-<translation id="5307446750509046227">သိုလှောင်ခန်း ရှင်းခြင်း</translation>
 <translation id="5313967007315987356">ဆိုက်အား ထည့်ရန်</translation>
 <translation id="5317780077021120954">သိမ်းရန်</translation>
 <translation id="5335288049665977812">ဆိုက်များကို JavaScript အားဖွင့်ခွင့်ပေးပါ (အကြံပြုထားသည်)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">ဖျက်ရန်</translation>
 <translation id="8300705686683892304">အက်ပ်က စီမံခန့်ခွဲထားသည်</translation>
 <translation id="8372893542064058268">တိကျသည့်ဆိုက်အတွက် နောက်ခံတွင်စင့်ခ်လုပ်ခြင်းကို ခွင့်ပြုပါ</translation>
+<translation id="8376384591331888629">ဤဝဘ်ဆိုက်ရှိ ပြင်ပကုမ္ပဏီကွတ်ကီးများ အပါအဝင်</translation>
 <translation id="83792324527827022">ဝဘ်ဆိုက်တစ်ခုက သင့်ကင်မရာနှင့် မိုက်ကရိုဖုန်းကို အသုံးပြုနေသည်</translation>
 <translation id="8380167699614421159">ဤဝဘ်ဆိုက်က စိတ်အနှောင့်အယှက်ဖြစ်စေသော (သို့) အထင်အမြင်မှားစေသော ကြော်ငြာများကို ပြသည်</translation>
 <translation id="8394832520002899662">ဝဘ်ဆိုက်သို့ ပြန်သွားရန် တို့ပါ</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">သတ်မှတ်ထားသော ဝဘ်ဆိုက်အတွက် JavaScript ကို ပိတ်သည်။</translation>
 <translation id="8816026460808729765">ဝဘ်ဆိုက်များအား အာရုံခံစနစ်များ အသုံးပြုခြင်းကို တားမြစ်သည်</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">သိုလှောင်ခန်း</translation>
 <translation id="8926666909099850184">ဤစက်အတွက် NFC ကို ပိတ်ထားသည်။ <ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> ထဲတွင် ၎င်းကို ဖွင့်ပါ။</translation>
 <translation id="8929372349074745002">ဤဝဘ်ဆိုက်သည် လူအများစုအတွက် မြန်ဆန်စွာ ပွင့်ပြီး တုံ့ပြန်သည်</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> တွင် <ph name="APP_NAME" /> အတွက် ခွင့်ပြုချက်များကို ဖွင့်ပါ။</translation>
 <translation id="945632385593298557">သင့်မိုက်အား အသုံးပြုမည်</translation>
 <translation id="965817943346481315">စိတ်အနှောင့်အယှက်ဖြစ်စေသော (သို့) အထင်အမြင်မှားစေသော ကြော်ငြာများ ပြလျှင် ဝဘ်ဆိုက်ကို ပိတ်သည် (အကြံပြုထားသည်)</translation>
+<translation id="967624055006145463">သိမ်းဆည်းထားသည့် ဒေတာ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
index 167442a..ef4e16c2 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">नेभिगेशन रोकियो: <ph name="URL" /></translation>
 <translation id="4278390842282768270">अनुमति प्राप्त</translation>
 <translation id="429312253194641664">कुनै साइटले मिडियो प्ले गरिरहेको छ</translation>
+<translation id="4336434711095810371">सबै डेटा खाली गर्नुहोस्</translation>
 <translation id="4433925000917964731">Google ले प्रदान गरेको मूल पृष्ठको लाइट संस्करण</translation>
 <translation id="4434045419905280838">पपअप तथा रिडिरेक्टहरू</translation>
 <translation id="445467742685312942">साइटहरूलाई संरक्षित सामग्री प्ले गर्ने अनुमति दिनुहोस्</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">इन्कोग्निटो ट्याब</translation>
 <translation id="5300589172476337783">देखाउनुहोस्</translation>
 <translation id="5301954838959518834">ठिक छ, बुझेँ</translation>
-<translation id="5307446750509046227">साइटको भण्डारण खाली गर्नु</translation>
 <translation id="5313967007315987356">साइट थप्नुहोस्</translation>
 <translation id="5317780077021120954">बचत गर्नुहोस्</translation>
 <translation id="5335288049665977812">साइटहरूलाई JavaScript सञ्चालन गर्न अनुमति दिने (सिफारिस गरिएको)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">कुनै खास साइटमा JavaScript लाई रोक लगाउनुहोस्।</translation>
 <translation id="8816026460808729765">साइटहरूलाई सेन्सरहरूमाथि पहुँच राख्न नदिनुहोस्</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">भण्डारण</translation>
 <translation id="8926666909099850184">यो यन्त्रमा NFC निष्क्रिय पारिएको छ। <ph name="BEGIN_LINK" />Android का सेटिङ<ph name="END_LINK" /> मा गई यसलाई सक्रिय गर्नुहोस्।</translation>
 <translation id="8929372349074745002">यो साइट धेरै जसो मान्छेका यन्त्रमा छिट्टै खुल्छ</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android का सेटिङ<ph name="END_LINK" />मा गई <ph name="APP_NAME" /> लाई अनुमति दिनुहोस्।</translation>
 <translation id="945632385593298557">आफ्नो माइक्रोफोन पहुँच गर्नुहोस्</translation>
 <translation id="965817943346481315">साइटले हस्तक्षेपकारी वा भ्रामक विज्ञापनहरू देखाएमा त्यसलाई रोक लगाउनुहोस् (सिफारिस गरिएको)</translation>
+<translation id="967624055006145463">डेटा भण्डारण गरियो</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
index 7618a404..716389c0 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigatie is geblokkeerd: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Toegestaan</translation>
 <translation id="429312253194641664">Een site speelt media af</translation>
+<translation id="4336434711095810371">Alle gegevens wissen</translation>
 <translation id="4433925000917964731">Lite-pagina geleverd door Google</translation>
 <translation id="4434045419905280838">Pop-ups en omleidingen</translation>
 <translation id="445467742685312942">Sites toestaan om beschermde content af te spelen</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Incognitotabblad</translation>
 <translation id="5300589172476337783">Weergeven</translation>
 <translation id="5301954838959518834">OK, begrepen</translation>
-<translation id="5307446750509046227">Site-opslag wissen</translation>
 <translation id="5313967007315987356">Site toevoegen</translation>
 <translation id="5317780077021120954">Opslaan</translation>
 <translation id="5335288049665977812">Sites toestaan JavaScript uit te voeren (aanbevolen)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Verwijderen</translation>
 <translation id="8300705686683892304">Beheerd door app</translation>
 <translation id="8372893542064058268">Synchronisatie op de achtergrond toestaan voor een specifieke site.</translation>
+<translation id="8376384591331888629">Inclusief cookies van derden op deze site</translation>
 <translation id="83792324527827022">Een site gebruikt de camera en microfoon</translation>
 <translation id="8380167699614421159">Deze site geeft opdringerige of misleidende advertenties weer</translation>
 <translation id="8394832520002899662">Tik hier om terug te gaan naar de site</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Blokkeer JavaScript voor een specifieke site.</translation>
 <translation id="8816026460808729765">Sites geen toegang tot sensoren geven</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Opslag</translation>
 <translation id="8926666909099850184">NFC is uitgeschakeld voor dit apparaat. Schakel deze functie in via de <ph name="BEGIN_LINK" />Android-instellingen<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Deze site opent en reageert snel voor de meeste mensen</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Schakel rechten in voor <ph name="APP_NAME" /> via de <ph name="BEGIN_LINK" />Android-instellingen<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Toegang tot je microfoon</translation>
 <translation id="965817943346481315">Blokkeren als site opdringerige of misleidende advertenties weergeeft (aanbevolen)</translation>
+<translation id="967624055006145463">Opgeslagen gegevens</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
index 96a3473..b7bc305 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Nettadressen er blokkert: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Tillatt</translation>
 <translation id="429312253194641664">Et nettsted spiller av medier</translation>
+<translation id="4336434711095810371">Slett alle data</translation>
 <translation id="4433925000917964731">Forenklet versjon av siden levert av Google</translation>
 <translation id="4434045419905280838">Forgrunnsvinduer/viderekoblinger</translation>
 <translation id="445467742685312942">Tillat at nettsteder kan spille beskyttet innhold</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognitofane</translation>
 <translation id="5300589172476337783">Vis</translation>
 <translation id="5301954838959518834">Greit</translation>
-<translation id="5307446750509046227">Slett nettstedslagring</translation>
 <translation id="5313967007315987356">Legg til et nettsted</translation>
 <translation id="5317780077021120954">Lagre</translation>
 <translation id="5335288049665977812">Tillat nettsteder å kjøre JavaScript (anbefales)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blokkér JavaScript for et bestemt nettsted.</translation>
 <translation id="8816026460808729765">Blokkér nettsteder fra å få tilgang til sensorer</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Lagring</translation>
 <translation id="8926666909099850184">NFC er av for denne enheten. Slå det på i <ph name="BEGIN_LINK" />Android-innstillingene<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Dette nettstedet åpnes og svarer raskt for de fleste</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Slå på tillatelser for <ph name="APP_NAME" /> i <ph name="BEGIN_LINK" />Android-innstillingene<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Tilgang til mikrofonen din</translation>
 <translation id="965817943346481315">Blokkér hvis nettstedet viser forstyrrende eller villedende annonser (anbefalt)</translation>
+<translation id="967624055006145463">Lagrede data</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
index c8ec6d6..40fb22a7 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">ନାଭିଗେସନ୍ ଅବରୋଧ କରାଯାଇଛି: <ph name="URL" /></translation>
 <translation id="4278390842282768270">ଅନୁମୋଦିତ</translation>
 <translation id="429312253194641664">କୌଣସି ସାଇଟ୍ ମିଡିଆ ଚଲାଉଛି</translation>
+<translation id="4336434711095810371">ସମସ୍ତ ଡାଟା ଖାଲି କରନ୍ତୁ</translation>
 <translation id="4433925000917964731">Google ଦ୍ୱାରା ପ୍ରଦତ୍ତ ଲାଇଟ୍ ପୃଷ୍ଠା</translation>
 <translation id="4434045419905280838">ପପ୍-ଅପ୍ ଏବଂ ରିଡାଇରେକ୍‌ଟ</translation>
 <translation id="445467742685312942">ସାଇଟ୍‍ଗୁଡ଼ିକୁ ସୁରକ୍ଷିତ ବିଷୟବସ୍ତୁ ଚଳାଇବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ଇନ୍‌କଗ୍ନିଟୋ ଟାବ୍</translation>
 <translation id="5300589172476337783">ପ୍ରଦର୍ଶନ କରନ୍ତୁ</translation>
 <translation id="5301954838959518834">ଠିକ୍ ଅଛି, ବୁଝିଗଲି</translation>
-<translation id="5307446750509046227">ସାଇଟ୍‌ର ଷ୍ଟୋରେଜ୍ ଖାଲି କରନ୍ତୁ</translation>
 <translation id="5313967007315987356">ସାଇଟ୍ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="5317780077021120954">ସଞ୍ଚୟ</translation>
 <translation id="5335288049665977812">ସାଇଟ୍‌ଗୁଡ଼ିକୁ JavaScript ଚଲାଇବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">ଏକ ନିର୍ଦ୍ଧିଷ୍ଟ ସାଇଟ୍‌ ପାଇଁ JavaScript ଅବରୋଧ କରନ୍ତୁ।</translation>
 <translation id="8816026460808729765">ସେନ୍ସରଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରିବାରୁ ସାଇଟ୍‌ଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରନ୍ତୁ</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ଷ୍ଟୋରେଜ୍</translation>
 <translation id="8926666909099850184">ଏହି ଡିଭାଇସ୍ ପାଇଁ NFC ବନ୍ଦ ଅଛି। ଏହାକୁ <ph name="BEGIN_LINK" />Android ସେଟିଂସ୍‌<ph name="END_LINK" />ରେ ଚାଲୁ କରନ୍ତୁ।</translation>
 <translation id="8929372349074745002">ଏହି ସାଇଟ୍ ଅଧିକାଂଶ ଲୋକଙ୍କ ପାଇଁ ଶୀଘ୍ର ଖୋଲିଥାଏ ଏବଂ ଶୀଘ୍ର ବ୍ୟବହାର ପାଇଁ ପ୍ରସ୍ତୁତ ଥାଏ</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android ସେଟିଂସ<ph name="END_LINK" />ରେ <ph name="APP_NAME" /> ପାଇଁ ଅନୁମତି ଚାଲୁ କରନ୍ତୁ।</translation>
 <translation id="945632385593298557">ଆପଣଙ୍କର ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍ କରନ୍ତୁ</translation>
 <translation id="965817943346481315">ଯଦି ସାଇଟ୍ ଅନଧିକାର ପ୍ରବେଶ କରିଥିବା କିମ୍ବା ବିଭ୍ରାନ୍ତିକର ବିଜ୍ଞାପନ ଦେଖାଉଛି, ତେବେ ବ୍ଲକ୍ କରନ୍ତୁ(ସୁପାରିଶ୍ କରାଯାଇଛି)</translation>
+<translation id="967624055006145463">ଡାଟା ଷ୍ଟୋର୍ କରାଯାଇଛି</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
index 88efb625..04021588 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">ਨੈਵੀਗੇਸ਼ਨ ਬਲੌਕ ਕੀਤੀ ਹੈ: <ph name="URL" /></translation>
 <translation id="4278390842282768270">ਆਗਿਆ ਦਿੱਤੀ</translation>
 <translation id="429312253194641664">ਕੋਈ ਸਾਈਟ ਮੀਡੀਆ ਫ਼ਾਈਲ ਨੂੰ ਚਲਾ ਰਹੀ ਹੈ</translation>
+<translation id="4336434711095810371">ਸਾਰਾ ਡਾਟਾ ਕਲੀਅਰ ਕਰੋ</translation>
 <translation id="4433925000917964731">Google ਵੱਲੋਂ ਮੁਹੱਈਆ ਕਰਵਾਏ ਗਏ ਤੇਜ਼ੀ ਨਾਲ ਖੁੱਲ੍ਹਣ ਵਾਲੇ ਪੰਨੇ</translation>
 <translation id="4434045419905280838">ਪੌਪ-ਅੱਪ ਅਤੇ ਰੀਡਾਇਰੈਕਟ</translation>
 <translation id="445467742685312942">ਸਾਈਟਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕੀਤੀ ਸਮੱਗਰੀ ਚਲਾਉਣ ਦਿਓ</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">ਇਨਕੋਗਨਿਟੋ ਟੈਬ</translation>
 <translation id="5300589172476337783">ਦਿਖਾਓ</translation>
 <translation id="5301954838959518834">ਠੀਕ, ਸਮਝ ਲਿਆ</translation>
-<translation id="5307446750509046227">ਸਾਈਟ ਸਟੋਰੇਜ ਕਲੀਅਰ ਕਰੋ</translation>
 <translation id="5313967007315987356">ਸਾਈਟ ਜੋੜੋ</translation>
 <translation id="5317780077021120954">ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="5335288049665977812">ਸਾਈਟਾਂ ਨੂੰ JavaScript ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">ਮਿਟਾਓ</translation>
 <translation id="8300705686683892304">ਐਪ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ</translation>
 <translation id="8372893542064058268">ਇੱਕ ਖ਼ਾਸ ਸਾਈਟ ਲਈ ਬੈਕਗ੍ਰਾਊਂਡ ਸਮਕਾਲੀਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ।</translation>
+<translation id="8376384591331888629">ਇਸ ਸਾਈਟ 'ਤੇ ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕੁਕੀਜ਼ ਸਮੇਤ</translation>
 <translation id="83792324527827022">ਕੋਈ ਸਾਈਟ ਤੁਹਾਡਾ ਕੈਮਰਾ ਅਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਵਰਤ ਰਹੀ ਹੈ</translation>
 <translation id="8380167699614421159">ਇਹ ਸਾਈਟ ਦਖਲਅੰਦਾਜ਼ੀ ਜਾਂ ਗੁਮਰਾਹ ਕਰਨ ਵਾਲੇ ਵਿਗਿਆਪਨ ਦਿਖਾਉਂਦੀ ਹੈ</translation>
 <translation id="8394832520002899662">ਸਾਈਟ 'ਤੇ ਵਾਪਸ ਜਾਣ ਲਈ ਟੈਪ ਕਰੋ</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">ਕਿਸੇ ਖਾਸ ਸਾਈਟ ਲਈ JavaScript ਨੂੰ ਬਲਾਕ ਕਰੋ।</translation>
 <translation id="8816026460808729765">ਸਾਈਟਾਂ ਨੂੰ ਸੈਂਸਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਲਾਕ ਕਰੋ</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ਸਟੋਰੇਜ</translation>
 <translation id="8926666909099850184">ਇਸ ਡੀਵਾਈਸ ਲਈ NFC ਬੰਦ ਹੈ। ਇਸਨੂੰ <ph name="BEGIN_LINK" />Android ਸੈਟਿੰਗਾਂ<ph name="END_LINK" /> ਵਿੱਚ ਚਾਲੂ ਕਰੋ।</translation>
 <translation id="8929372349074745002">ਇਹ ਸਾਈਟ ਜ਼ਿਆਦਾਤਰ ਲੋਕਾਂ ਲਈ ਤੇਜ਼ੀ ਨਾਲ ਖੁੱਲ੍ਹਦੀ ਅਤੇ ਜਵਾਬ ਦਿੰਦੀ ਹੈ</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android ਸੈਟਿੰਗਾਂ<ph name="END_LINK" /> ਵਿੱਚ <ph name="APP_NAME" /> ਲਈ ਇਜਾਜ਼ਤਾਂ ਚਾਲੂ ਕਰੋ।</translation>
 <translation id="945632385593298557">ਆਪਣੇ ਮਾਈਕ੍ਰੋਫੋਨ ਤੱਕ ਪਹੁੰਚੋ</translation>
 <translation id="965817943346481315">ਜੇਕਰ ਸਾਈਟ ਦਖਲਅੰਦਾਜ਼ੀ ਅਤੇ ਗੁਮਰਾਹ ਕਰਨ ਵਾਲੇ ਵਿਗਿਆਪਨ ਦਿਖਾਉਂਦੀ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਬਲਾਕ ਕਰੋ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation>
+<translation id="967624055006145463">ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
index 193f969..bffddd8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Adres zablokowany: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Dopuszczone</translation>
 <translation id="429312253194641664">Strona odtwarza multimedia</translation>
+<translation id="4336434711095810371">Wyczyść wszystkie dane</translation>
 <translation id="4433925000917964731">Lżejsza wersja strony dostarczona przez Google</translation>
 <translation id="4434045419905280838">Pop-upy i przekierowania</translation>
 <translation id="445467742685312942">Zezwalaj stronom na odtwarzanie treści chronionych</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Karta incognito</translation>
 <translation id="5300589172476337783">Pokaż</translation>
 <translation id="5301954838959518834">Rozumiem</translation>
-<translation id="5307446750509046227">Wyczyść dane witryn</translation>
 <translation id="5313967007315987356">Dodaj stronę</translation>
 <translation id="5317780077021120954">Zapisz</translation>
 <translation id="5335288049665977812">Zezwalaj na wykonywanie kodu JavaScript w witrynach (zalecane)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Zablokuj JavaScript w określonej witrynie.</translation>
 <translation id="8816026460808729765">Blokuj stronom dostęp do czujników</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Pamięć</translation>
 <translation id="8926666909099850184">Funkcja NFC na tym urządzeniu jest wyłączona. Włącz ją w <ph name="BEGIN_LINK" />Ustawieniach Androida<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">U większości użytkowników ta strona szybko się otwiera i umożliwia płynną interakcję</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Przyznaj aplikacji <ph name="APP_NAME" /> uprawnienia w <ph name="BEGIN_LINK" />ustawieniach Androida<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Dostęp do mikrofonu</translation>
 <translation id="965817943346481315">Zablokuj, jeśli na stronie wyświetlają się uciążliwe lub wprowadzające w błąd reklamy (zalecane)</translation>
+<translation id="967624055006145463">Zapisane dane</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
index da0db02..c7688052 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">A Navegação GPS está bloqueada: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Permitido</translation>
 <translation id="429312253194641664">Um site está com mídia aberta</translation>
+<translation id="4336434711095810371">Limpar todos os dados</translation>
 <translation id="4433925000917964731">Página Lite exibida pelo Google</translation>
 <translation id="4434045419905280838">Pop-ups e redirecionamentos</translation>
 <translation id="445467742685312942">Permitir que sites reproduzam conteúdo protegido</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Guia anônima</translation>
 <translation id="5300589172476337783">Mostrar</translation>
 <translation id="5301954838959518834">Ok, entendi</translation>
-<translation id="5307446750509046227">Limpar armazen. de site</translation>
 <translation id="5313967007315987356">Adicionar site</translation>
 <translation id="5317780077021120954">Salvar</translation>
 <translation id="5335288049665977812">Permitir que sites executem o JavaScript (recomendado)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Excluir</translation>
 <translation id="8300705686683892304">Gerenciados por app</translation>
 <translation id="8372893542064058268">Permite a sincronização em segundo plano para um site específico.</translation>
+<translation id="8376384591331888629">Incluindo os cookies de terceiros desse site</translation>
 <translation id="83792324527827022">Um site está usando sua câmera e seu microfone</translation>
 <translation id="8380167699614421159">Neste site, há exibição de anúncios invasivos ou enganosos</translation>
 <translation id="8394832520002899662">Toque para voltar ao site</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Bloquear JavaScript para um site específico.</translation>
 <translation id="8816026460808729765">Impedir que sites acessem os sensores</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Armazenamento</translation>
 <translation id="8926666909099850184">A NFC está desativada neste dispositivo. Ative-a nas <ph name="BEGIN_LINK" />configurações do Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Este site abre e responde rapidamente para a maioria das pessoas</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Ative as permissões para o app <ph name="APP_NAME" /> nas <ph name="BEGIN_LINK" />configurações do Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Acessar seu microfone</translation>
 <translation id="965817943346481315">Bloquear se o site mostrar anúncios invasivos ou enganosos (recomendado)</translation>
+<translation id="967624055006145463">Dados armazenados</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
index cb6e616f..b8862a9 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">A navegação está bloqueada: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Permitido</translation>
 <translation id="429312253194641664">Um site está a reproduzir multimédia.</translation>
+<translation id="4336434711095810371">Limpar todos os dados</translation>
 <translation id="4433925000917964731">Página em modo lite fornecida pela Google</translation>
 <translation id="4434045419905280838">Pop-ups e redirecionamentos</translation>
 <translation id="445467742685312942">Permitir que os sites reproduzam conteúdos protegidos</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Separador de navegação anónima</translation>
 <translation id="5300589172476337783">Mostrar</translation>
 <translation id="5301954838959518834">OK, compreendi</translation>
-<translation id="5307446750509046227">Limpar armazen. do site</translation>
 <translation id="5313967007315987356">Adicionar site</translation>
 <translation id="5317780077021120954">Guardar</translation>
 <translation id="5335288049665977812">Permitir que os sites executem JavaScript (recomendado)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Eliminar</translation>
 <translation id="8300705686683892304">Geridos por aplicação</translation>
 <translation id="8372893542064058268">Permitir Sincronização em segundo plano num site específico.</translation>
+<translation id="8376384591331888629">Incluindo cookies de terceiros neste site</translation>
 <translation id="83792324527827022">Um site está a utilizar a sua câmara e microfone.</translation>
 <translation id="8380167699614421159">Este site apresenta anúncios intrusivos ou enganadores.</translation>
 <translation id="8394832520002899662">Toque para regressar ao site.</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Bloqueie JavaScript num site específico.</translation>
 <translation id="8816026460808729765">Impedir que os sites acedam aos sensores</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Armazenamento</translation>
 <translation id="8926666909099850184">O NFC está desativado para este dispositivo. Ative-o nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Este site é aberto e responde rapidamente para a maioria das pessoas.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Ative as autorizações para a app <ph name="APP_NAME" /> nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Aceder ao microfone</translation>
 <translation id="965817943346481315">Bloquear se o site apresentar anúncios intrusivos ou enganadores (recomendado)</translation>
+<translation id="967624055006145463">Dados armazenados</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
index d18463a..cedc4572 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigarea este blocată: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Se permite</translation>
 <translation id="429312253194641664">Un site redă fișiere media</translation>
+<translation id="4336434711095810371">Șterge toate datele</translation>
 <translation id="4433925000917964731">Pagină Lite oferită de Google</translation>
 <translation id="4434045419905280838">Ferestre pop-up și redirecționări</translation>
 <translation id="445467742685312942">Permite site-urilor să redea conținut protejat</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Filă incognito</translation>
 <translation id="5300589172476337783">Afișează</translation>
 <translation id="5301954838959518834">OK, am înțeles</translation>
-<translation id="5307446750509046227">Șterge stocare site-uri</translation>
 <translation id="5313967007315987356">Adaugă un site</translation>
 <translation id="5317780077021120954">Salvează</translation>
 <translation id="5335288049665977812">Permite site-urilor să ruleze JavaScript (recomandat)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blochează JavaScript pentru un anumit site.</translation>
 <translation id="8816026460808729765">Blochează întotdeauna accesul site-urilor la senzori</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Stocare</translation>
 <translation id="8926666909099850184">NFC este dezactivat pentru acest dispozitiv. Activează-l în <ph name="BEGIN_LINK" />Setări Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Site-ul se deschide și reacționează rapid în majoritatea cazurilor.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Activează permisiunile pentru <ph name="APP_NAME" /> din <ph name="BEGIN_LINK" />Setări Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Accesează microfonul</translation>
 <translation id="965817943346481315">Blochează dacă site-ul afișează anunțuri deranjante sau înșelătoare (recomandat)</translation>
+<translation id="967624055006145463">Date stocate</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
index a4f8af5..7dcc1e1 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Навигация заблокирована: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Разрешено</translation>
 <translation id="429312253194641664">На сайте воспроизводятся медиафайлы</translation>
+<translation id="4336434711095810371">Удалить все данные</translation>
 <translation id="4433925000917964731">Lite-версия страницы получена с помощью Google</translation>
 <translation id="4434045419905280838">Всплывающие окна и переадресация</translation>
 <translation id="445467742685312942">Разрешить сайтам воспроизводить защищенный контент</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Вкладка инкогнито</translation>
 <translation id="5300589172476337783">Показать</translation>
 <translation id="5301954838959518834">ОК</translation>
-<translation id="5307446750509046227">Удалить данные сайтов</translation>
 <translation id="5313967007315987356">Добавить сайт</translation>
 <translation id="5317780077021120954">Сохранить</translation>
 <translation id="5335288049665977812">Разрешить сайтам использовать JavaScript (рекомендуется)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Блокировать код JavaScript на определенном сайте.</translation>
 <translation id="8816026460808729765">Закрыть сайтам доступ к датчикам</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Хранилище</translation>
 <translation id="8926666909099850184">Функция NFC на этом устройстве отключена. Включите ее в <ph name="BEGIN_LINK" />настройках Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">У большинства пользователей этот сайт быстро загружается и без задержек отвечает на запросы.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Предоставьте приложению "<ph name="APP_NAME" />" разрешения в <ph name="BEGIN_LINK" />настройках Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Доступ к микрофону</translation>
 <translation id="965817943346481315">Блокировать, если сайт показывает навязчивую или вводящую в заблуждение рекламу (рекомендуется)</translation>
+<translation id="967624055006145463">Объем занятой памяти</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
index 0e51ba8..f07595d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">සංචාලනය අවහිර කර ඇත: <ph name="URL" /></translation>
 <translation id="4278390842282768270">ඉඩ දුන්</translation>
 <translation id="429312253194641664">වෙබ් අඩවියක් මාධ්‍ය ධාවන කරයි</translation>
+<translation id="4336434711095810371">සියලු දත්ත හිස් කරන්න</translation>
 <translation id="4433925000917964731">Google විසින් දෙනු ලබන සැහැල්ලු පිටුව</translation>
 <translation id="4434045419905280838">උත්පතන සහ හරවා යැවීම්</translation>
 <translation id="445467742685312942">මෙම වෙබ් අඩවියට ආරක්‍ෂිත අන්තර්ගතය ධාවන කිරීමට ඉඩ දෙන්න.</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">අප්‍රකට පටිත්ත</translation>
 <translation id="5300589172476337783">පෙන්වන්න</translation>
 <translation id="5301954838959518834">හරි, එය තේරුණා</translation>
-<translation id="5307446750509046227">වෙබ් අඩවි ආචයනය හිස් කරන්න</translation>
 <translation id="5313967007315987356">අඩවිය එක් කරන්න</translation>
 <translation id="5317780077021120954">සුරකින්න</translation>
 <translation id="5335288049665977812">ජාවාස්ක්‍රිප්ට් ධාවනය කිරීමට අඩවි වලට ඉඩ දෙන්න (නිර්දේශිතයි)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">නිශ්චිත වෙබ් අඩවියක් සඳහා ජාවාස්ක්‍රිප්ට් අවහිර කරන්න.</translation>
 <translation id="8816026460808729765">වෙබ් අඩවි සංවේදක වෙත ප්‍රවේශ වීම අවහිර කරන්න</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">ගබඩාව</translation>
 <translation id="8926666909099850184">මෙම උපාංගය සඳහා NFC අක්‍රියයි. <ph name="BEGIN_LINK" />Android සැකසීම්<ph name="END_LINK" /> තුළින් එය සක්‍රීය කරන්න.</translation>
 <translation id="8929372349074745002">මෙම අඩවිය බොහෝ පුද්ගලයින් සඳහා ඉක්මනින් විවෘත වන අතර ප්‍රතිචාර දක්වයි</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289"><ph name="APP_NAME" /> සඳහා අවසර <ph name="BEGIN_LINK" />Android සැකසීම්<ph name="END_LINK" /> තුළ ක්‍රියාත්මක කරන්න.</translation>
 <translation id="945632385593298557">ඔබේ මයික්‍රෆෝනය වෙත ප්‍රවේශ වන්න</translation>
 <translation id="965817943346481315">වෙබ් අඩවිය ආක්‍රමණශීලී හෝ නොමඟ යවන දැන්වීම් පෙන්වන්නේ නම් අවහිර කරන්න (නිර්දේශිතයි)</translation>
+<translation id="967624055006145463">දත්ත ගබඩා කර ඇත</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
index b5e99bb33..59d90ff 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigácia je zablokovaná: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Povolené</translation>
 <translation id="429312253194641664">Web prehráva médiá</translation>
+<translation id="4336434711095810371">Vymazať všetky údaje</translation>
 <translation id="4433925000917964731">Zjednodušenú verziu stránky poskytol Google</translation>
 <translation id="4434045419905280838">Vyskakovacie okná a presmerovania</translation>
 <translation id="445467742685312942">Povoliť webom prehrávať chránený obsah</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Karta inkognito</translation>
 <translation id="5300589172476337783">Zobraziť</translation>
 <translation id="5301954838959518834">Dobre</translation>
-<translation id="5307446750509046227">Vymazať priestor webu</translation>
 <translation id="5313967007315987356">Pridať web</translation>
 <translation id="5317780077021120954">Uložiť</translation>
 <translation id="5335288049665977812">Povoliť webom spúšťať JavaScript (odporúča sa)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Zablokujte JavaScript pre konkrétny web.</translation>
 <translation id="8816026460808729765">Zablokovať webom prístup k senzorom</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Úložisko</translation>
 <translation id="8926666909099850184">Technológia NFC je v tomto zariadení vypnutá. Zapnite ju v <ph name="BEGIN_LINK" />Nastaveniach Androidu<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Tento web sa väčšine ľudí otvára rýchlo, aj tak reaguje</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Zapnite v <ph name="BEGIN_LINK" />nastaveniach Androidu<ph name="END_LINK" /> povolenia pre aplikáciu <ph name="APP_NAME" />.</translation>
 <translation id="945632385593298557">Prístup k mikrofónu</translation>
 <translation id="965817943346481315">Blokovať, ak web zobrazuje obťažujúce alebo zavádzajúce reklamy (odporúčané)</translation>
+<translation id="967624055006145463">Uložené dáta</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
index 354e3d9..354976ad 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Krmarjenje je blokirano: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Dovoljeno</translation>
 <translation id="429312253194641664">Spletno mesto predvaja predstavnost</translation>
+<translation id="4336434711095810371">Izbriši vse podatke</translation>
 <translation id="4433925000917964731">Stran v osnovnem načinu, ki jo je prikazal Google</translation>
 <translation id="4434045419905280838">Pojavna okna in preusmeritve</translation>
 <translation id="445467742685312942">Spletnim mestom dovoli predvajanje zaščitene vsebine</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Zavihek brez beleženja zgodovine</translation>
 <translation id="5300589172476337783">Pokaži</translation>
 <translation id="5301954838959518834">V redu, razumem</translation>
-<translation id="5307446750509046227">Izbris shrambe mesta</translation>
 <translation id="5313967007315987356">Dodajanje mesta</translation>
 <translation id="5317780077021120954">Shrani</translation>
 <translation id="5335288049665977812">Spletnim mestom dovoli izvajanje JavaScripta (priporočeno)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Preprečevanje JavaScripta za določeno spletno mesto.</translation>
 <translation id="8816026460808729765">Preprečevanje spletnim mestom dostopa do tipal</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Shramba</translation>
 <translation id="8926666909099850184">Tehnologija NFC je izklopljena za to napravo. Vklopite jo v <ph name="BEGIN_LINK" />nastavitvah za Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">To spletno mesto se odpre in odzove hitro za večino uporabnikov</translation>
 <translation id="8941729603749328384">www.primer.si</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">V <ph name="BEGIN_LINK" />nastavitvah za Android<ph name="END_LINK" /> vklopite dovoljenja za aplikacijo <ph name="APP_NAME" />.</translation>
 <translation id="945632385593298557">Dostop do mikrofona</translation>
 <translation id="965817943346481315">Blokiraj, če spletno mesto prikazuje vsiljive ali zavajajoče oglase (priporočljivo)</translation>
+<translation id="967624055006145463">Shranjeni podatki</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
index 975ee4e..1a43427 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Lundrimi është bllokuar: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Të lejuara</translation>
 <translation id="429312253194641664">Një sajt po luan media</translation>
+<translation id="4336434711095810371">Pastro të gjitha të dhënat</translation>
 <translation id="4433925000917964731">Faqja e lehtë ofrohet nga Google.</translation>
 <translation id="4434045419905280838">Dritaret kërcyese dhe ridrejtimet</translation>
 <translation id="445467742685312942">Lejo sajtet të luajnë përmbajtje të mbrojtura</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Skeda "e fshehtë"</translation>
 <translation id="5300589172476337783">Shfaq</translation>
 <translation id="5301954838959518834">Në rregull, kuptova.</translation>
-<translation id="5307446750509046227">Pastro ruajtjen e sajtit</translation>
 <translation id="5313967007315987356">Shto një sajt</translation>
 <translation id="5317780077021120954">Ruaj</translation>
 <translation id="5335288049665977812">Lejoji sajtet të ekzekutojnë JavaScript (rekomandohet)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blloko JavaScript për një sajt specifik.</translation>
 <translation id="8816026460808729765">Bllokojua faqeve hapjen e sensorëve</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Hapësira ruajtëse</translation>
 <translation id="8926666909099850184">Veçoria NFC është joaktive për këtë pajisje. Aktivizoje te <ph name="BEGIN_LINK" />Cilësimet e Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Ky sajt hapet dhe përgjigjet shpejt për shumicën e personave</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Aktivizo lejet për <ph name="APP_NAME" /> në <ph name="BEGIN_LINK" />Cilësimet e Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Qasu te mikrofoni</translation>
 <translation id="965817943346481315">Blloko nëse sajti shfaq reklama ndërhyrëse ose mashtruese (rekomandohet)</translation>
+<translation id="967624055006145463">Të dhënat e ruajtura</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
index 768589f..3f7f905c 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Navigacija je blokirana: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Dozvoljeno</translation>
 <translation id="429312253194641664">Sajt pušta medijski sadržaj</translation>
+<translation id="4336434711095810371">Obriši sve podatke</translation>
 <translation id="4433925000917964731">Pojednostavljenu stranicu pruža Google</translation>
 <translation id="4434045419905280838">Iskačući prozori i preusmeravanja</translation>
 <translation id="445467742685312942">Dozvolite sajtovima da puštaju zaštićeni sadržaj</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Kartica bez arhiviranja</translation>
 <translation id="5300589172476337783">Prikaži</translation>
 <translation id="5301954838959518834">Važi</translation>
-<translation id="5307446750509046227">Obriši skladište sajta</translation>
 <translation id="5313967007315987356">Dodajte sajt</translation>
 <translation id="5317780077021120954">Sačuvaj</translation>
 <translation id="5335288049665977812">Dozvoli sajtovima da pokreću JavaScript (preporučeno)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Blokirajte JavaScript za određeni sajt.</translation>
 <translation id="8816026460808729765">Ne dozvoljavaj sajtovima da pristupaju senzorima</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Memorijski prostor</translation>
 <translation id="8926666909099850184">NFC je isključen za ovaj uređaj. Uključite ga u <ph name="BEGIN_LINK" />Android podešavanjima<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Ovaj sajt se brzo otvara i brzo reaguje za većinu ljudi</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Uključite dozvole za aplikaciju <ph name="APP_NAME" /> u <ph name="BEGIN_LINK" />Android podešavanjima<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Pristup mikrofonu</translation>
 <translation id="965817943346481315">Blokiraj ako sajt prikazuje oglase koji ometaju aktivnosti ili obmanjujuće oglase (preporučeno)</translation>
+<translation id="967624055006145463">Sačuvani podaci</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
index bfb640c3..b44603e 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Навигација је блокирана: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Дозвољено</translation>
 <translation id="429312253194641664">Сајт пушта медијски садржај</translation>
+<translation id="4336434711095810371">Обриши све податке</translation>
 <translation id="4433925000917964731">Поједностављену страницу пружа Google</translation>
 <translation id="4434045419905280838">Искачући прозори и преусмеравања</translation>
 <translation id="445467742685312942">Дозволите сајтовима да пуштају заштићени садржај</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Картица без архивирања</translation>
 <translation id="5300589172476337783">Прикажи</translation>
 <translation id="5301954838959518834">Важи</translation>
-<translation id="5307446750509046227">Обриши складиште сајта</translation>
 <translation id="5313967007315987356">Додајте сајт</translation>
 <translation id="5317780077021120954">Сачувај</translation>
 <translation id="5335288049665977812">Дозволи сајтовима да покрећу JavaScript (препоручено)</translation>
@@ -250,7 +250,6 @@
 <translation id="8801436777607969138">Блокирајте JavaScript за одређени сајт.</translation>
 <translation id="8816026460808729765">Не дозвољавај сајтовима да приступају сензорима</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Меморијски простор</translation>
 <translation id="8926666909099850184">NFC је искључен за овај уређај. Укључите га у <ph name="BEGIN_LINK" />Android подешавањима<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Овај сајт се брзо отвара и брзо реагује за већину људи</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -262,4 +261,5 @@
 <translation id="913657688200966289">Укључите дозволе за апликацију <ph name="APP_NAME" /> у <ph name="BEGIN_LINK" />Android подешавањима<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Приступ микрофону</translation>
 <translation id="965817943346481315">Блокирај ако сајт приказује огласе који ометају активности или обмањујуће огласе (препоручено)</translation>
+<translation id="967624055006145463">Сачувани подаци</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
index f6a87bb9..1b4d545d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Webbadressen har blockerats: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Tillåts</translation>
 <translation id="429312253194641664">Media spelas upp på en webbplats</translation>
+<translation id="4336434711095810371">Rensa all data</translation>
 <translation id="4433925000917964731">Lite-sida tillhandahållen av Google</translation>
 <translation id="4434045419905280838">Popup och omdirigeringar</translation>
 <translation id="445467742685312942">Tillåt att webbplatser spelar upp skyddat innehåll</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognitoflik</translation>
 <translation id="5300589172476337783">Visa</translation>
 <translation id="5301954838959518834">Ok, jag förstår</translation>
-<translation id="5307446750509046227">Rensa webbplatslagring</translation>
 <translation id="5313967007315987356">Lägg till webbplats</translation>
 <translation id="5317780077021120954">Spara</translation>
 <translation id="5335288049665977812">Tillåt att JavaScript körs på webbplatser (rekommenderas)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Blockera JavaScript på en enskild webbplats.</translation>
 <translation id="8816026460808729765">Blockera webbplatser från att använda enhetens sensorer</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Lagring</translation>
 <translation id="8926666909099850184">NFC är inte aktiverat på enheten. Aktivera det i <ph name="BEGIN_LINK" />Android-inställningarna<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Den här webbplatsen öppnas och svarar fort för de flesta användare</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Aktivera behörigheter för <ph name="APP_NAME" /> i <ph name="BEGIN_LINK" />Android-inställningarna<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Tillgång till din mikrofon</translation>
 <translation id="965817943346481315">Blockera om påträngande eller vilseledande annonser visas på webbplatsen (rekommenderas)</translation>
+<translation id="967624055006145463">Sparad data</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
index 7bfe6d0..bdb033126 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Kudurusu kumezuiwa: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Imeruhusiwa</translation>
 <translation id="429312253194641664">Tovuti inacheza maudhui</translation>
+<translation id="4336434711095810371">Futa data yote</translation>
 <translation id="4433925000917964731">Ukurasa mwepesi umetolewa na Google</translation>
 <translation id="4434045419905280838">Madirisha ibukizi/kuelekeza kwingine</translation>
 <translation id="445467742685312942">Ruhusu tovuti icheze maudhui yanayolindwa</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Kichupo fiche</translation>
 <translation id="5300589172476337783">Onyesha</translation>
 <translation id="5301954838959518834">Sawa, nimeelewa</translation>
-<translation id="5307446750509046227">Futa hifadhi ya tovuti</translation>
 <translation id="5313967007315987356">Ongeza tovuti</translation>
 <translation id="5317780077021120954">Hifadhi</translation>
 <translation id="5335288049665977812">Ruhusu tovuti zitumie JavaScript (inapendekezwa)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Futa</translation>
 <translation id="8300705686683892304">Zinazodhibitiwa na programu</translation>
 <translation id="8372893542064058268">Ruhusu Usawazishaji wa Chini Chini wa tovuti mahususi.</translation>
+<translation id="8376384591331888629">Vikiwemo vidakuzi vya wengine kwenye tovuti hii</translation>
 <translation id="83792324527827022">Tovuti inatumia kamera na maikrofoni yako</translation>
 <translation id="8380167699614421159">Tovuti hii inaonyesha matangazo yanayopotosha au yanayokatiza huduma</translation>
 <translation id="8394832520002899662">Gusa ili urudi kwenye tovuti</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Zuia JavaScript katika tovuti mahususi.</translation>
 <translation id="8816026460808729765">Zuia tovuti zisifikie vitambuzi vya mwendo</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Hifadhi</translation>
 <translation id="8926666909099850184">Kipengele cha NFC kimezimwa kwenye kifaa hiki. Kiwashe katika <ph name="BEGIN_LINK" />Mipangilio ya Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Tovuti hii hufunguka na kufanya kazi haraka kwa watu wengi</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Washa ruhusa za <ph name="APP_NAME" /> katika <ph name="BEGIN_LINK" />Mipangilio ya Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Kufikia maikrofoni yako</translation>
 <translation id="965817943346481315">Zuia ikiwa tovuti inaonyesha matangazo yanayopotosha au yanayokatiza huduma (inapendekezwa)</translation>
+<translation id="967624055006145463">Data iliyohifadhiwa</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
index a7f095fe..f72a817 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">செல்வது தடுக்கப்பட்டது: <ph name="URL" /></translation>
 <translation id="4278390842282768270">அனுமதிக்கப்பட்டது</translation>
 <translation id="429312253194641664">ஒரு தளம் மீடியாவை இயக்குகிறது</translation>
+<translation id="4336434711095810371">அனைத்துத் தரவையும் அழி</translation>
 <translation id="4433925000917964731">Google வழங்கும் Lite பக்கம்</translation>
 <translation id="4434045419905280838">பாப்-அப்கள் &amp; திசைதிருப்புதல்கள்</translation>
 <translation id="445467742685312942">பாதுகாக்கப்பட்ட உள்ளடக்கத்தை இயக்குவதற்குத் தளங்களை அனுமதிக்கும்</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">மறைநிலைத் தாவல்</translation>
 <translation id="5300589172476337783">காண்பி</translation>
 <translation id="5301954838959518834">சரி, புரிந்தது</translation>
-<translation id="5307446750509046227">தள சேமிப்பகத்தை அழி</translation>
 <translation id="5313967007315987356">தளத்தைச் சேர்</translation>
 <translation id="5317780077021120954">சேமி</translation>
 <translation id="5335288049665977812">JavaScriptஐ இயக்குவதற்கு, தளங்களை அனுமதி (பரிந்துரைக்கப்படுகிறது)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">குறிப்பிட்ட தளத்திற்கு JavaScriptடைத் தடுக்கும்.</translation>
 <translation id="8816026460808729765">தளங்கள் சென்சார்களை அணுகுவதைத் தடுக்கும்</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">சேமிப்பிடம்</translation>
 <translation id="8926666909099850184">இந்தச் சாதனத்தில் NFC ஆஃப் செய்யப்பட்டுள்ளது. அதை <ph name="BEGIN_LINK" />Android அமைப்புகளில்<ph name="END_LINK" /> ஆன் செய்யவும்.</translation>
 <translation id="8929372349074745002">பெரும்பாலானவர்களுக்கு இந்தத் தளம் வேகமாகத் திறக்கிறது &amp; செயல்படுகிறது</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android அமைப்புகளில் <ph name="END_LINK" /> <ph name="APP_NAME" /> ஆப்ஸுக்கான அனுமதிகளை இயக்கவும்.</translation>
 <translation id="945632385593298557">உங்கள் மைக்ரோஃபோனை அணுகலாம்</translation>
 <translation id="965817943346481315">குறுக்கிடும் அல்லது தவறாக வழிநடத்தும் விளம்பரங்களை தளம் காண்பித்தால், அதைத் தடு (பரிந்துரைக்கப்படுவது)</translation>
+<translation id="967624055006145463">சேமிக்கப்பட்ட தரவின்படி</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
index e0da520..e8c545e 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">నావిగేషన్ బ్లాక్ చేయబడింది: <ph name="URL" /></translation>
 <translation id="4278390842282768270">అనుమతించబడింది</translation>
 <translation id="429312253194641664">ఒక సైట్‌లో మీడియా ప్లే చేయబడుతోంది</translation>
+<translation id="4336434711095810371">మొత్తం డేటాను క్లియర్ చేయి</translation>
 <translation id="4433925000917964731">Google అందించిన లైట్ పేజీ</translation>
 <translation id="4434045419905280838">పాప్-అప్‌లు మరియు మళ్లింపులు</translation>
 <translation id="445467742685312942">రక్షిత కంటెంట్‌ను ప్లే చేయడానికి సైట్‌లను అనుమతిస్తుంది</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">అజ్ఞాత ట్యాబ్</translation>
 <translation id="5300589172476337783">చూపించు</translation>
 <translation id="5301954838959518834">సరే, అర్థమైంది</translation>
-<translation id="5307446750509046227">సైట్ నిల్వను తీసివేయండి</translation>
 <translation id="5313967007315987356">సైట్‌ను జోడించు</translation>
 <translation id="5317780077021120954">సేవ్ చేయి</translation>
 <translation id="5335288049665977812">సైట్‌లను జావాస్క్రిప్ట్ అమలు చేయడానికి అనుమతిస్తుంది (సిఫార్సు చేయబడింది)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">నిర్దిష్ట సైట్‌లో JavaScriptను బ్లాక్ చేస్తుంది.</translation>
 <translation id="8816026460808729765">సెన్సార్‌లను యాక్సెస్ చేయనీయకుండా సైట్‌లను బ్లాక్ చేస్తుంది</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">నిల్వ</translation>
 <translation id="8926666909099850184">ఈ పరికరంలో NFC ఆఫ్ చేయబడింది. <ph name="BEGIN_LINK" />Android సెట్టింగ్‌ల<ph name="END_LINK" />లో దాన్ని ఆన్ చేయండి.</translation>
 <translation id="8929372349074745002">చాలా మందికి ఈ సైట్ వేగంగా తెరుచుకుంటుంది, అలాగే వేగంగా స్పందిస్తుంది</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android సెట్టింగ్‌ల<ph name="END_LINK" />లో <ph name="APP_NAME" /> కోసం అనుమతులను ఆన్ చేయండి.</translation>
 <translation id="945632385593298557">మీ మైక్రోఫోన్ యాక్సెస్ అనుమతి</translation>
 <translation id="965817943346481315">సైట్ అనుచితమైన లేదా తప్పుదారి పట్టించే ప్రకటనలను చూపించినప్పుడు బ్లాక్ చేయి (సిఫార్సు చేయబడింది)</translation>
+<translation id="967624055006145463">నిల్వ చేయబడిన డేటా</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
index 2def7e2..7dbc1e2 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">มีการบล็อกการนำทาง: <ph name="URL" /></translation>
 <translation id="4278390842282768270">อนุญาตแล้ว</translation>
 <translation id="429312253194641664">เว็บไซต์กำลังเล่นสื่อ</translation>
+<translation id="4336434711095810371">ล้างข้อมูลทั้งหมด</translation>
 <translation id="4433925000917964731">หน้าเวอร์ชัน Lite ให้บริการโดย Google</translation>
 <translation id="4434045419905280838">ป๊อปอัปและการเปลี่ยนเส้นทาง</translation>
 <translation id="445467742685312942">อนุญาตให้เว็บไซต์เล่นเนื้อหาที่ได้รับความคุ้มครอง</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">แท็บที่ไม่ระบุตัวตน</translation>
 <translation id="5300589172476337783">แสดง</translation>
 <translation id="5301954838959518834">ตกลง เข้าใจแล้ว</translation>
-<translation id="5307446750509046227">ล้างพื้นที่เก็บข้อมูลเว็บไซต์</translation>
 <translation id="5313967007315987356">เพิ่มเว็บไซต์</translation>
 <translation id="5317780077021120954">บันทึก</translation>
 <translation id="5335288049665977812">อนุญาตให้เว็บไซต์เรียกใช้ JavaScript (แนะนำ)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">บล็อก JavaScript ในเว็บไซต์ที่ต้องการ</translation>
 <translation id="8816026460808729765">บล็อกไม่ให้เว็บไซต์เข้าถึงเซ็นเซอร์</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">พื้นที่เก็บข้อมูล</translation>
 <translation id="8926666909099850184">NFC ในอุปกรณ์นี้ปิดอยู่ เปิดได้ใน<ph name="BEGIN_LINK" />การตั้งค่า Android<ph name="END_LINK" /></translation>
 <translation id="8929372349074745002">เว็บไซต์นี้เปิดและตอบสนองอย่างรวดเร็วสำหรับผู้คนส่วนใหญ่</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">เปิดการใช้สิทธิ์สำหรับ <ph name="APP_NAME" /> ใน<ph name="BEGIN_LINK" />การตั้งค่า Android<ph name="END_LINK" /></translation>
 <translation id="945632385593298557">เข้าถึงไมโครโฟน</translation>
 <translation id="965817943346481315">บล็อกหากเว็บไซต์แสดงโฆษณาที่แทรกหรือทำให้เข้าใจผิด (แนะนำ)</translation>
+<translation id="967624055006145463">ข้อมูลที่จัดเก็บ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
index d8acc337..a62ccdf 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Gezinme engellendi: <ph name="URL" /></translation>
 <translation id="4278390842282768270">İzin verilen</translation>
 <translation id="429312253194641664">Bir site medya oynatıyor</translation>
+<translation id="4336434711095810371">Tüm verileri temizle</translation>
 <translation id="4433925000917964731">Google tarafından sağlanan basit sayfa</translation>
 <translation id="4434045419905280838">Pop-up'lar ve yönlendirmeler</translation>
 <translation id="445467742685312942">Sitelerin korumalı içeriği oynatmasına izin ver</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Gizli sekme</translation>
 <translation id="5300589172476337783">Göster</translation>
 <translation id="5301954838959518834">Tamam, anladım</translation>
-<translation id="5307446750509046227">Site depolamayı temizle</translation>
 <translation id="5313967007315987356">Site ekle</translation>
 <translation id="5317780077021120954">Kaydet</translation>
 <translation id="5335288049665977812">Sitelerin JavaScript çalıştırmasına izin ver (önerilir)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">JavaScript'i belirli bir site için engelleyin.</translation>
 <translation id="8816026460808729765">Sitelerin sensörlere erişimini engelle</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Depolama</translation>
 <translation id="8926666909099850184">NFC bu cihazda kapalı. Bu özelliği <ph name="BEGIN_LINK" />Android Ayarları<ph name="END_LINK" />'nda açın.</translation>
 <translation id="8929372349074745002">Bu site, çoğu kullanıcı için hızlı açılıp yanıt veriyor</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289"><ph name="APP_NAME" /> için izinleri açmak üzere <ph name="BEGIN_LINK" />Android Ayarları<ph name="END_LINK" />'nda izinleri açın.</translation>
 <translation id="945632385593298557">Mikrofonunuza erişim</translation>
 <translation id="965817943346481315">Site, araya giren veya yanıltıcı reklamlar gösteriyorsa engelle (önerilen)</translation>
+<translation id="967624055006145463">Depolanan veriler</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
index 2f56d12..9040d857 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Веб-сторінку <ph name="URL" /> заблоковано</translation>
 <translation id="4278390842282768270">Дозволено</translation>
 <translation id="429312253194641664">Сайт відтворює медіа-вміст</translation>
+<translation id="4336434711095810371">Видалити всі дані</translation>
 <translation id="4433925000917964731">Спрощену сторінку надає Google</translation>
 <translation id="4434045419905280838">Спливаючі вікна й переадресація</translation>
 <translation id="445467742685312942">Дозволити сайтам відтворювати захищений вміст</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Анонімна вкладка</translation>
 <translation id="5300589172476337783">Показати</translation>
 <translation id="5301954838959518834">OK</translation>
-<translation id="5307446750509046227">Видалити дані сайтів</translation>
 <translation id="5313967007315987356">Додати сайт</translation>
 <translation id="5317780077021120954">Зберегти</translation>
 <translation id="5335288049665977812">Дозволити сайтам запускати JavaScript (рекомендується)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Видалити</translation>
 <translation id="8300705686683892304">Керуються додатком</translation>
 <translation id="8372893542064058268">сайті.</translation>
+<translation id="8376384591331888629">Зокрема файли cookie третіх сторін на цьому сайті</translation>
 <translation id="83792324527827022">Сайт використовує камеру та мікрофон</translation>
 <translation id="8380167699614421159">Цей сайт показує нав’язливі чи оманливі оголошення</translation>
 <translation id="8394832520002899662">Натисніть, щоб повернутися на сайт</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Блокувати JavaScript на певному сайті.</translation>
 <translation id="8816026460808729765">Заборонити сайтам доступ до датчиків</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Обсяг пам’яті</translation>
 <translation id="8926666909099850184">NFC вимкнено на цьому пристрої. Увімкніть цю функцію в <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Зазвичай цей сайт швидко відкривається й відповідає</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Увімкніть дозволи для додатка <ph name="APP_NAME" /> у <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Доступ до мікрофона</translation>
 <translation id="965817943346481315">Блокувати, якщо сайт показує нав’язливі чи оманливі оголошення (рекомендовано)</translation>
+<translation id="967624055006145463">Збережені дані</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
index 74848bc..0e51b30b 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">نیویگیشن مسدود ہے: <ph name="URL" /></translation>
 <translation id="4278390842282768270">اجازت یافتہ</translation>
 <translation id="429312253194641664">سائٹ پر میڈیا چل رہا ہے</translation>
+<translation id="4336434711095810371">سبھی ڈیٹا صاف کریں</translation>
 <translation id="4433925000917964731">‏Google کی طرف سے فراہم کردہ لائٹ صفحہ</translation>
 <translation id="4434045419905280838">پوپ اپس اور ری ڈائریکٹس</translation>
 <translation id="445467742685312942">سائٹس کو محفوظ مواد چلانے کی اجازت دیں</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">پوشیدگی ٹیب</translation>
 <translation id="5300589172476337783">دکھائیں</translation>
 <translation id="5301954838959518834">ٹھیک ہے، سمجھ آ گئی</translation>
-<translation id="5307446750509046227">سائٹ اسٹوریج صاف کریں</translation>
 <translation id="5313967007315987356">سائٹ شامل کریں</translation>
 <translation id="5317780077021120954">محفوظ کریں</translation>
 <translation id="5335288049665977812">‏سائٹس کو JavaScript چلانے کی اجازت دیں (تجویز کردہ)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">‏کسی مخصوص سائٹ کیلئے JavaScript کو مسدود کریں۔</translation>
 <translation id="8816026460808729765">سینسرز تک رسائی حاصل کرنے سے سائٹس کو مسدود کریں</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">اسٹوریج</translation>
 <translation id="8926666909099850184">‏اس آلہ کے لیے NFC آف ہے۔ اسے <ph name="BEGIN_LINK" />Android ترتیبات<ph name="END_LINK" /> میں آن کریں۔</translation>
 <translation id="8929372349074745002">یہ سائٹ زیادہ تر لوگوں کے لئے فوری طور پر کھلتی اور جواب دیتی ہے</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">‏<ph name="BEGIN_LINK" />Android ترتیبات<ph name="END_LINK" /> میں <ph name="APP_NAME" /> کے لیے اجازتیں آن کریں۔</translation>
 <translation id="945632385593298557">اپنے مائیکروفون تک رسائی حاصل کریں</translation>
 <translation id="965817943346481315">اگر سائٹ دخل انداز یا گمراہ کن اشتہارات دکھاتی ہے تو مسدود کریں (تجویز کردہ)</translation>
+<translation id="967624055006145463">اسٹور کردہ ڈیٹا</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
index ac9e552e..c0a5f9e 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Sahifa bloklandi: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Berilgan ruxsatnomalar</translation>
 <translation id="429312253194641664">Saytda media-fayl ijro etilmoqda</translation>
+<translation id="4336434711095810371">Barcha maʼlumotlarni tozalash</translation>
 <translation id="4433925000917964731">Sahifaning Lite versiyasi Google tomonidan taqdim etildi</translation>
 <translation id="4434045419905280838">Qalquvchi oyna va yo‘naltirishlar</translation>
 <translation id="445467742685312942">Saytlarga himoyalangan kontentni ijro qilish uchun ruxsat berish</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Inkognito varaq</translation>
 <translation id="5300589172476337783">Ko‘rsatish</translation>
 <translation id="5301954838959518834">OK</translation>
-<translation id="5307446750509046227">Sayt xotirasini tozalash</translation>
 <translation id="5313967007315987356">Sayt qo‘shish</translation>
 <translation id="5317780077021120954">Saqlash</translation>
 <translation id="5335288049665977812">Saytlarga JavaScript ishga tushirishiga ruxsat berish (tavsiya etiladi)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">O‘chirish</translation>
 <translation id="8300705686683892304">Ilova boshqaruvida</translation>
 <translation id="8372893542064058268">Ko‘rsatilgan sayt uchun fonda sinxronlashga ruxsat berish.</translation>
+<translation id="8376384591331888629">Bu saytdagi tashqi cookie fayllariga ham</translation>
 <translation id="83792324527827022">Sayt kamera va mikrofondan foydalanmoqda</translation>
 <translation id="8380167699614421159">Bu saytda yoqimsiz yoki befoyda reklamalar chiqadi</translation>
 <translation id="8394832520002899662">Saytga qaytish uchun bosing</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Muayyan saytda JavaScript kodini bloklash.</translation>
 <translation id="8816026460808729765">Saytlarga sensorlardan foydalanishni taqiqlash</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Ombor</translation>
 <translation id="8926666909099850184">Telefonda NFC yoqilmagan. Uni <ph name="BEGIN_LINK" />Android sozlamalari<ph name="END_LINK" /> orqali yoqing.</translation>
 <translation id="8929372349074745002">Bu sayt koʻpchilik uchun tezkor ochiladi va javob beradi</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289"><ph name="BEGIN_LINK" />Android sozlamalari<ph name="END_LINK" /> orqali <ph name="APP_NAME" /> uchun ruxsatnomalarni yoqing.</translation>
 <translation id="945632385593298557">Mikrofonga ruxsat</translation>
 <translation id="965817943346481315">Saytlarda chiquvchi yoqimsiz yoki befoyda reklamalar bloklansin (tavsiya etiladi)</translation>
+<translation id="967624055006145463">Ishlatilgan joy</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
index 98cbcaa..6a2eb14 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Điều hướng bị chặn: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Được cho phép</translation>
 <translation id="429312253194641664">Một trang web đang phát nội dung đa phương tiện</translation>
+<translation id="4336434711095810371">Xóa tất cả dữ liệu</translation>
 <translation id="4433925000917964731">Trang phiên bản rút gọn do Google cung cấp</translation>
 <translation id="4434045419905280838">Cửa sổ bật lên và liên kết chuyển hướng</translation>
 <translation id="445467742685312942">Cho phép trang web phát nội dung được bảo vệ</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Thẻ ẩn danh</translation>
 <translation id="5300589172476337783">Hiển thị</translation>
 <translation id="5301954838959518834">Ok</translation>
-<translation id="5307446750509046227">Xóa bộ nhớ trang web</translation>
 <translation id="5313967007315987356">Thêm trang web</translation>
 <translation id="5317780077021120954">Lưu</translation>
 <translation id="5335288049665977812">Cho phép các trang web chạy JavaScript (được đề xuất)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">Chặn JavaScript cho một trang web cụ thể.</translation>
 <translation id="8816026460808729765">Chặn không cho các trang web sử dụng cảm biến</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">Bộ nhớ</translation>
 <translation id="8926666909099850184">NFC đã tắt đối với thiết bị này. Hãy bật trong phần <ph name="BEGIN_LINK" />Cài đặt Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Trang web này mở và phản hồi nhanh trong hầu hết mọi trường hợp</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">Bật quyền cho <ph name="APP_NAME" /> trong phần <ph name="BEGIN_LINK" />Cài đặt Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Truy cập micrô của bạn</translation>
 <translation id="965817943346481315">Chặn nếu trang web hiển thị quảng cáo xâm nhập hoặc quảng cáo gây hiểu nhầm (khuyên dùng)</translation>
+<translation id="967624055006145463">Dữ liệu đã lưu trữ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
index bf5072b..a6d63fd 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">已屏蔽 <ph name="URL" /></translation>
 <translation id="4278390842282768270">允许</translation>
 <translation id="429312253194641664">某个网站正在播放媒体内容</translation>
+<translation id="4336434711095810371">清除所有数据</translation>
 <translation id="4433925000917964731">由 Google 提供的精简版网页</translation>
 <translation id="4434045419905280838">弹出式窗口和重定向</translation>
 <translation id="445467742685312942">允许网站播放受保护内容。</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">无痕式标签页</translation>
 <translation id="5300589172476337783">显示</translation>
 <translation id="5301954838959518834">知道了</translation>
-<translation id="5307446750509046227">清空网站存储数据</translation>
 <translation id="5313967007315987356">添加网站</translation>
 <translation id="5317780077021120954">保存</translation>
 <translation id="5335288049665977812">允许网站运行 JavaScript(推荐)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">禁止特定网站运行 JavaScript。</translation>
 <translation id="8816026460808729765">禁止网站使用传感器</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">存储数据</translation>
 <translation id="8926666909099850184">此设备的 NFC 功能处于关闭状态。请在 <ph name="BEGIN_LINK" />Android 设置<ph name="END_LINK" />中开启此功能。</translation>
 <translation id="8929372349074745002">对于大多数人而言,此网站能快速打开和响应</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">在 <ph name="BEGIN_LINK" />Android 设置<ph name="END_LINK" />中为 <ph name="APP_NAME" /> 开启这些权限。</translation>
 <translation id="945632385593298557">使用您的麦克风</translation>
 <translation id="965817943346481315">屏蔽会展示侵扰性或误导性广告的网站(推荐)</translation>
+<translation id="967624055006145463">已存储的数据</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
index e44e99a..d2ff511 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">瀏覽網址被封鎖:<ph name="URL" /></translation>
 <translation id="4278390842282768270">已允許</translation>
 <translation id="429312253194641664">網站正在播放媒體</translation>
+<translation id="4336434711095810371">清除所有資料</translation>
 <translation id="4433925000917964731">此簡易版網頁由 Google 提供</translation>
 <translation id="4434045419905280838">彈出式視窗和重新導向</translation>
 <translation id="445467742685312942">允許網站播放受保護的內容</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">無痕式分頁</translation>
 <translation id="5300589172476337783">顯示</translation>
 <translation id="5301954838959518834">好,我知道了</translation>
-<translation id="5307446750509046227">清除網站儲存空間的資料</translation>
 <translation id="5313967007315987356">新增網站</translation>
 <translation id="5317780077021120954">儲存</translation>
 <translation id="5335288049665977812">允許網站執行 JavaScript (建議)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">封鎖特定網站執行 JavaScript。</translation>
 <translation id="8816026460808729765">禁止網站存取感應器</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">儲存設備</translation>
 <translation id="8926666909099850184">此裝置的 NFC 已關閉,請在「<ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />」中開啟。</translation>
 <translation id="8929372349074745002">對大部分人來說,此網站能快速開啟並作出回應</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">請在 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />中為 <ph name="APP_NAME" /> 啟用這些權限。</translation>
 <translation id="945632385593298557">存取您的麥克風</translation>
 <translation id="965817943346481315">封鎖顯示滋擾性或誤導廣告網站上的廣告 (建議)</translation>
+<translation id="967624055006145463">已儲存的資料</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
index 968a61f..666f8ad4 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">瀏覽的網址已封鎖:<ph name="URL" /></translation>
 <translation id="4278390842282768270">允許</translation>
 <translation id="429312253194641664">一個網站正在播放媒體內容</translation>
+<translation id="4336434711095810371">清除所有資料</translation>
 <translation id="4433925000917964731">由 Google 提供的精簡版網頁</translation>
 <translation id="4434045419905280838">彈出式視窗與重新導向</translation>
 <translation id="445467742685312942">允許網站播放受保護的內容</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">無痕式分頁</translation>
 <translation id="5300589172476337783">顯示</translation>
 <translation id="5301954838959518834">好,我知道了</translation>
-<translation id="5307446750509046227">清除網站儲存的資料</translation>
 <translation id="5313967007315987356">新增網站</translation>
 <translation id="5317780077021120954">儲存</translation>
 <translation id="5335288049665977812">允許網站執行 JavaScript (建議)</translation>
@@ -249,7 +249,6 @@
 <translation id="8801436777607969138">封鎖特定網站的 JavaScript。</translation>
 <translation id="8816026460808729765">禁止網站存取感應器</translation>
 <translation id="8847988622838149491">USB</translation>
-<translation id="885701979325669005">儲存空間</translation>
 <translation id="8926666909099850184">這部裝置的 NFC 功能已關閉。請前往 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />開啟這項功能。</translation>
 <translation id="8929372349074745002">對大多數人而言,這個網站的開啟和回應速度都很快</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +260,5 @@
 <translation id="913657688200966289">請在 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />中啟用「<ph name="APP_NAME" />」的權限。</translation>
 <translation id="945632385593298557">存取您的麥克風</translation>
 <translation id="965817943346481315">封鎖干擾性或誤導性的網站廣告 (建議)</translation>
+<translation id="967624055006145463">已儲存的資料</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
index b47a33c..d610bbf 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
@@ -100,6 +100,7 @@
 <translation id="4259722352634471385">Ukuzulazula kuvinjiwe: <ph name="URL" /></translation>
 <translation id="4278390842282768270">Kuvunyelwe</translation>
 <translation id="429312253194641664">Isayithi lidlala imidiya</translation>
+<translation id="4336434711095810371">Sula yonke idatha</translation>
 <translation id="4433925000917964731">Ikhasi elilula linikezwe i-Google</translation>
 <translation id="4434045419905280838">Okwesikhashana nokuqondiswa kabusha</translation>
 <translation id="445467742685312942">Vumela amasayithi ukudlala okuqukethwe okuvikelekile</translation>
@@ -122,7 +123,6 @@
 <translation id="5123685120097942451">Ithebhu ye-Incognito</translation>
 <translation id="5300589172476337783">Bonisa</translation>
 <translation id="5301954838959518834">OK, ngiyezwa</translation>
-<translation id="5307446750509046227">Sula isitoreji sesayithi</translation>
 <translation id="5313967007315987356">Engeza isayithi</translation>
 <translation id="5317780077021120954">Londoloza</translation>
 <translation id="5335288049665977812">Vumela amasayithi ukuthi aqalise i-JavaScript (kunconyiwe)</translation>
@@ -228,6 +228,7 @@
 <translation id="8261506727792406068">Susa</translation>
 <translation id="8300705686683892304">Kuphethwe uhlelo lokusebenza</translation>
 <translation id="8372893542064058268">Vumela ukuvumelanisa kwangemuva kwesayithi elithile.</translation>
+<translation id="8376384591331888629">Kuhlanganise namakhukhi enkampani yangaphandle kule webhusayithi</translation>
 <translation id="83792324527827022">Isayithi lisebenzisa ikhamera nemakrofoni yakho</translation>
 <translation id="8380167699614421159">Leli sayithi libonisa izikhangiso ezingathandeki noma ezidukisayo</translation>
 <translation id="8394832520002899662">Thepha ukubuyela kusayithi</translation>
@@ -249,7 +250,6 @@
 <translation id="8801436777607969138">Vimbela i-JavaScript kusayithi elithile.</translation>
 <translation id="8816026460808729765">Vimbela amasayithi kusukela ekufinyeleleni kuzinzwa</translation>
 <translation id="8847988622838149491">I-USB</translation>
-<translation id="885701979325669005">Ukugcina</translation>
 <translation id="8926666909099850184">I-NFC ivaliwe kule divayisi. Ivule kokuthi <ph name="BEGIN_LINK" />Izilungiselelo ze-Android<ph name="END_LINK" />.</translation>
 <translation id="8929372349074745002">Leli sayithi livuleka futhi lisabele ngokushesha kubantu abaningi</translation>
 <translation id="8941729603749328384">www.example.com</translation>
@@ -261,4 +261,5 @@
 <translation id="913657688200966289">Vula izimvume ze-<ph name="APP_NAME" /> <ph name="BEGIN_LINK" />Kumasethingi e-Android<ph name="END_LINK" />.</translation>
 <translation id="945632385593298557">Finyelela imakrofoni yakho</translation>
 <translation id="965817943346481315">Vimba uma isayithi libonisa izikhangiso ezingathandeki noma ezidukisayo (kunconyiwe)</translation>
+<translation id="967624055006145463">Idatha ilondoloziwe</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/download/internal/common/download_item_impl.cc b/components/download/internal/common/download_item_impl.cc
index d84ee94..4cad44c 100644
--- a/components/download/internal/common/download_item_impl.cc
+++ b/components/download/internal/common/download_item_impl.cc
@@ -692,6 +692,16 @@
   last_access_time_ = base::Time::Now();
   for (auto& observer : observers_)
     observer.OnDownloadOpened(this);
+
+#if defined(OS_WIN)
+  // On Windows, don't actually open the file if it has no extension, to prevent
+  // Windows from interpreting it as the command for an executable of the same
+  // name.
+  if (destination_info_.current_path.Extension().empty()) {
+    delegate_->ShowDownloadInShell(this);
+    return;
+  }
+#endif
   delegate_->OpenDownload(this);
 }
 
diff --git a/components/exo/gaming_seat_unittest.cc b/components/exo/gaming_seat_unittest.cc
index 4d763b6..c64c93e 100644
--- a/components/exo/gaming_seat_unittest.cc
+++ b/components/exo/gaming_seat_unittest.cc
@@ -63,7 +63,8 @@
     for (auto& id : gamepad_device_ids) {
       gamepad_devices.emplace_back(
           ui::InputDevice(id, ui::InputDeviceType::INPUT_DEVICE_USB, "gamepad"),
-          std::vector<ui::GamepadDevice::Axis>());
+          std::vector<ui::GamepadDevice::Axis>(),
+          /*supports_vibration_rumble=*/false);
     }
     ui::GamepadProviderOzone::GetInstance()->DispatchGamepadDevicesUpdated(
         gamepad_devices);
diff --git a/components/feed/core/v2/protocol_translator.cc b/components/feed/core/v2/protocol_translator.cc
index f9c3c74..8973aec 100644
--- a/components/feed/core/v2/protocol_translator.cc
+++ b/components/feed/core/v2/protocol_translator.cc
@@ -107,6 +107,10 @@
         result.stream_structure.content_id();
     result.content->set_allocated_frame(
         wire_content->mutable_xsurface_content()->release_xsurface_output());
+    if (wire_content->prefetch_metadata_size() > 0) {
+      result.content->mutable_prefetch_metadata()->Swap(
+          wire_content->mutable_prefetch_metadata());
+    }
   }
   return true;
 }
diff --git a/components/feed/core/v2/protocol_translator_unittest.cc b/components/feed/core/v2/protocol_translator_unittest.cc
index e7256eb..95e2b35b 100644
--- a/components/feed/core/v2/protocol_translator_unittest.cc
+++ b/components/feed/core/v2/protocol_translator_unittest.cc
@@ -65,7 +65,12 @@
   result.mutable_feature()
       ->mutable_content_extension()
       ->mutable_xsurface_content()
-      ->set_xsurface_output(std::move(xsurface_content));
+      ->set_xsurface_output(xsurface_content);
+
+  result.mutable_feature()
+      ->mutable_content_extension()
+      ->add_prefetch_metadata()
+      ->set_uri("http://uri-for-" + xsurface_content);
   return result;
 }
 
@@ -128,6 +133,9 @@
       TranslateDataOperation(wire_operation);
   EXPECT_TRUE(translated);
   EXPECT_EQ("content", translated->content().frame());
+  ASSERT_EQ(1, translated->content().prefetch_metadata_size());
+  EXPECT_EQ("http://uri-for-content",
+            translated->content().prefetch_metadata(0).uri());
 }
 
 TEST(ProtocolTranslatorTest, TranslateContentFailsWhenMissingContent) {
diff --git a/components/metrics/metrics_log.cc b/components/metrics/metrics_log.cc
index 651ed43..6433b16 100644
--- a/components/metrics/metrics_log.cc
+++ b/components/metrics/metrics_log.cc
@@ -321,7 +321,7 @@
   //
   // The |has_environment| case will happen on the very first log, where we
   // call RecordEnvironment() in order to persist the system profile in the
-  // persistent hitograms .pma file.
+  // persistent histograms .pma file.
   if (has_environment_) {
     uma_proto_.clear_system_profile();
     MetricsLog::RecordCoreSystemProfile(client_,
diff --git a/components/neterror/OWNERS b/components/neterror/OWNERS
index a28823a..12e30b60 100644
--- a/components/neterror/OWNERS
+++ b/components/neterror/OWNERS
@@ -1,6 +1,7 @@
-mmenke@chromium.org
 edwardjung@chromium.org
 
+file://net/OWNERS
+
 # Offline owners.
 chili@chromium.org
 jianli@chromium.org
diff --git a/components/omnibox/browser/autocomplete_result.h b/components/omnibox/browser/autocomplete_result.h
index 7fb0f27b..a58fb53 100644
--- a/components/omnibox/browser/autocomplete_result.h
+++ b/components/omnibox/browser/autocomplete_result.h
@@ -136,6 +136,8 @@
     return headers_map_;
   }
 
+  const std::vector<int>& hidden_group_ids() const { return hidden_group_ids_; }
+
   // Clears the matches for this result set.
   void Reset();
 
diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc
index 49c6837..7695a614 100644
--- a/components/omnibox/browser/omnibox_edit_model.cc
+++ b/components/omnibox/browser/omnibox_edit_model.cc
@@ -1117,9 +1117,9 @@
                              client_->GetSchemeClassifier());
   input_.set_current_url(client_->GetURL());
   input_.set_current_title(client_->GetTitle());
-  // TODO(tommycli): Distinguish between on-focus and on-clobber ZeroSuggest
-  // requests.
-  input_.set_focus_type(OmniboxFocusType::ON_FOCUS);
+  input_.set_focus_type(user_clobbered_permanent_text
+                            ? OmniboxFocusType::DELETED_PERMANENT_TEXT
+                            : OmniboxFocusType::ON_FOCUS);
   autocomplete_controller()->Start(input_);
 }
 
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
index 504dece..ca83570 100644
--- a/components/omnibox/browser/omnibox_field_trial.cc
+++ b/components/omnibox/browser/omnibox_field_trial.cc
@@ -803,29 +803,27 @@
 int OmniboxFieldTrial::OnDeviceHeadSuggestMaxScoreForNonUrlInput(
     bool is_incognito,
     const int default_score) {
-  const base::Feature* feature =
-      is_incognito ? &omnibox::kOnDeviceHeadProviderIncognito
-                   : &omnibox::kOnDeviceHeadProviderNonIncognito;
-  return base::GetFieldTrialParamByFeatureAsInt(
-      *feature, kOnDeviceHeadSuggestMaxScoreForNonUrlInput, default_score);
+  return is_incognito
+             ? default_score
+             : base::GetFieldTrialParamByFeatureAsInt(
+                   omnibox::kOnDeviceHeadProviderNonIncognito,
+                   kOnDeviceHeadSuggestMaxScoreForNonUrlInput, default_score);
 }
 
 int OmniboxFieldTrial::OnDeviceHeadSuggestDelaySuggestRequestMs(
     bool is_incognito) {
-  const base::Feature* feature =
-      is_incognito ? &omnibox::kOnDeviceHeadProviderIncognito
-                   : &omnibox::kOnDeviceHeadProviderNonIncognito;
-  return base::GetFieldTrialParamByFeatureAsInt(
-      *feature, kOnDeviceHeadSuggestDelaySuggestRequestMs, 0);
+  return is_incognito ? 0
+                      : base::GetFieldTrialParamByFeatureAsInt(
+                            omnibox::kOnDeviceHeadProviderNonIncognito,
+                            kOnDeviceHeadSuggestDelaySuggestRequestMs, 0);
 }
 
 int OmniboxFieldTrial::OnDeviceSearchProviderDefaultLoaderTimeoutMs(
     bool is_incognito) {
-  const base::Feature* feature =
-      is_incognito ? &omnibox::kOnDeviceHeadProviderIncognito
-                   : &omnibox::kOnDeviceHeadProviderNonIncognito;
-  return base::GetFieldTrialParamByFeatureAsInt(
-      *feature, kOnDeviceSearchProviderDefaultLoaderTimeoutMs, 0);
+  return is_incognito ? 0
+                      : base::GetFieldTrialParamByFeatureAsInt(
+                            omnibox::kOnDeviceHeadProviderNonIncognito,
+                            kOnDeviceSearchProviderDefaultLoaderTimeoutMs, 0);
 }
 
 std::string OmniboxFieldTrial::OnDeviceHeadSuggestDemoteMode() {
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 9459e20..f0a7385 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -454,13 +454,6 @@
 
       Ist sie auf "False" gesetzt, können Nutzer keine Lesezeichen hinzufügen, entfernen oder ändern. Sie können aber weiterhin bestehende Lesezeichen verwenden.</translation>
 <translation id="1715151459541210849">Bedienungshilfe "Spracheingabe" aktivieren</translation>
-<translation id="1717817358640580294">Wenn die Richtlinie nicht konfiguriert ist und das Chrome Cleanup Tool unerwünschte Software findet, kann es Metadaten betreffend den Scan an Google senden. Dies geschieht in Übereinstimmung mit der über "SafeBrowsingExtendedReportingEnabled" festgelegten Richtlinie. Der Nutzer wird dann vom Chrome Cleanup Tool gefragt, ob die unerwünschte Software gelöscht werden soll. Er kann die Ergebnisse der Bereinigung mit Google teilen, damit unerwünschte Software zukünftig besser erkannt wird. Diese Ergebnisse enthalten Dateimetadaten, automatisch installierte Erweiterungen und Registrierungsschlüssel, wie es im Whitepaper zum Datenschutz bei Chrome beschrieben ist.
-
-      Falls die Richtlinie deaktiviert ist und das Chrome Cleanup Tool unerwünschte Software findet, werden keine Metadaten betreffend den Scan an Google gesendet. Über "SafeBrowsingExtendedReportingEnabled" festgelegte Richtlinien werden überschrieben. Der Nutzer wird dann vom Chrome Cleanup Tool gefragt, ob die unerwünschte Software gelöscht werden soll.  Ergebnisse der Bereinigung werden nicht an Google gesendet und der Nutzer hat auch keine Möglichkeit dazu.
-
-      Falls die Richtlinie aktiviert ist und das Chrome Cleanup Tool unerwünschte Software findet, können Metadaten zum Scan an Google gesendet werden. Dies geschieht in Übereinstimmung mit der über "SafeBrowsingExtendedReportingEnabled" festgelegten Richtlinie. Der Nutzer wird dann vom Chrome Cleanup Tool gefragt, ob die unerwünschte Software gelöscht werden soll.  Ergebnisse der Bereinigung werden an Google gesendet und der Nutzer hat keine Möglichkeit, dies zu verhindern.
-
-      Diese Richtlinie steht nur bei Windows-Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, oder bei Windows 10 Pro- oder Enterprise-Instanzen, für die eine Geräteverwaltung eingerichtet ist.</translation>
 <translation id="172374442286684480">Speichern von lokalen Daten für alle Websites zulassen</translation>
 <translation id="1736269219679256369">Fortfahren von SSL-Hinweisseite erlauben</translation>
 <translation id="1745973235372964482">Keine passwortgeschützten Dateien zulassen</translation>
@@ -1363,15 +1356,6 @@
           Die Deaktivierung dieser Einstellung entspricht einer nicht konfigurierten Option. Nutzer können diese Einstellung in <ph name="PRODUCT_NAME" /> ändern.
 
           Diese Richtlinie steht nur bei Windows-Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, oder bei Windows 10 Pro- oder Enterprise-Instanzen, die für die Geräteverwaltung angemeldet sind, sowie macOS-Instanzen, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation>
-<translation id="2982571648442031489">Konfigurieren Sie die Liste der Domains, die von Safe Browsing als vertrauenswürdig eingestuft werden. Das bedeutet Folgendes:
-Es findet keine Prüfung auf gefährliche Ressourcen wie Phishing, Malware oder unerwünschte Software durch Safe Browsing statt, wenn die URLs dieser Ressourcen mit diesen Domains übereinstimmen.
-      Es findet keine Prüfung von in diesen Domains gehosteten Downloads durch den Downloadschutzdienst von Safe Browsing statt.
-      Es findet keine Prüfung auf eine Wiederverwendung von Passwörtern durch den Passwortschutzdienst von Safe Browsing statt, wenn die Seiten-URL mit diesen Domains übereinstimmt.
-
-      Wenn diese Einstellung aktiviert ist, stuft Safe Browsing diese Domains als vertrauenswürdig ein.
-      Wenn diese Einstellung deaktiviert oder nicht konfiguriert ist, wird der Safe Browsing-Standardschutz auf alle Ressourcen angewendet.
-
-      Diese Richtlinie steht nur bei Windows-Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, oder bei Windows 10 Pro- oder Enterprise-Instanzen, die für die Geräteverwaltung angemeldet sind, sowie macOS-Instanzen, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation>
 <translation id="2985927503455169394">Standardmodus für das Einrichten von Assistant verwenden</translation>
 <translation id="2987155890997901449">ARC aktivieren</translation>
 <translation id="2987227569419001736">Verwendung der Web Bluetooth API steuern</translation>
@@ -1488,11 +1472,6 @@
       Wenn die Richtlinie nicht konfiguriert oder auf "false" festgelegt ist, werden DHE-Verschlüsselungssammlungen in TLS nicht aktiviert. Die Richtlinie kann auf "true" festgelegt werden, um DHE-Verschlüsselungssammlungen zu aktivieren und die Kompatibilität mit veralteten Servern zu gewährleisten. Dies ist eine provisorische Maßnahme. Der Server sollte neu konfiguriert werden.
 
       Server sollten zu ECDHE-Verschlüsselungssammlungen migriert werden. Falls diese nicht verfügbar sind, vergewissern Sie sich, dass eine Verschlüsselungssammlung mit einem RSA-Schlüsselaustausch aktiviert ist.</translation>
-<translation id="3117706142826400449">Wenn diese Richtlinie deaktiviert ist, kann das Chrome Cleanup Tool das System nicht auf unerwünschte Software scannen und bereinigen. Das Chrome Cleanup Tool kann dann auch nicht manuell über chrome://settings/cleanup gestartet werden.
-
-      Falls die Richtlinie aktiviert oder nicht konfiguriert ist, scannt das Chrome Cleanup Tool das System regelmäßig nach unerwünschter Software. Wird welche gefunden, wird der Nutzer gefragt, ob sie entfernt werden soll. Das Chrome Cleanup Tool kann auch manuell über chrome://settings gestartet werden.
-
-      Diese Richtlinie steht nur bei Windows-Instanzen zur Verfügung, die Teil einer "<ph name="MS_AD_NAME" />"-Domain sind, oder bei Windows 10 Pro- oder Enterprise-Instanzen, für die eine Geräteverwaltung eingerichtet ist.</translation>
 <translation id="3119125876909100625">Upload von passwortgeschützten Dateien zulassen</translation>
 <translation id="3122082892722698079">Ausnahmen bei unsicheren Inhalten verwalten</translation>
 <translation id="3143265893557969814">Wenn Sie diese Richtlinie konfigurieren, werden alle angegebenen Datentypen von der Synchronisierung ausgeschlossen. Dies gilt sowohl für Google Sync als auch für die Synchronisierung von Roaming-Profilen. Dadurch lässt sich die Größe von Roaming-Profilen reduzieren und Sie können einschränken, welche Arten von Daten auf die Google Sync-Server hochgeladen werden.
@@ -2113,13 +2092,6 @@
 <translation id="4061590579642538878">Informationen über Absturzberichte melden.</translation>
 <translation id="4075675819066819571">Ablage auf der linken Seite des Bildschirms anzeigen</translation>
 <translation id="4075864623710596000">In dieser Liste aufgeführte Hostnamen sind vom HSTS-Richtliniencheck ausgenommen, der Anfragen von http auf https upgraden kann. Für diese Richtlinie sind nur Single-Label-Hostnamen zulässig. Hostnamen müssen kanonisiert werden: Alle IDNs müssen in ihr A-Label-Format konvertiert und alle ASCII-Buchstaben kleingeschrieben werden. Diese Richtlinie gilt nur für die angegebenen Hostnamen, aber nicht für Subdomains der angegebenen Namen.</translation>
-<translation id="4076584741592854827">Liste von Dateitypen, die nach dem Download automatisch geöffnet werden sollen. Das vorangestellte Trennzeichen sollte beim Aufführen der Dateitypen nicht mit angegeben werden. Geben Sie also beispielsweise "txt" und nicht ".txt" an.
-
-      Dateitypen, die automatisch geöffnet werden sollen, unterliegen dennoch den aktivierten Safe Browsing-Überprüfungen und werden nicht geöffnet, falls sie diese nicht bestehen.
-
-      Wenn diese Richtlinie nicht konfiguriert ist, werden nach dem Download nur die Dateitypen automatisch geöffnet, die der Nutzer bereits angegeben hat.
-
-      Diese Richtlinie steht nur bei Windows-Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, oder bei Windows 10 Pro- oder Enterprise-Instanzen, die für die Geräteverwaltung angemeldet sind, sowie macOS-Instanzen, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation>
 <translation id="408029843066770167">Abfragen an einen Google-Dienst für die Zeiteinstellung zulassen</translation>
 <translation id="408076456549153854">Browseranmeldung aktivieren</translation>
 <translation id="4082498585300984671">Funktion "Zum Anrufen klicken" aktivieren</translation>
@@ -3270,7 +3242,7 @@
 
       Wenn die Richtlinie nicht konfiguriert ist, kommen alle 4 Schemas zum Einsatz.
 
-      Gültige Werte :
+      Gültige Werte:
 
       * basic
 
@@ -4054,19 +4026,6 @@
 
       Wenn diese Richtlinie nicht konfiguriert ist, ist die Einstellung für vom Unternehmen verwaltete Nutzer und für nicht verwaltete Nutzer standardmäßig aktiviert.</translation>
 <translation id="6864244339257535116">Upload und Download von passwortgeschützten Dateien zulassen</translation>
-<translation id="6870295914868104867">Wenn die Richtlinie konfiguriert ist, wird eine Liste von Apps und Erweiterungen festgelegt, die automatisch installiert werden, also ohne Interaktion des Nutzers, und die vom Nutzer weder deinstalliert noch deaktiviert werden können. Berechtigungen, auch für die Erweiterungs-APIs "enterprise.deviceAttributes" und "enterprise.platformKeys", werden implizit gewährt. Diese beiden APIs stehen bei Apps oder Erweiterungen ohne erzwungene Installation nicht zur Verfügung.
-
-      Wenn die Richtlinie nicht konfiguriert ist, werden Apps und Erweiterungen nicht automatisch installiert und Nutzer können jede App oder Erweiterung in <ph name="PRODUCT_NAME" /> deinstallieren.
-
-      Diese Richtlinie hat Vorrang gegenüber der Richtlinie "<ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />". Wenn eine App oder Erweiterung mit erzwungener Installation aus dieser Liste entfernt wird, wird sie automatisch von <ph name="PRODUCT_NAME" /> deinstalliert.
-
-      In Windows®-Instanzen, die nicht Teil einer <ph name="MS_AD_NAME" />-Domain sind, bleibt die erzwungene Installation auf die im Chrome Web Store aufgeführten Apps und Erweiterungen beschränkt.
-
-      Nutzer können den Quellcode jeder Erweiterung mithilfe von Entwicklertools ändern. Danach funktioniert die entsprechende Erweiterung eventuell nicht mehr. Wenn Sie das verhindern möchten, können Sie die Richtlinie "<ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />" festlegen.
-
-      Jedes Listenelement der Richtlinie ist ein String mit einer Erweiterungs-ID und einer optionalen Update-URL, die durch ein Semikolon (;) getrennt sind. Die Erweiterungs-ID ist der String mit 32 Buchstaben, den Sie beispielsweise im Entwicklermodus unter chrome://extensions sehen. Die Update-URL sollte, sofern festgelegt, auf ein XML-Dokument mit einem Update-Manifest verweisen (https://developer.chrome.com/extensions/autoupdate). Standardmäßig kommt die Update-URL des Chrome Web Store zum Einsatz. Die in dieser Richtlinie festgelegte Update-URL wird nur für die Erstinstallation verwendet. In nachfolgenden Updates der Erweiterung kommt die Update-URL zum Einsatz, die im Manifest der Erweiterung angegeben wurde.
-
-       Hinweis: Diese Richtlinie gilt nicht für den Inkognitomodus. Informationen zum Hosting von Erweiterungen finden Sie unter https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="687046793986382807">Diese Richtlinie gilt ab <ph name="PRODUCT_NAME" /> Version 35 nicht mehr.
 
 Speicherinformationen werden unabhängig von der gewählten Option an die Seite weitergegeben, allerdings werden die gemeldeten Größen quantisiert und die Aktualisierungshäufigkeit wird aus Sicherheitsgründen begrenzt. Um genaue Daten in Echtzeit zu erhalten, können Sie Tools wie Telemetry verwenden.</translation>
@@ -5710,11 +5669,6 @@
       Nach dem Neustart wird die Sitzung des Nutzers wiederhergestellt.</translation>
 <translation id="9160028464653564229">Websites nicht erlauben, den Nutzer über die Serial API um Zugriff auf serielle Ports zu bitten</translation>
 <translation id="9167719789236691545">Synchronisierung zwischen Drive und der App "Dateien" von <ph name="PRODUCT_OS_NAME" /> deaktivieren</translation>
-<translation id="917514578273777202">Ist diese Richtlinie aktiviert, wird eine Standardsuche durchgeführt, wenn der Nutzer Text in die Adressleiste eingibt, bei dem es sich nicht um eine URL handelt. Wenn Sie den Standardsuchanbieter angeben möchten, legen Sie die restlichen Richtlinien für die Standardsuche fest. Tun Sie das nicht, kann der Nutzer den Standardanbieter selbst auswählen. Ist diese Richtlinie deaktiviert, wird keine Suche durchgeführt, wenn der Nutzer Text in die Adressleiste eingibt, bei dem es sich nicht um eine URL handelt.
-
-      Wenn Sie diese Richtlinie konfigurieren, kann sie von Nutzern in <ph name="PRODUCT_NAME" /> nicht geändert werden. Ist die Richtlinie nicht konfiguriert, wird der Standardsuchanbieter aktiviert und Nutzer können die Suchanbieterliste selbst zusammenstellen.
-
-      Hinweis: Diese Richtlinie steht nur bei Windows®-Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, bei Windows 10 Pro oder Chrome Enterprise-Upgrade und bei macOS-Instanzen, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation>
 <translation id="9185107612228451403">Hiermit werden erweiterungsbezogene Richtlinien konfiguriert. Auf die schwarze Liste gesetzte Erweiterungen können vom Nutzer nur installiert werden, wenn diese in der weißen Liste enthalten sind. Wenn Sie die automatische Installation von bestimmten Erweiterungen durch <ph name="PRODUCT_NAME" /> erzwingen möchten, können Sie die Erweiterungen in "<ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />" angeben. Erweiterungen mit erzwungener Installation werden immer installiert, unabhängig davon, ob sie sich auf der schwarzen Liste befinden.</translation>
 <translation id="9187743794267626640">Bereitstellen von externem Speicher deaktivieren</translation>
 <translation id="9190456586252617675">Mit dieser Richtlinie kann der Modus für die Einrichtung von Assistant konfiguriert werden.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 6890530..47f079f 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -303,9 +303,9 @@
 
       Nota: Esta política también se aplica en las extensiones de componentes, como la extensión de Servicios de Hangout.</translation>
 <translation id="1486021504508098388">Enviar información sobre la luz de fondo</translation>
-<translation id="1487916040416013623">Si estableces la política, se especificarán los servidores que deben habilitarse para la autenticación integrada, la cual solo se habilita cuando <ph name="PRODUCT_NAME" /> recibe un desafío de autenticación de un proxy o de un servidor que se encuentra en la lista autorizada.
+<translation id="1487916040416013623">Si estableces la política, se especificarán los servidores que deben habilitarse para la autenticación integrada, la cual solo está activa cuando <ph name="PRODUCT_NAME" /> recibe un desafío de autenticación de un proxy o de un servidor que se encuentra en la lista autorizada.
 
-      Si no estableces la política, <ph name="PRODUCT_NAME" /> intentará detectar si un servidor se encuentra en Intranet. Solo en ese caso responderá a las solicitudes de IWA. Si se detecta un servidor como Internet, <ph name="PRODUCT_NAME" /> ignorará las solicitudes de IWA que provengan de ese servidor.
+      Si no estableces la política, <ph name="PRODUCT_NAME" /> intentará detectar si un servidor se encuentra en la intranet. Solo en ese caso responderá a las solicitudes de IWA. Si se detecta un servidor como Internet, <ph name="PRODUCT_NAME" /> ignorará las solicitudes de IWA que provengan de ese servidor.
 
       Nota: Los nombres de los servidores se separan con comas. Se permite el uso de caracteres comodín (<ph name="WILDCARD_VALUE" />).</translation>
 <translation id="1488406778491620405">La función de accesibilidad de <ph name="PRODUCT_NAME" />
@@ -466,13 +466,6 @@
 
       Si la estableces como falsa, los usuarios no podrán agregar, quitar ni modificar favoritos, pero podrán seguir utilizando los existentes.</translation>
 <translation id="1715151459541210849">Habilita la función de accesibilidad de dictado</translation>
-<translation id="1717817358640580294">Si no se establece, en caso de que "Limpiar Chrome" detecte software no deseado, es posible que informe metadatos sobre el análisis a Google en conformidad con la política establecida por SafeBrowsingExtendedReportingEnabled. Además, "Limpiar Chrome" le preguntará al usuario si quiere borrar el software no deseado y si desea compartir los resultados de la limpieza con Google a fin de colaborar con futuras detecciones de ese tipo de software. Estos resultados contienen metadatos de archivos, extensiones instaladas automáticamente y claves de registro, como se describe en el Informe de privacidad de Chrome.
-
-      Si se inhabilita, en caso de que "Limpiar Chrome" detecte software no deseado, no informará metadatos sobre el análisis a Google y se anulará cualquier política establecida por SafeBrowsingExtendedReportingEnabled. "Limpiar Chrome" le preguntará al usuario si quiere borrar el software no deseado.  Los resultados de la limpieza no se informarán a Google, y el usuario no tendrá la opción de hacerlo.
-
-      Si se habilita, en caso de que "Limpiar Chrome" detecte software no deseado, es posible que informe metadatos sobre el análisis a Google en conformidad con la política establecida por SafeBrowsingExtendedReportingEnabled. "Limpiar Chrome" le preguntará al usuario si quiere borrar el software no deseado.  Los resultados de la limpieza se informarán a Google, y el usuario no tendrá la opción de impedirlo.
-
-      Esta política está disponible en instancias de Windows vinculadas a un dominio de <ph name="MS_AD_NAME" /> o instancias de Windows 10 Pro o Enterprise habilitadas para la administración de dispositivos.</translation>
 <translation id="172374442286684480">Permitir a todos los sitios establecer datos locales</translation>
 <translation id="1736269219679256369">Permitir continuar desde la página de advertencia de SSL</translation>
 <translation id="1745973235372964482">No permitir archivos protegidos con contraseña</translation>
@@ -581,7 +574,7 @@
           Actualmente, esta función está inhabilitada en el lado del servidor.</translation>
 <translation id="1919802376548418720">Usa la política de KDC para delegar credenciales.</translation>
 <translation id="1920046221095339924">Permitir las sesiones administradas en el dispositivo</translation>
-<translation id="1920772397574801429">Si estableces esta política, se especificará el tipo de cuentas que proporciona la app de autenticación de Android compatible con la autenticación <ph name="HTTP_NEGOTIATE" /> (como la autenticación Kerberos). El proveedor de la app de autenticación debe brindar esta información. Para obtener más información, consulta The Chromium Projects (https://goo.gl/hajyfN)
+<translation id="1920772397574801429">Si estableces esta política, se especificará el tipo de cuentas que proporciona la app de autenticación de Android compatible con la autenticación <ph name="HTTP_NEGOTIATE" /> (como la autenticación Kerberos). El proveedor de la app de autenticación debe brindar esta información. Para saber más sobre este procedimiento, consulta The Chromium Projects (https://goo.gl/hajyfN)
 
       Si no estableces la política, se desactivará la autenticación <ph name="HTTP_NEGOTIATE" /> en Android.</translation>
 <translation id="1930127294345368978">Cantidad máxima de hojas permitidas para un solo trabajo de impresión</translation>
@@ -870,13 +863,13 @@
       Si la plantilla de URI contiene una variable <ph name="HTTP_VARIABLE_DNS" />, las solicitudes al agente de resolución usarán <ph name="HTTP_METHOD_GET" />; de lo contrario, las solicitudes usarán <ph name="HTTP_METHOD_POST" />.
 
       Se omitirán las plantillas con formato incorrecto.</translation>
-<translation id="2333228572393176330">Esta política controla una función de seguridad en TLS 1.3 que protege las conexiones contra ataques de cambio a una versión anterior. La función es retrocompatible y no afecta las conexiones a proxies o servidores que emplean el protocolo TLS 1.2. Sin embargo, las versiones anteriores de algunos proxies de intercepción de TLS tienen una falla de implementación que genera la incompatibilidad.
+<translation id="2333228572393176330">Esta política controla una función de seguridad en TLS 1.3 que protege las conexiones contra ataques de cambio a una versión inferior. La función es retrocompatible y no afecta las conexiones a proxies o servidores que admiten el protocolo TLS 1.2. Sin embargo, las versiones anteriores de algunos proxies de intercepción de TLS tienen una falla de implementación que genera la incompatibilidad.
 
-      Si estableces esta política como verdadera o no se configura, <ph name="PRODUCT_NAME" /> habilitará estas protecciones para todas las conexiones.
+      Si estableces esta política como verdadera o no la estableces, <ph name="PRODUCT_NAME" /> habilitará estas protecciones para todas las conexiones.
 
       Si la estableces como falsa, <ph name="PRODUCT_NAME" /> inhabilitará estas protecciones para las conexiones autenticadas con certificados de CA instalados a nivel local. Estas protecciones están siempre habilitadas para las conexiones autenticadas con certificados de CA con confianza pública.
 
-      Se cambió el valor predeterminado para esta política en <ph name="PRODUCT_NAME" /> 81 de falso a verdadero. Se espera que los proxies afectados generen un error en las conexiones (código de error: ERR_TLS13_DOWNGRADE_DETECTED). Los administradores que necesiten más tiempo para actualizar los proxies afectados pueden utilizar esta política para inhabilitar de forma temporal esta función de seguridad. En la versión 86, se quitó esta política.
+      Se cambió el valor predeterminado para esta política en <ph name="PRODUCT_NAME" /> 81 de falso a verdadero. Los proxies afectados deberían generar un error en las conexiones con el código ERR_TLS13_DOWNGRADE_DETECTED. Los administradores que necesiten más tiempo para actualizar los proxies afectados pueden utilizar esta política para inhabilitar de forma temporal esta función de seguridad. En la versión 86 se quitó esta política.
       </translation>
 <translation id="2333763898098246468">Controla la forma en la que <ph name="PRODUCT_NAME" /> realiza trabajos de impresión en Windows.
 
@@ -1040,12 +1033,12 @@
           Si no la estableces, la función de resaltar el signo de intercalación estará inicialmente inhabilitada, pero el usuario podrá habilitarla en cualquier momento.</translation>
 <translation id="2509919237512982967">Utilizar los controles de formulario heredados hasta M84.</translation>
 <translation id="2512630007068794030">Si habilitas la política, la función <ph name="PRODUCT_NAME" /> hará que las páginas web se almacenen en su estado actual (árbol de documentos, secuencia de comandos, etc.) en la memoria caché atrás/adelante al salir de una página.
-          Si el usuario volviese a visitar esa página, se restauraría desde la memoria caché atrás/adelante y se mostraría en el estado en el que estaba al almacenarse en caché la vez anterior.
+          Si el usuario volviese a esa página, se restablecería desde la memoria caché atrás/adelante y se mostraría en el estado en el que estaba al almacenarse en caché la vez anterior.
 
-          Es posible que esta función provoque fallos en algunos sitios web que no
-          esperen que se los almacene en caché, especialmente los que dependen de que se
+          Es posible que esta función provoque fallas en algunos sitios web que no
+          prevean su almacenamiento en caché, especialmente los que dependen de que se
           activen controladores de descarga al salir de la página, ya que el evento de descarga
-          no se enviará cuando el usuario salga de una página y se guardará
+          no se enviará cuando el usuario salga de una página y esta se guardará
           en la memoria caché atrás/adelante.
 
           Si habilitas esta política o no la estableces, se habilitará la función <ph name="PRODUCT_NAME" />.
@@ -1274,9 +1267,9 @@
       Si la estableces como falsa, no se recopilarán los datos que permiten identificar las máquinas.
 
       Esta política solo será válida si la máquina está inscrita en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> para <ph name="PRODUCT_NAME" />.</translation>
-<translation id="283478052049914107">Si habilitas esta política y se introduce un puerto no estándar (es decir, cualquiera que no sea el 80 ni el 443), ese puerto se incluirá en el SPN de Kerberos generado.
+<translation id="283478052049914107">Si habilitas esta política e introduces un puerto no estándar (es decir, cualquiera que no sea el 80 ni el 443), ese puerto se incluirá en el SPN de Kerberos generado.
 
-      Si la inhabilitas o no la estableces, el SPN de Kerberos no incluirá ningún puerto.</translation>
+      Si la inhabilitas o no la estableces, el SPN de Kerberos que se genere no incluirá ningún puerto.</translation>
 <translation id="283695852388224413">Si se establece la política, se aplicará la extensión máxima de PIN configurada. El valor "0" o inferior significa que no hay extensión máxima. En ese caso, el usuario podrá configurar un PIN con la extensión que desee. Si el valor de esta configuración es menor que <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" />, pero mayor que 0, la extensión máxima será igual a la extensión mínima.
 
           Si no se establece esta política, se aplicará la extensión máxima.</translation>
@@ -1383,15 +1376,6 @@
           Inhabilitar esta configuración equivale a no establecerla en absoluto. El usuario aún podrá cambiarla en <ph name="PRODUCT_NAME" />.
 
           Esta política solo está disponible en instancias de Windows vinculadas a un dominio de <ph name="MS_AD_NAME" /> o en instancias de Windows 10 Pro o Enterprise habilitadas para la administración de dispositivos, además de instancias de macOS administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
-<translation id="2982571648442031489">Configura la lista de dominios en los que confiará la Navegación segura. Esto significa lo siguiente:
-      La Navegación segura no revisará recursos peligrosos (p. ej., suplantación de identidad [phishing], software malicioso o software no deseado) si las URL coinciden con estos dominios.
-      El servicio de protección de descargas de la Navegación segura no comprobará las descargas alojadas en estos dominios.
-      El servicio de protección de contraseñas de la Navegación segura no comprobará si se está reutilizando la contraseña cuando la URL de la página coincida con estos dominios.
-
-      Si habilitas esta configuración, la Navegación segura confiará en estos dominios.
-      Si la inhabilitas o no la estableces, se aplicará la protección de la Navegación segura a todos los recursos.
-
-      Esta política solo está disponible en instancias de Windows vinculadas a un dominio de <ph name="MS_AD_NAME" /> o en instancias de Windows 10 Pro o Enterprise habilitadas para la administración de dispositivos, además de instancias de macOS administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="2985927503455169394">Usa el modo predeterminado de la experiencia de integración del Asistente</translation>
 <translation id="2987155890997901449">Habilitar ARC</translation>
 <translation id="2987227569419001736">Controlar el uso de la API de Bluetooth web</translation>
@@ -1399,7 +1383,7 @@
 
       Si inhabilitas la política o no la estableces, se ignorará la clave del manifiesto de <ph name="REQUIRED_PLATFORM_VERSION" /> y la actualización automática se realizará con normalidad.
 
-      Advertencia: No delegues el control de la versión de <ph name="PRODUCT_OS_NAME" /> a una aplicación de kiosco, ya que podría impedir que el dispositivo reciba actualizaciones de software y correcciones de seguridad importantes. Si se delega el control de la versión de <ph name="PRODUCT_OS_NAME" />, podría poner en riesgo a los usuarios.</translation>
+      Advertencia: No delegues el control de la versión de <ph name="PRODUCT_OS_NAME" /> a una aplicación de kiosco, ya que hacerlo podría impedir que el dispositivo reciba actualizaciones de software y correcciones de seguridad importantes. La delegación del control de la versión de <ph name="PRODUCT_OS_NAME" />podría poner en riesgo a los usuarios.</translation>
 <translation id="299519952839316970">Ten en cuenta que esta política es obsoleta y se quitará en la versión 88 de <ph name="PRODUCT_OS_NAME" />. Ya no se admiten las sesiones públicas. En su lugar, utiliza <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" /> para configurar las sesiones de invitado administradas.
       Si estableces esta política como falsa, las sesiones de invitado administradas se comportarán como se indica en https://support.google.com/chrome/a/answer/3017014, la "sesión pública" estándar.
 
@@ -1508,11 +1492,6 @@
       Si no se establece esta política o se establece como falsa, los paquetes de encriptación DHE en TLS no se habilitarán. De lo contrario, se puede establecer como verdadera para habilitar los paquetes de encriptación DHE y mantener la compatibilidad con un servidor desactualizado. Esta medida es un recurso temporal, y el servidor debe reconfigurarse.
 
       Se recomienda que los servidores migren a los paquetes de encriptación ECDHE. Si no están disponibles, se permite garantizar un paquete de encriptación con un intercambio de claves RSA.</translation>
-<translation id="3117706142826400449">Si se inhabilita, impide que "Limpiar Chrome" analice el sistema para detectar software no deseado y realice limpiezas. La opción de activar manualmente "Limpiar Chrome" desde chrome://settings/cleanup estará inhabilitada.
-
-      Si se habilita o no se establece, "Limpiar Chrome" analiza el sistema periódicamente para detectar software no deseado y, si encuentra alguno, le pregunta al usuario si quiere quitarlo. La opción de activar manualmente "Limpiar Chrome" desde chrome://settings estará habilitada.
-
-      Esta política está disponible en instancias de Windows vinculadas a un dominio de <ph name="MS_AD_NAME" /> o instancias de Windows 10 Pro o Enterprise habilitadas para la administración de dispositivos.</translation>
 <translation id="3119125876909100625">Permitir la carga de archivos protegidos con contraseña</translation>
 <translation id="3122082892722698079">Controla el uso de excepciones de contenido no seguro</translation>
 <translation id="3143265893557969814">Si estableces esta política, se excluirán todos los tipos de datos especificados de la sincronización para Google Sync y de la sincronización de perfiles en roaming. Es política puede ayudar a reducir el tamaño del perfil en roaming o limitar los tipos de datos que se suben a los servidores de Google Sync.
@@ -1818,7 +1797,7 @@
 <translation id="3584194414857209694">Habilita las políticas experimentales</translation>
 <translation id="3584722841530002134">Si estableces la política, se asignarán los servidores a los que <ph name="PRODUCT_NAME" /> puede delegar. Los nombres de los servidores se separan con comas. Se permite el uso de caracteres comodín (<ph name="WILDCARD_VALUE" />).
 
-      Si no estableces la política, <ph name="PRODUCT_NAME" /> no delegará credenciales de usuario aunque un servidor se detecte como Intranet.</translation>
+      Si no estableces la política, <ph name="PRODUCT_NAME" /> no delegará credenciales de usuario, incluso si se detecta un servidor como intranet.</translation>
 <translation id="3585177699591644295">Habilita la función de accesibilidad "Seleccionar para pronunciar"
 
           Si esta política se configura como verdadera, la función estará siempre habilitada.
@@ -1839,7 +1818,7 @@
 <translation id="3639444551396586995">Permite a Chrome informar a Google de eventos no seguros</translation>
 <translation id="3643284063603988867">Habilita la función "Recordar contraseña"</translation>
 <translation id="3646859102161347133">Establece el tipo de lupa.</translation>
-<translation id="3647212518036289905">Si estableces la política, esta especificará qué biblioteca GSSAPI se debe usar para la autenticación HTTP. Puedes establecerla como un nombre de biblioteca o una ruta completa.
+<translation id="3647212518036289905">Si estableces la política, esta especificará qué biblioteca GSSAPI se debe usar para la autenticación HTTP. Puedes establecerla asignándole un nombre de biblioteca o una ruta completa.
 
       Si no estableces la política, <ph name="PRODUCT_NAME" /> usará un nombre de biblioteca predeterminado.</translation>
 <translation id="3653237928288822292">Ícono del proveedor de búsqueda predeterminado</translation>
@@ -2136,13 +2115,6 @@
 <translation id="4061590579642538878">Proporciona datos sobre los informes de fallas</translation>
 <translation id="4075675819066819571">Ubicar la biblioteca en el lado izquierdo de la pantalla</translation>
 <translation id="4075864623710596000">Los nombres de host que se especifican en esta lista no se incluirán en la revisión de la política de HSTS que podría mejorar las solicitudes de http a https. En esta política, solo se permiten nombres de host con una sola etiqueta. Los nombres de host deben estar canonicalizados: debe convertirse cualquier IDN a su formato de etiqueta A y todas las letras en formato ASCII deben estar en minúscula. Esta política solo se aplica a los nombres de host específicos de la lista; no se aplica a los subdominios de estos nombres.</translation>
-<translation id="4076584741592854827">Lista de los tipos de archivos que se deben abrir automáticamente una vez descargados. Cuando enumeres el tipo de archivo, no incluyas el separador principal. Por ejemplo, usa "txt" en lugar de ".txt".
-
-      Si habilitas la Navegación segura, esta función revisará los archivos que se pueden abrir automáticamente. Si los archivos no son seguros, no se abrirán.
-
-      Si no estableces esta política, solo se abrirán los tipos de archivos que el usuario haya especificado para que se abran automáticamente cuando se descarguen.
-
-      Esta política solo está disponible en instancias de Windows vinculadas a un dominio de <ph name="MS_AD_NAME" /> o en instancias de Windows 10 Pro o Enterprise habilitadas para la administración de dispositivos, además de instancias de macOS administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="408029843066770167">Permitir consultas a un servicio de hora de Google</translation>
 <translation id="408076456549153854">Habilitar el acceso en el navegador</translation>
 <translation id="4082498585300984671">Habilita la función Llamar con un clic</translation>
@@ -2520,18 +2492,18 @@
 
       Esta política es obsoleta; usa la política <ph name="EXTERNAL_PRINT_SERVERS_ALLOWLIST" /> en su lugar.</translation>
 <translation id="4668325077104657568">Configuración de imágenes predeterminadas</translation>
-<translation id="4668497019777708116">Especifica una lista de las apps que se pueden habilitar como una app para tomar notas en la pantalla de bloqueo de <ph name="PRODUCT_OS_NAME" />.
+<translation id="4668497019777708116">Especifica una lista de las apps que se pueden habilitar como app para tomar notas en la pantalla de bloqueo de <ph name="PRODUCT_OS_NAME" />.
 
-      Si la app preferida para tomar notas se habilita en la pantalla de bloqueo, esta pantalla incluirá el elemento de IU para ejecutar la app preferida para tomar notas.
-      Cuando se ejecuta la app, podrá crear una ventana en la parte superior de la pantalla de bloqueo y crear elementos (notas) en este contexto. La app podrá importar las notas creadas a la sesión del usuario principal, cuando la sesión se desbloquee. Actualmente, solo las apps para tomar notas de Chrome son compatibles con la pantalla de bloqueo.
+      Si la app preferida para tomar notas se habilita en la pantalla de bloqueo, esta pantalla incluirá el elemento de IU para ejecutar la app correspondiente.
+      Cuando se ejecute, la app podrá crear una ventana en la parte superior de la pantalla de bloqueo y elementos de datos (notas) en el contexto de esa pantalla. La app podrá importar las notas creadas a la sesión del usuario principal cuando la sesión se desbloquee. Actualmente solo las apps para tomar notas de Chrome son compatibles con la pantalla de bloqueo.
 
-      Si estableces la política, el usuario podrá habilitar una app en la pantalla de bloqueo, solo si la ID de extensión de la app aparece en la lista de valores de la política.
-      Como consecuencia, si estableces esta política como una lista vacía, se inhabilitará la toma de notas en la pantalla de bloqueo por completo.
-      Ten en cuenta que la política que contiene la ID de una app no implica que el usuario podrá habilitar la app para tomar notas en la pantalla de bloqueo. Por ejemplo, en Chrome 61, la plataforma aplica otras restricciones al conjunto de apps disponibles.
+      Si estableces la política, el usuario podrá habilitar una app en la pantalla de bloqueo solo si la ID de extensión de la app aparece en la lista de valores de la política.
+      Como consecuencia, si estableces esta política con una lista vacía, se inhabilitará la toma de notas en la pantalla de bloqueo por completo.
+      Ten en cuenta que el hecho de que la política contenga una ID de app no implica necesariamente que el usuario podrá habilitar la app para tomar notas en la pantalla de bloqueo. Por ejemplo, en Chrome 61, la plataforma aplica otras restricciones al conjunto de apps disponibles.
 
       Si no estableces la política, esta no restringirá el conjunto de apps que el usuario puede habilitar en la pantalla de bloqueo.
 
-      Esta política es obsoleta; usa la política <ph name="NOTE_TAKING_APPS_LOCK_SCREEN_ALLOWLIST" /> en su lugar.</translation>
+      Esta política dejó de estar disponible; usa la política <ph name="NOTE_TAKING_APPS_LOCK_SCREEN_ALLOWLIST" /> en su lugar.</translation>
 <translation id="4670865688564083639">Mínimo:</translation>
 <translation id="4671708336564240458">Te permite establecer si se impedirá que los sitios con experiencias abusivas abran ventanas o pestañas nuevas.
 
@@ -3263,11 +3235,11 @@
       Si no la estableces, se habilitará el cliente DNS integrado de forma predeterminada en macOS, el Sistema operativo Chrome y Android (cuando no están habilitados el DNS privado ni la VPN). Además, los usuarios podrán editar chrome://flags o especificar una marca de línea de comandos para decidir si se utiliza el cliente DNS integrado.</translation>
 <translation id="5630352020869108293">Restaurar la última sesión</translation>
 <translation id="5633871703004128675">Habilita la función de accesibilidad de resaltar el signo de intercalación</translation>
-<translation id="5641279111657132737">Esta política dejó de estar disponible. En su lugar, utiliza la política "<ph name="AUTH_SERVER_ALLOWLIST_POLICY_NAME" />".
+<translation id="5641279111657132737">Esta política dejó de estar disponible. Usa la política "<ph name="AUTH_SERVER_ALLOWLIST_POLICY_NAME" />" en su lugar.
 
-      Si estableces la política, se especificarán los servidores que deben habilitarse para la autenticación integrada, la cual solo se habilita cuando <ph name="PRODUCT_NAME" /> recibe un desafío de autenticación de un proxy o de un servidor que se encuentra en la lista autorizada.
+      Si estableces la política, se especificarán los servidores que deben habilitarse para la autenticación integrada, la cual solo está activa cuando <ph name="PRODUCT_NAME" /> recibe un desafío de autenticación de un proxy o de un servidor que se encuentra en la lista autorizada.
 
-      Si no estableces la política, <ph name="PRODUCT_NAME" /> intentará detectar si un servidor se encuentra en Intranet. Solo en ese caso responderá a las solicitudes de IWA. Si se detecta un servidor como Internet, <ph name="PRODUCT_NAME" /> ignorará las solicitudes de IWA que provengan de ese servidor.
+      Si no estableces la política, <ph name="PRODUCT_NAME" /> intentará detectar si un servidor se encuentra en la intranet. Solo en ese caso responderá a las solicitudes de IWA. Si se detecta un servidor como Internet, <ph name="PRODUCT_NAME" /> ignorará las solicitudes de IWA que provengan de ese servidor.
 
       Nota: Los nombres de los servidores se separan con comas. Se permite el uso de caracteres comodín (<ph name="WILDCARD_VALUE" />).</translation>
 <translation id="5645779841392247734">Permitir cookies en estos sitios</translation>
@@ -3870,7 +3842,7 @@
 <translation id="6573305661369899995">Establece una fuente externa de restrcicciones de URL</translation>
 <translation id="6575944031719151455">Si estableces la política, esta especificará la lista de cuentas locales del dispositivo que se muestran en la pantalla de acceso. Se usan identificadores para diferenciar las diversas cuentas locales del dispositivo.
 
-      Si no estableces la política o la defines como una lista vacía, no habrá ninguna cuenta local del dispositivo.</translation>
+      Si no estableces la política o la defines con una lista vacía, no habrá ninguna cuenta local del dispositivo.</translation>
 <translation id="6583851521569686409">Configura una lista de impresoras.
 
       Esta política permite que los administradores proporcionen configuraciones de impresoras
@@ -4076,19 +4048,6 @@
 
       Si no estableces esta política, se podrá utilizar el valor predeterminado tanto para usuarios administrados por una empresa como para aquellos no administrados.</translation>
 <translation id="6864244339257535116">Permitir las cargas y descargas de archivos protegidos con contraseña</translation>
-<translation id="6870295914868104867">Si estableces la política, se especificará una lista de apps y extensiones que se instalan de forma discreta, sin la interacción del usuario, y que este no puede desinstalar ni desactivar. Se otorgan los permisos de manera implícita, incluidos los de las API de extensión enterprise.deviceAttributes y enterprise.platformKeys. (Estas 2 API no están disponibles para las apps y extensiones que no se instalan de manera automática).
-
-      Si no estableces la política, no se instalará ninguna app ni extensión de manera automática y los usuarios podrán desinstalar cualquier app o extensión en <ph name="PRODUCT_NAME" />.
-
-      Esta política tiene prioridad por sobre la política <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Si se quita de esta lista una app o extensión instalada de manera automática, <ph name="PRODUCT_NAME" /> la desinstalará de forma automática.
-
-      Para las instancias de Windows® que no estén unidas a un dominio de <ph name="MS_AD_NAME" />, solo se pueden instalar de manera automática las apps y extensiones de Chrome Web Store.
-
-      Los usuarios pueden modificar el código fuente de cualquier extensión a través de las herramientas para desarrolladores (y probablemente la extensión deje de funcionar). Si esta situación puede plantear problemas, establece la política <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Cada elemento de la lista de la política es una string que contiene un ID de extensión y, de forma opcional, una URL de actualización separada por un punto y coma (;). El ID de extensión es la string de 32 letras que se encuentra, p. ej., en chrome://extensions, en el modo de desarrollador. Si se especifica, la URL de "actualización" debe direccionarte a un documento XML del manifiesto de actualización ( https://developer.chrome.com/extensions/autoupdate ). De forma predeterminada, se usa la URL de actualización de Chrome Web Store. La URL de "actualización" que se establece en esta política solo se usa para la instalación inicial; las actualizaciones posteriores de la extensión utilizan la URL de actualización que se indica en el manifiesto de la extensión.
-
-       Nota: Esta política no se aplica al modo Incógnito. Obtén más información sobre el alojamiento de extensiones en https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="687046793986382807">Esta política no está disponible a partir de la versión 35 de <ph name="PRODUCT_NAME" />.
 
       Los datos de la memoria se informan a la página, independientemente del valor de la opción, pero los tamaños especificados
@@ -4560,11 +4519,11 @@
       Si se establece como falsa, se inhabilitarán las actualizaciones de los componentes. Sin embargo, algunos componentes están exceptuados de esta política: no se inhabilitarán las actualizaciones de componentes que no contengan código ejecutable, no alteren significativamente el comportamiento del navegador ni sean fundamentales para su funcionamiento.
       Los ejemplos de dichos componentes incluyen las listas de revocación de certificados y los datos de Navegación segura.
       Consulta https://developers.google.com/safe-browsing para obtener más información sobre la Navegación segura.</translation>
-<translation id="7563608136659080810">Esta política dejó de estar disponible. En su lugar, utiliza la política "<ph name="AUTH_NEGOCIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />".
+<translation id="7563608136659080810">Esta política dejó de estar disponible. Utiliza la política "<ph name="AUTH_NEGOCIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />" en su lugar.
 
       Si estableces la política, se asignarán los servidores a los que <ph name="PRODUCT_NAME" /> puede delegar. Los nombres de los servidores se separan con comas. Se permite el uso de caracteres comodín (<ph name="WILDCARD_VALUE" />).
 
-      Si no estableces la política, <ph name="PRODUCT_NAME" /> no delegará credenciales de usuario aunque un servidor se detecte como Intranet.</translation>
+      Si no estableces la política, <ph name="PRODUCT_NAME" /> no delegará credenciales de usuario, incluso si se detecta un servidor como intranet.</translation>
 <translation id="7566878661979235378">Tipo de autenticación del acceso SAML</translation>
 <translation id="7567373982693549834">Esta política controla la forma en que cada usuario usa las apps para Android de fuentes no seguras (que no provienen de Google Play Store).
 
@@ -4627,9 +4586,9 @@
 
           Nota: Si se especifica <ph name="DEVICE_LOGIN_SCREEN_LARGE_CURSOR_ENABLED" />, anulará esta política.</translation>
 <translation id="7632724434767231364">Nombre de la biblioteca GSSAPI</translation>
-<translation id="7642890175637942277">De forma predeterminada, se muestran las Condiciones del Servicio cuando se ejecuta CCT/AWP por primera vez. Si inhabilitas esta política, no se mostrará el diálogo de las Condiciones del Servicio ya sea en la primera ejecución o en las subsiguientes. Si la habilitas o no la estableces, se mostrará el diálogo de las Condiciones del Servicio en la primera ejecución. Existen las siguientes salvedades:
+<translation id="7642890175637942277">De forma predeterminada, se muestran las Condiciones del Servicio cuando se ejecuta CCT/AWP por primera vez. Si inhabilitas esta política, no se mostrará el diálogo de las Condiciones del Servicio en la primera ejecución ni en las subsiguientes. Si la habilitas o no la estableces, se mostrará el diálogo de las Condiciones del Servicio en la primera ejecución. Ten en cuenta las siguientes salvedades:
 
-      - Esta política solo funciona en dispositivos Android completamente administrados que pueden configurar proveedores de Unified Endpoint Management (administración unificada de terminales).
+      - Esta política solo funciona en dispositivos Android completamente administrados que pueden ser configurados por proveedores de administración unificada de terminales (UEM).
 
       - Si inhabilitas esta política, la política BrowserSignin no tendrá ningún efecto.
 
@@ -4822,7 +4781,7 @@
 <translation id="7902040092815978832">Muestra el teclado numérico para la contraseña</translation>
 <translation id="7904177352786629708">Si habilitas la política, se omitirá la búsqueda de CNAME. Se usará el nombre del servidor tal como se haya introducido al generar el SPN de Kerberos.
 
-      SI inhabilitas la política o no la estableces, la búsqueda de CNAME determinará el nombre canónico del servidor al generar el SPN de Kerberos.</translation>
+      Si inhabilitas la política o no la estableces, la búsqueda de CNAME determinará el nombre canónico del servidor al generar el SPN de Kerberos.</translation>
 <translation id="7912255076272890813">Configurar tipos de extensiones o aplicaciones permitidos</translation>
 <translation id="7922358664346625612">Mantener la última pestaña abierta en Chrome</translation>
 <translation id="793134539373873765">Especifica si se debe utilizar la conexión P2P para cargas de actualizaciones del sistema operativo. Si esta política se establece en True, los dispositivos compartirán e intentarán consumir cargas de actualizaciones en la red LAN, y reducirán de forma potencial la congestión y el uso del ancho de banda de Internet. Si la carga de actualizaciones no está disponible en la red LAN, el dispositivo deberá realizar la descarga desde un servidor de actualizaciones. Si se establece en False o no se configura, no se utilizará la conexión P2P.</translation>
@@ -5355,7 +5314,7 @@
 
         Si no se establece esta política, se usará el valor predeterminado general para todos los sitios (sin acceso automático).</translation>
 <translation id="8631434304112909927">hasta la versión <ph name="UNTIL_VERSION" /></translation>
-<translation id="8631437968147930597">La lista de apps para tomar notas permitidas en la pantalla de bloqueo de <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="8631437968147930597">Lista de apps para tomar notas permitidas en la pantalla de bloqueo de <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="8649763579836720255">Los dispositivos con Sistema operativo Chrome pueden utilizar la confirmación remota (acceso verificado) para obtener un certificado emitido por la entidad de certificación del Sistema operativo Chrome que afirme que el dispositivo es apto para reproducir contenido protegido. Este proceso implica el envío de información de aprobación del hardware a la entidad de certificación del Sistema operativo Chrome, la cual identifica el dispositivo de forma única.
 
           Si esta opción está establecida en False, el dispositivo no utilizará la confirmación remota para la protección del contenido y es posible que el dispositivo no pueda reproducir contenido protegido.
@@ -5768,11 +5727,6 @@
       La sesión del usuario se restablecerá después del reinicio.</translation>
 <translation id="9160028464653564229">No permite que ningún sitio solicite acceso a puertos en serie a través de la API de Serial</translation>
 <translation id="9167719789236691545">Inhabilitar Drive en la app de Archivos de <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Si habilitas la política, se realizará una búsqueda predeterminada cuando el usuario ingrese texto que no sea una URL en la barra de direcciones. Para especificar el proveedor de búsqueda predeterminado, establece el resto de las políticas para la búsqueda predeterminada. Si dejas vacías esas políticas, el usuario podrá elegir el proveedor predeterminado. Si inhabilitas la política, no se realizará ninguna búsqueda cuando el usuario ingrese texto que no sea una URL en la barra de direcciones.
-
-      Si estableces la política, los usuarios no podrán cambiarla en <ph name="PRODUCT_NAME" />. Si no la estableces, se habilitará el proveedor de búsqueda predeterminado, y los usuarios podrán establecer la lista de proveedores de búsqueda.
-
-      Nota: Esta política solo está disponible en instancias de Windows® vinculadas a un dominio de <ph name="MS_AD_NAME" />, Windows 10 Pro o actualización de Chrome Enterprise, además de instancias de macOS administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="9185107612228451403">Configura las políticas relacionadas con la extensión. El usuario no está autorizado a instalar las extensiones de la lista negra a menos que se encuentren en la lista blanca. También puede forzar <ph name="PRODUCT_NAME" /> a instalar automáticamente las extensiones al especificarlas en <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Las extensiones con instalación automática se instalan aunque estén incluidas en la lista negra.</translation>
 <translation id="9187743794267626640">Inhabilitar la activación del almacenamiento externo</translation>
 <translation id="9190456586252617675">Esta política controla el modo de la experiencia de integración del Asistente.
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index e12a7f0..1dbeac8a 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -464,13 +464,6 @@
 
       Si se le asigna el valor "Falso", los usuarios no podrán añadir, quitar ni modificar marcadores. Sin embargo, podrán usar los marcadores existentes.</translation>
 <translation id="1715151459541210849">Habilita la función de accesibilidad de dictado</translation>
-<translation id="1717817358640580294">Si no se define esta política, cuando Limpiador de Chrome detecte software no deseado, podrá enviar metadatos sobre el análisis a Google, según la política definida por SafeBrowsingExtendedReportingEnabled. Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado. El usuario tendrá la opción de compartir los resultados de la limpieza con Google para ayudar a detectar software no deseado en el futuro. Estos resultados contienen metadatos de archivos, extensiones instaladas de forma automática y claves de registro, tal como se describe en la página de información sobre privacidad de Chrome.
-
-      Si se inhabilita esta política, cuando Limpiador de Chrome detecte software no deseado, no enviará metadatos sobre el análisis a Google y anulará cualquier política definida por SafeBrowsingExtendedReportingEnabled. Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado.  Los resultados de la limpieza no se enviarán a Google y el usuario no tendrá la opción de hacerlo.
-
-      Si se habilita esta política, cuando Limpiador de Chrome detecte software no deseado, podrá enviar metadatos sobre el análisis de acuerdo con la política definida por SafeBrowsingExtendedReportingEnabled. Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado.  Los resultados de la limpieza se enviarán a Google y el usuario no tendrá la opción de impedirlo.
-
-      Esta política solo está disponible en instancias de Windows que estén vinculadas a un dominio de <ph name="MS_AD_NAME" /> y en instancias de Windows 10 Pro o Enterprise que se hayan registrado para gestionar dispositivos.</translation>
 <translation id="172374442286684480">Permitir que todos los sitios establezcan datos locales</translation>
 <translation id="1736269219679256369">Permitir que se continúe desde la página de advertencia de SSL</translation>
 <translation id="1745973235372964482">No permitir archivos protegidos con contraseña</translation>
@@ -1398,15 +1391,6 @@
           Si la inhabilitas, se considerará que no la has configurado. Sin embargo, el usuario podrá cambiar esta opción en <ph name="PRODUCT_NAME" />.
 
           Esta política solo está disponible en instancias de Windows que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, en instancias de Windows 10 Pro o Enterprise que se hayan registrado para gestionar dispositivos y en instancias de macOS que se gestionen mediante MDM o estén vinculadas a un dominio a través de MCX.</translation>
-<translation id="2982571648442031489">Configura la lista de dominios en los que confiará la función Navegación Segura. Esto quiere decir que:
-      Navegación Segura no comprobará si los recursos son peligrosos (por ejemplo: suplantación de identidad, software malicioso o software no deseado) cuando sus URL coincidan con estos dominios.
-      El servicio de protección de descargas de Navegación Segura no comprobará las descargas alojadas en estos dominios.
-      El servicio de protección de contraseñas de Navegación Segura no comprobará si se está reutilizando la contraseña cuando la URL de la página coincida con estos dominios.
-
-      Si se habilita esta opción, Navegación Segura confiará en estos dominios.
-      Si no se habilita o no se configura, se aplicará la protección predeterminada de Navegación Segura a todos los recursos.
-
-      Esta política solo está disponible en instancias de Windows que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, en instancias de Windows 10 Pro o Enterprise que se hayan registrado para gestionar dispositivos y en instancias de MacOS que se gestionen mediante MDM o estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="2985927503455169394">Usa el modo predeterminado de la experiencia de incorporación del Asistente</translation>
 <translation id="2987155890997901449">Habilitar ARC</translation>
 <translation id="2987227569419001736">Controlar el uso de la API Bluetooth web</translation>
@@ -1523,11 +1507,6 @@
       Si la política no se establece o se le asigna el valor false, no se habilitarán los conjuntos de cifrado DHE en TLS. Si por el contrario se le asigna el valor true, se habilitarán estos conjuntos de cifrado y se mantendrá la compatibilidad con un servidor obsoleto. Se trata de una medida provisional y el servidor se debería volver a configurar.
 
       Se recomienda migrar los servidores a los conjuntos de cifrado ECDHE. Si no están disponibles, asegúrate de que se habilite un conjunto de cifrado que utilice el intercambio de claves RSA.</translation>
-<translation id="3117706142826400449">Si se inhabilita, la función Limpiador de Chrome no podrá analizar el sistema para detectar software no deseado y realizar limpiezas. La opción para activar manualmente esta función desde chrome://settings/cleanup está inhabilitada.
-
-      Si se habilita o no se le asigna ningún valor, Limpiador de Chrome analizará el sistema periódicamente para detectar software no deseado y, si encuentra alguno, preguntará al usuario si quiere eliminarlo. La opción para activar manualmente esta función desde chrome://settings/cleanup está habilitada.
-
-      Esta política solo está disponible en instancias de Windows que estén vinculadas a un dominio de <ph name="MS_AD_NAME" /> y en instancias de Windows 10 Pro o Enterprise que se hayan registrado para gestionar dispositivos.</translation>
 <translation id="3119125876909100625">Permitir la subida de archivos protegidos con contraseña</translation>
 <translation id="3122082892722698079">Permite controlar el uso de las excepciones de contenido no seguro</translation>
 <translation id="3143265893557969814">Si se establece esta política, todos los tipos de datos especificados se excluirán de la sincronización de Google Sync y de la sincronización del perfil de itinerancia. Esto puede ser útil para reducir el tamaño del perfil de itinerancia o para limitar el tipo de datos que se suben a los servidores de Google Sync.
@@ -2152,13 +2131,6 @@
 <translation id="4061590579642538878">Proporcionar información de informes sobre fallos</translation>
 <translation id="4075675819066819571">Colocar la estantería en la parte izquierda de la pantalla</translation>
 <translation id="4075864623710596000">Los nombres de host que se especifican en esta lista quedarán exentos de la comprobación de la política de HSTS, que podría actualizar las solicitudes de http a https. Esta política solo admite nombres de host de una sola etiqueta. Los nombres de host deben seguir el proceso de canonicalización: cada IDN debe codificarse en su formato de etiqueta A y todas las letras ASCII deben ser minúsculas. Esta política solo se aplica a los nombres de host que se especifican en esta lista. No se aplica a sus subdominios.</translation>
-<translation id="4076584741592854827">Lista de tipos de archivo que deberían abrirse automáticamente al descargarse. No se debe incluir el separador del principio al añadir un tipo de archivo a la lista, así que añade "txt" en lugar de ".txt".
-
-      Los archivos de los tipos que se deben abrir automáticamente seguirán estando sujetos a las comprobaciones de Navegación Segura y no se abrirán si no las superan.
-
-      Si no se establece esta política, solo se abrirán automáticamente al descargarse los tipos de archivo que haya especificado el usuario.
-
-      Esta política solo está disponible en instancias de Windows que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, en instancias de Windows 10 Pro o Enterprise que se hayan registrado para gestionar dispositivos y en instancias de MacOS que se gestionen mediante MDM o estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="408029843066770167">Permitir consultas a un servicio de hora de Google</translation>
 <translation id="408076456549153854">Habilitar inicio de sesión en el navegador</translation>
 <translation id="4082498585300984671">Habilitar la función Clic de llamada</translation>
@@ -4112,19 +4084,6 @@
 
       Si no se asigna ningún valor a esta política, el valor predeterminado para los usuarios administrados por una empresa y para los no administrados es permitirlo.</translation>
 <translation id="6864244339257535116">Permitir la subida y la descarga de archivos protegidos con contraseña</translation>
-<translation id="6870295914868104867">Si se define esta política, se especificará una lista de aplicaciones y extensiones que se instalarán de forma silenciosa, sin intervención del usuario, y que los usuarios no podrán desinstalar ni desactivar. Los permisos se concederán de forma implícita, incluidas las API de extensión enterprise.deviceAttributes y enterprise.platformKeys. Estas dos API no estarán disponibles para las aplicaciones y extensiones que no se instalen de manera forzada.
-
-      Si no se asigna ningún valor a esta política, no se instalará ninguna aplicación ni extensión de forma automática y los usuarios podrán desinstalar cualquier aplicación o extensión en <ph name="PRODUCT_NAME" />.
-
-      Esta política sustituye a la política <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Si una aplicación o extensión que se haya instalado anteriormente de manera forzada se quita de la lista, <ph name="PRODUCT_NAME" /> la desinstalará automáticamente.
-
-      Para las instancias de Windows® que no estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, la instalación forzada se limitará a las aplicaciones y extensiones disponibles en Chrome Web Store.
-
-      Los usuarios podrán modificar el código fuente de las extensiones mediante las herramientas para desarrolladores, lo que puede provocar problemas de funcionamiento en esas extensiones. Si te preocupa, configura la política <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Cada elemento de la lista de la política es una cadena que contiene un ID de extensión y, opcionalmente, una URL de actualización separados por punto y coma (;). El ID de extensión es la cadena de 32 letras que aparece, por ejemplo, en chrome://extensions cuando está habilitado el modo desarrollador. Si se especifica, la URL de actualización debe dirigir a un documento XML de un archivo de manifiesto de actualización (https://developer.chrome.com/extensions/autoupdate). De forma predeterminada, se utiliza la URL de actualización de Chrome Web Store, La URL de actualización definida en esta política solo se usará en la instalación inicial. Las actualizaciones posteriores de la extensión usarán la URL de actualización indicada en el archivo de manifiesto de la extensión.
-
-       Nota: Esta política no se aplica al modo de incógnito. Para obtener más información sobre el alojamiento de extensiones, consulta https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="687046793986382807">Esta política no está disponible a partir de la versión 35 de <ph name="PRODUCT_NAME" />.
 
       La información sobre memoria se notifica a la página, independientemente del valor de la opción, pero los tamaños notificados están restringidos y la frecuencia de actualizaciones está limitada por razones de seguridad. Para obtener información precisa en tiempo real, debes utilizar herramientas como la telemetría.</translation>
@@ -5789,11 +5748,6 @@
       La sesión del usuario se restaurará tras el reinicio.</translation>
 <translation id="9160028464653564229">No permitir a ningún sitio web solicitar acceso a puertos serie a través de la API Serial</translation>
 <translation id="9167719789236691545">Inhabilitar Drive en la aplicación Archivos de <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Si se asigna el valor "Habilitada" a esta política, se realiza una búsqueda predeterminada cuando un usuario introduce en la barra de direcciones texto que no es una URL. Para especificar el proveedor de búsqueda predeterminado, configura el resto de las políticas de búsqueda predeterminadas. Si no configuras esas políticas, el usuario podrá elegir el proveedor predeterminado. Si se le asigna el valor "Inhabilitada", no se realizará ninguna búsqueda cuando el usuario introduzca texto que no es una URL en la barra de direcciones.
-
-      Si se asigna un valor a esta política, los usuarios no podrán cambiarlo en <ph name="PRODUCT_NAME" />. Si no se le asigna ninguno, el proveedor de búsqueda predeterminado estará activado y los usuarios podrán crear la lista de proveedores de búsqueda.
-
-      Nota: Esta política solo se aplica a instancias de Windows® que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, Windows 10 Pro, Licencia de Chrome Enterprise e instancias de macOS que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="9185107612228451403">Permite configurar políticas relacionadas con las extensiones. Los usuarios solo pueden instalar extensiones de la lista negra si estas se han incluido en la lista blanca. Se puede forzar la instalación automática de extensiones en <ph name="PRODUCT_NAME" /> si se especifican en <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Las extensiones de instalación forzada se instalan estén incluidas o no en la lista negra.</translation>
 <translation id="9187743794267626640">Inhabilitar la activación del almacenamiento externo</translation>
 <translation id="9190456586252617675">Esta política controla el modo de la experiencia de incorporación del Asistente.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index a518da2..fc25b84a 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -467,13 +467,6 @@
 
       Si cette règle est définie sur "False", les utilisateurs ne peuvent pas ajouter, supprimer ni modifier des favoris. En revanche, ils peuvent utiliser les favoris déjà disponibles.</translation>
 <translation id="1715151459541210849">Activer la fonctionnalité d'accessibilité de dictée</translation>
-<translation id="1717817358640580294">Si cette règle n'est pas configurée et si l'outil Chrome Cleanup détecte des logiciels indésirables, celui-ci peut envoyer à Google des métadonnées concernant l'analyse, conformément à la configuration de la règle SafeBrowsingExtendedReportingEnabled. Chrome Cleanup demande ensuite à l'utilisateur s'il souhaite supprimer les logiciels indésirables détectés. Ce dernier peut choisir de nous communiquer les résultats du nettoyage afin de nous aider à améliorer la détection de ces logiciels. Ces résultats comprennent des métadonnées de fichiers, des extensions installées automatiquement et des clés de registre, tel que décrit dans le livre blanc sur la confidentialité dans Google Chrome.
-
-      Si cette règle est désactivée et si Chrome Cleanup détecte des logiciels indésirables, aucune métadonnée sur l'analyse n'est envoyée à Google, quelle que soit la configuration de la règle SafeBrowsingExtendedReportingEnabled. Chrome Cleanup demande à l'utilisateur s'il souhaite supprimer les logiciels indésirables détectés.  Les résultats du nettoyage ne sont pas transmis à Google et l'utilisateur n'a pas non plus la possibilité de le faire.
-
-      Si cette règle est activée et si Chrome Cleanup détecte des logiciels indésirables, celui-ci peut envoyer à Google des métadonnées sur l'analyse conformément à la configuration de la règle SafeBrowsingExtendedReportingEnabled. Chrome Cleanup demande à l'utilisateur s'il souhaite supprimer les logiciels indésirables détectés.  Les résultats du nettoyage sont transmis à Google, et l'utilisateur n'a pas la possibilité d'empêcher cette transmission.
-
-      Cette règle n'est disponible que sur les instances Windows qui sont associées à un domaine <ph name="MS_AD_NAME" />, ou sur les instances Windows 10 Pro ou Windows Enterprise qui sont enregistrées pour bénéficier de la gestion des appareils.</translation>
 <translation id="172374442286684480">Autoriser tous les sites à définir des données locales</translation>
 <translation id="1736269219679256369">Autoriser la poursuite de la navigation depuis une page d'avertissement SSL</translation>
 <translation id="1745973235372964482">Ne pas autoriser les fichiers protégés par un mot de passe</translation>
@@ -1401,14 +1394,6 @@
           Si vous désactivez ce paramètre, cela revient à ne pas configurer cette règle. L'utilisateur peut quand même le modifier dans <ph name="PRODUCT_NAME" />.
 
           Cette règle n'est disponible que sur les instances Windows qui sont associées à un domaine <ph name="MS_AD_NAME" />, les instances Windows 10 Pro ou Windows Enterprise qui sont enregistrées pour bénéficier de la gestion des appareils, ou les instances macOS qui sont gérées via MDM ou associées à un domaine via MCX.</translation>
-<translation id="2982571648442031489">Permet d'établir la liste des domaines que la fonctionnalité de navigation sécurisée juge fiables. Autrement dit, cette fonctionnalité ne vérifie pas s'il y a des ressources dangereuses (hameçonnage, logiciels malveillants ou indésirables, par exemple) lorsque le domaine de l'URL concernée figure dans cette liste.
-      Dans le cadre de la navigation sécurisée, le service de protection des téléchargements ne vérifie pas les téléchargements hébergés sur ces domaines.
-      De même, le service de protection par mot de passe ne vérifie pas non plus si un mot de passe est réutilisé lorsque le domaine de l'URL de la page concernée figure dans la liste.
-
-      Si ce paramètre est activé, la fonctionnalité de navigation sécurisée considère ces domaines comme fiables.
-      Si ce paramètre est désactivé ou qu'il n'est pas défini, le service de protection par défaut est appliqué à toutes les ressources dans le cadre de la navigation sécurisée.
-
-      Cette règle n'est disponible que sur les instances Windows qui sont associées à un domaine <ph name="MS_AD_NAME" />, les instances Windows 10 Pro ou Windows Enterprise qui sont enregistrées pour bénéficier de la gestion des appareils, ou les instances macOS qui sont gérées via MDM ou associées à un domaine via MCX.</translation>
 <translation id="2985927503455169394">Utiliser le mode par défaut du processus de prise en main de l'Assistant</translation>
 <translation id="2987155890997901449">Activer ARC</translation>
 <translation id="2987227569419001736">Contrôler l'utilisation de l'API Web Bluetooth</translation>
@@ -1525,11 +1510,6 @@
       Si cette règle n'est pas configurée, ou si elle est définie sur "False", les suites de chiffrement DHE dans TLS ne seront pas activées. Sinon, elle peut être définie sur "True" pour activer ces mêmes suites de chiffrement et assurer la compatibilité avec un serveur obsolète. Il s'agit là d'une solution provisoire, et le serveur devrait être reconfiguré.
 
       Nous recommandons la migration des serveurs vers des suites de chiffrement ECDHE. Si celles-ci ne sont pas disponibles, veillez à ce qu'une suite de chiffrement utilisant l'échange de clés RSA soit activée.</translation>
-<translation id="3117706142826400449">Si cette règle est désactivée, Chrome Cleanup ne peut pas analyser le système pour détecter les éventuels logiciels indésirables et les supprimer. Notez également que le déclenchement manuel de Chrome Cleanup depuis la page chrome://settings/cleanup est désactivé.
-
-      Si cette règle est activée ou si elle n'est pas configurée, Chrome Cleanup analyse régulièrement le système pour détecter les éventuels logiciels indésirables. Si Chrome Cleanup en trouve un, l'utilisateur devra confirmer qu'il souhaite le supprimer. Notez également que le déclenchement manuel de Chrome Cleanup depuis la page chrome://settings est activé.
-
-      Cette règle n'est disponible que sur les instances Windows qui sont associées à un domaine <ph name="MS_AD_NAME" />, ou sur les instances Windows 10 Pro ou Windows Enterprise qui sont enregistrées pour bénéficier de la gestion des appareils.</translation>
 <translation id="3119125876909100625">Autoriser l'importation de fichiers protégés par un mot de passe</translation>
 <translation id="3122082892722698079">Contrôler l'utilisation des exceptions liées au contenu non sécurisé</translation>
 <translation id="3143265893557969814">Si cette règle est configurée, tous les types de données spécifiés ne seront pas synchronisés avec Google Sync ni avec le profil itinérant. Cela peut permettre de réduire la taille du profil itinérant ou de limiter les types de données importés sur les serveurs Google Sync.
@@ -2149,13 +2129,6 @@
 <translation id="4061590579642538878">Transmettre les informations liées aux rapports d'erreur.</translation>
 <translation id="4075675819066819571">Placer l'étagère sur le côté gauche de l'écran</translation>
 <translation id="4075864623710596000">Les noms d'hôte indiqués dans cette liste seront exemptés de la vérification de la règle HSTS susceptible de remplacer les requêtes HTTP par des requêtes HTTPS. Seuls les noms d'hôte sans extension sont autorisés dans cette règle. Les noms d'hôtes doivent être indiqués sous forme canonique : tous les noms de domaine internationalisés (IDN) doivent être convertis dans leur format d'étiquette A, et toutes les lettres ASCII doivent être en minuscules. Cette règle ne s'applique qu'aux noms d'hôte spécifiques indiqués. Elle ne concerne pas leurs sous-domaines.</translation>
-<translation id="4076584741592854827">Permet d'établir la liste des types de fichiers qui doivent s'ouvrir automatiquement une fois téléchargés. Lorsque vous répertoriez un type de fichier, veillez à ne pas inclure le séparateur qui précède l'extension (par exemple, indiquez "txt" et non ".txt").
-
-      Les types de fichiers qui doivent s'ouvrir automatiquement continueront d'être analysés dans le cadre de la navigation sécurisée si les fonctionnalités de contrôle correspondantes sont activées, et ne seront ouverts que si le résultat de l'analyse est concluant.
-
-      Si cette règle n'est pas configurée, seuls les types de fichiers que l'utilisateur aura précédemment spécifiés s'ouvriront automatiquement une fois téléchargés.
-
-      Cette règle n'est disponible que sur les instances Windows qui sont associées à un domaine <ph name="MS_AD_NAME" />, les instances Windows 10 Pro ou Windows Enterprise qui sont enregistrées pour bénéficier de la gestion des appareils, ou les instances macOS qui sont gérées via MDM ou associées à un domaine via MCX.</translation>
 <translation id="408029843066770167">Autoriser l'envoi de requêtes à un service horaire de Google</translation>
 <translation id="408076456549153854">Activer la connexion au navigateur</translation>
 <translation id="4082498585300984671">Activer la fonctionnalité Click to Call</translation>
@@ -4099,19 +4072,6 @@
 
       Si cette règle n'est pas définie, le Partage à proximité est autorisé par défaut pour les utilisateurs gérés par une entreprise et pour les utilisateurs non gérés.</translation>
 <translation id="6864244339257535116">Autoriser l'importation et le téléchargement de fichiers protégés par un mot de passe</translation>
-<translation id="6870295914868104867">Permet d'établir la liste des applications et des extensions qui s'installent de manière autonome, sans aucune intervention de l'utilisateur, et que celui-ci ne peut pas désinstaller ni désactiver. Les autorisations sont accordées implicitement, y compris pour les API d'extension enterprise.deviceAttributes et enterprise.platformKeys (ces deux API ne sont pas disponibles pour les applications et extensions qui ne sont pas installées d'office).
-
-      Si cette règle n'est pas configurée, aucune application ni extension ne s'installe automatiquement, et l'utilisateur peut désinstaller n'importe quelle application ou extension dans <ph name="PRODUCT_NAME" />.
-
-      Cette règle remplace la règle <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Si une application ou une extension installée d'office est supprimée de cette liste, <ph name="PRODUCT_NAME" /> la désinstalle automatiquement.
-
-      Pour les instances Windows® qui ne sont pas associées à un domaine <ph name="MS_AD_NAME" />, l'installation d'office est limitée aux applications et aux extensions sur le Chrome Web Store.
-
-      Le code source de toute extension peut être modifié par les utilisateurs à l'aide des outils pour les développeurs, ce qui peut entraîner des dysfonctionnements. Si cela pose problème, configurez la règle <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Chaque élément de la règle correspond à une chaîne constituée d'un ID d'extension et éventuellement d'une URL de mise à jour séparés par un point-virgule (;). L'ID d'extension est la chaîne de 32 lettres qui se trouve, par exemple, dans chrome://extensions en mode développeur. Si elle est indiquée, l'URL de mise à jour doit renvoyer à un fichier manifeste au format XML (voir https://developer.chrome.com/extensions/autoupdate ). Par défaut, l'URL de mise à jour du Chrome Web Store est utilisée. L'URL de mise à jour spécifiée dans cette règle ne sert que pour l'installation initiale. Toute mise à jour ultérieure de l'extension est effectuée avec l'URL dans le fichier manifeste de l'extension.
-
-       Remarque : cette règle ne s'applique pas en mode navigation privée. Pour en savoir plus sur l'hébergement des extensions, consultez la page https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="687046793986382807">Cette règle a été supprimée de la version 35 de <ph name="PRODUCT_NAME" />.
 
       Les informations relatives à la mémoire sont tout de même consignées sur cette page, quelle que soit l'option retenue, mais les tailles indiquées sont
@@ -5770,11 +5730,6 @@
       La session de l'utilisateur est restaurée après le redémarrage.</translation>
 <translation id="9160028464653564229">Interdire à tous les sites de demander l'accès aux ports série via l'API Serial</translation>
 <translation id="9167719789236691545">Désactiver Drive dans l'application "Fichiers" de <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Si cette règle est activée et que l'utilisateur saisit un texte autre qu'une URL dans la barre d'adresse, une recherche par défaut est alors lancée. Pour spécifier le moteur de recherche par défaut, définissez le reste des règles de recherche par défaut. Si vous ne configurez pas ces règles, l'utilisateur peut choisir le moteur par défaut. Si cette règle est désactivée et que l'utilisateur saisit un texte autre qu'une URL dans la barre d'adresse, aucune recherche n'est lancée.
-
-      Si vous configurez cette règle, les utilisateurs ne peuvent pas la modifier dans <ph name="PRODUCT_NAME" />. Si cette règle n'est pas configurée, le moteur de recherche par défaut est activé, et les utilisateurs peuvent configurer la liste des moteurs de recherche.
-
-      Remarque : Cette règle ne concerne que les instances Windows® qui sont associées à un domaine <ph name="MS_AD_NAME" />, les instances Windows 10 Pro, ou les instances Chrome Enterprise Upgrade et macOS qui sont gérées via MDM ou associées à un domaine via MCX.</translation>
 <translation id="9185107612228451403">Permet de configurer les stratégies relatives aux extensions. L'utilisateur n'est pas autorisé à installer des extensions figurant sur la liste noire, à moins qu'elles aient été ajoutées à la liste blanche. Vous pouvez également forcer <ph name="PRODUCT_NAME" /> à installer automatiquement des extensions en les spécifiant dans <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Cette méthode permet d'installer les extensions inscrites sur la liste noire.</translation>
 <translation id="9187743794267626640">Désactiver le montage de périphériques de stockage externe</translation>
 <translation id="9190456586252617675">Cette règle permet de gérer le mode du processus de prise en main de l'Assistant.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index b0d2e6d..257ffa0 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -454,13 +454,6 @@
 
       Jika kebijakan ditetapkan ke Salah (False), pengguna tidak akan dapat menambahkan, menghapus, atau mengubah bookmark. Mereka tetap dapat menggunakan bookmark yang ada.</translation>
 <translation id="1715151459541210849">Mengaktifkan fitur aksesibilitas dikte</translation>
-<translation id="1717817358640580294">Jika tidak disetel, apabila mendeteksi software yang tidak diinginkan, Pembersih Chrome dapat melaporkan metadata tentang pemindaian ke Google sesuai kebijakan yang disetel oleh SafeBrowsingExtendedReportingEnabled. Selanjutnya, Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak. Pengguna dapat membagikan hasil pembersihan ke Google untuk membantu mendeteksi software yang tidak diinginkan di masa mendatang. Hasil ini memuat metadata file, ekstensi yang diinstal otomatis, dan kunci registry seperti dijelaskan dalam Lembar Informasi Privasi Chrome.
-
-      Jika dinonaktifkan, apabila mendeteksi software yang tidak diinginkan, Pembersih Chrome tidak akan melaporkan metadata tentang pemindaian ke Google, yang berarti menggantikan kebijakan apa pun yang disetel oleh SafeBrowsingExtendedReportingEnabled. Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak.  Hasil pembersihan tidak akan dilaporkan ke Google, dan pengguna tidak akan memiliki opsi untuk melaporkannya.
-
-      Jika diaktifkan, apabila mendeteksi software yang tidak diinginkan, Pembersih Chrome dapat melaporkan metadata tentang pemindaian ke Google sesuai kebijakan yang disetel oleh SafeBrowsingExtendedReportingEnabled. Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak.  Hasil pembersihan akan dilaporkan ke Google dan pengguna tidak akan memiliki opsi untuk mencegahnya.
-
-      Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat.</translation>
 <translation id="172374442286684480">Izinkan semua situs menyetel data lokal</translation>
 <translation id="1736269219679256369">Memungkinkan melanjutkan dari halaman peringatan SSL</translation>
 <translation id="1745973235372964482">Jangan izinkan file yang dilindungi sandi</translation>
@@ -1032,7 +1025,7 @@
 
           Jika kebijakan ini tidak ditetapkan, sorotan tanda sisipan mula-mula akan dinonaktifkan, tetapi dapat diaktifkan oleh pengguna kapan saja.</translation>
 <translation id="2509919237512982967">Menggunakan Kontrol Formulir Lama hingga M84.</translation>
-<translation id="2512630007068794030">Jika diaktifkan, fitur <ph name="PRODUCT_NAME" /> akan membuat halaman web yang dipertahankan di status saat ini (pohon dokumen, skrip, dll.) menjadi back-forward cache saat keluar dari halaman.
+<translation id="2512630007068794030">Jika diaktifkan, fitur <ph name="PRODUCT_NAME" /> akan membuat halaman web yang dipertahankan di status saat ini (hierarki dokumen, skrip, dll.) menjadi back-forward cache saat keluar dari halaman.
           Jika membuka halaman kembali, halaman akan dipulihkan dari back-forward cache, yang menampilkannya dalam status sebelum di-cache.
 
           Fitur ini dapat membagi situs yang tidak perlu
@@ -1378,21 +1371,12 @@
           Menonaktifkan setelan ini sama dengan tidak mengonfigurasinya. Pengguna masih dapat mengubahnya di <ph name="PRODUCT_NAME" />.
 
           Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat, dan instance macOS yang dikelola melalui MDM atau dihubungkan ke domain melalui MCX.</translation>
-<translation id="2982571648442031489">Mengonfigurasi daftar domain yang akan dipercaya Safe Browsing. Artinya:
-      Safe Browsing tidak akan memeriksa keberadaan resource berbahaya (misalnya phishing, malware, atau software yang tidak diinginkan) jika URL cocok dengan domain ini.
-      Layanan perlindungan download Safe Browsing tidak akan memeriksa download yang dihosting di domain ini.
-      Layanan perlindungan sandi Safe Browsing tidak akan memeriksa penggunaan ulang sandi jika URL halaman cocok dengan domain ini.
-
-      Jika setelan ini diaktifkan, Safe Browsing akan memercayai domain ini.
-      Jika setelan ini dinonaktifkan atau tidak disetel, perlindungan Safe Browsing default akan diterapkan untuk semua resource.
-
-      Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat, dan instance macOS yang dikelola melalui MDM atau dihubungkan ke domain melalui MCX.</translation>
 <translation id="2985927503455169394">Gunakan mode default pengalaman aktivasi Asisten</translation>
 <translation id="2987155890997901449">Aktifkan ARC</translation>
 <translation id="2987227569419001736">Mengontrol penggunaan API Bluetooth Web</translation>
 <translation id="2988481278211008583">Jika kebijakan disetel ke Aktif, nilai kunci manifes <ph name="REQUIRED_PLATFORM_VERSION" /> pada aplikasi kios yang diluncurkan otomatis tanpa penundaan akan digunakan sebagai prefiks versi target update otomatis.
 
-      Jika kebijakan disetel ke Nonaktif atau tidak disetel, kunci manifes <ph name="REQUIRED_PLATFORM_VERSION" /> akan diabaikan dan update otomatis akan berjalan normal.
+      Jika kebijakan disetel ke Nonaktif atau tidak disetel, kunci manifes <ph name="REQUIRED_PLATFORM_VERSION" /> akan diabaikan dan update otomatis akan berjalan seperti biasa.
 
       Peringatan: Jangan mendelegasikan kontrol versi <ph name="PRODUCT_OS_NAME" /> ke aplikasi kios, karena dapat mencegah perangkat menerima update software dan perbaikan keamanan penting. Mendelegasikan kontrol versi <ph name="PRODUCT_OS_NAME" /> dapat membahayakan pengguna.</translation>
 <translation id="299519952839316970">Harap diperhatikan, kebijakan ini sudah tidak digunakan lagi dan akan dihapus di <ph name="PRODUCT_OS_NAME" /> versi 88. Sesi publik tidak lagi didukung. Sebagai gantinya, gunakan <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" /> untuk mengonfigurasi sesi tamu terkelola.
@@ -1481,7 +1465,7 @@
       Jika kebijakan ini tidak ditetapkan, atau nilai setelah substitusi bukan merupakan hostname yang valid, tidak ada hostname yang akan disetel dalam permintaan DHCP. </translation>
 <translation id="3051089299923124309">Jika kebijakan disetel ke Aktif, subkonten pihak ketiga di halaman akan diizinkan untuk membuka pop-up HTTP Basic Auth.
 
-       Jika kebijakan disetel ke Nonaktif atau tidak disetel, subkonten pihak ketiga tidak akan dapat membuka pop-up HTTP Basic Auth.
+       Jika kebijakan disetel ke Nonaktif atau tidak disetel, subkonten pihak ketiga tidak dapat membuka pop-up HTTP Basic Auth.
 
       Kebijakan ini biasanya Dinonaktifkan sebagai pertahanan terhadap phishing.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
@@ -1503,11 +1487,6 @@
       Jika kebijakan tidak disetel, atau disetel ke false, maka cipher suite DHE di TLS tidak akan diaktifkan. Kebijakan dapat disetel ke true untuk mengaktifkan cipher suite DHE dan mempertahankan kompatibilitas dengan server yang telah usang. Tindakan ini hanya sementara dan server harus dikonfigurasi ulang.
 
       Server sebaiknya dimigrasikan ke cipher suite ECDHE. Jika tidak tersedia, pastikan cipher suite yang menggunakan pertukaran kunci RSA diaktifkan.</translation>
-<translation id="3117706142826400449">Jika dinonaktifkan, Pembersih Chrome tidak akan memindai sistem untuk menemukan software yang tidak diinginkan dan menjalankan pembersihan. Pembersih Chrome tidak dapat dipicu secara manual dari chrome://settings/cleanup.
-
-      Jika diaktifkan atau tidak disetel, Pembersih Chrome akan memindai sistem secara berkala untuk menemukan software yang tidak diinginkan, dan jika ditemukan, akan menanyakan kepada pengguna apakah ia ingin menghapusnya atau tidak. Pembersih Chrome dapat dipicu secara manual dari chrome://settings.
-
-      Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat.</translation>
 <translation id="3119125876909100625">Izinkan upload file yang dilindungi sandi</translation>
 <translation id="3122082892722698079">Mengontrol penggunaan pengecualian konten tidak aman</translation>
 <translation id="3143265893557969814">Jika kebijakan ini disetel, semua jenis data yang ditentukan akan dikecualikan dari sinkronisasi, baik untuk Google Sync maupun sinkronisasi profil roaming. Hal ini berguna untuk mengurangi ukuran profil roaming atau membatasi jenis data yang diupload ke Server Google Sync.
@@ -2133,13 +2112,6 @@
 <translation id="4061590579642538878">Laporkan informasi tentang laporan kerusakan.</translation>
 <translation id="4075675819066819571">Posisikan rak di sisi kiri layar</translation>
 <translation id="4075864623710596000">Hostname yang ditentukan dalam daftar ini akan dikecualikan dari pemeriksaan kebijakan HSTS yang berpotensi mengupgrade permintaan dari http ke https. Hanya hostname berlabel tunggal yang diizinkan dalam kebijakan ini. Hostname harus dikanonikalisasi: semua IDN harus dikonversi ke format berlabel A, dan semua huruf ASCII harus berupa huruf kecil. Kebijakan ini hanya berlaku untuk hostname tertentu yang sudah ditentukan; tidak berlaku untuk subdomain dari nama yang ditentukan.</translation>
-<translation id="4076584741592854827">Daftar jenis file yang harus dibuka secara otomatis di hasil download. Pemisah di awal tidak boleh disertakan saat mencantumkan jenis file, jadi cantumkan "txt", bukan ".txt".
-
-      File dengan jenis yang harus dibuka secara otomatis masih akan tunduk pada pemeriksaan Safe Browsing yang diaktifkan dan tidak akan dibuka jika gagal dalam pemeriksaan tersebut.
-
-      Jika kebijakan ini tidak disetel, hanya jenis file yang telah ditentukan pengguna yang akan dibuka secara otomatis saat didownload.
-
-      Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat, dan instance macOS yang dikelola melalui MDM atau dihubungkan ke domain melalui MCX.</translation>
 <translation id="408029843066770167">Izinkan kueri ke layanan waktu Google</translation>
 <translation id="408076456549153854">Aktifkan login browser</translation>
 <translation id="4082498585300984671">Mengaktifkan Fitur Click to Call</translation>
@@ -2520,10 +2492,10 @@
 <translation id="4668497019777708116">Menentukan daftar aplikasi yang dapat diaktifkan sebagai aplikasi pencatat di layar kunci <ph name="PRODUCT_OS_NAME" />.
 
       Jika aplikasi pencatat pilihan diaktifkan di layar kunci, layar kunci akan memuat elemen UI untuk meluncurkan aplikasi pencatat pilihan.
-      Saat diluncurkan, aplikasi akan dapat membuat jendela aplikasi di bagian atas layar kunci, dan membuat item data (catatan) di konteks layar kunci. Saat sesi dibuka, aplikasi akan dapat mengimpor catatan yang dibuat ke sesi pengguna utama. Saat ini, hanya aplikasi pencatat Chrome yang didukung di layar kunci.
+      Saat diluncurkan, aplikasi dapat membuat jendela aplikasi di bagian atas layar kunci, dan membuat item data (catatan) dalam konteks layar kunci. Saat sesi dibuka, aplikasi dapat mengimpor catatan yang dibuat ke sesi pengguna utama. Saat ini, hanya aplikasi pencatat Chrome yang didukung di layar kunci.
 
       Jika kebijakan disetel, pengguna akan diizinkan untuk mengaktifkan aplikasi di layar kunci hanya jika ID ekstensi aplikasi dimuat dalam nilai daftar kebijakan.
-      Oleh karena itu, menyetel kebijakan ini ke daftar kosong akan menonaktifkan pencatatan di layar kunci sepenuhnya.
+      Oleh karena itu, menyetel kebijakan ini ke daftar kosong akan sepenuhnya menonaktifkan pencatatan di layar kunci.
       Perlu diperhatikan bahwa kebijakan berisi ID aplikasi tidak selalu berarti bahwa pengguna dapat mengaktifkan aplikasi sebagai pencatat di layar kunci. Misalnya, di Chrome 61, kumpulan aplikasi yang tersedia juga dibatasi oleh platform.
 
       Jika kebijakan tidak disetel, tidak akan ada batasan pada kumpulan aplikasi yang dapat diaktifkan pengguna di layar kunci sebagaimana diberlakukan oleh kebijakan.
@@ -3876,7 +3848,7 @@
 <translation id="6573305661369899995">Setel sumber eksternal batasan URL</translation>
 <translation id="6575944031719151455">Menyetel kebijakan akan menentukan daftar akun lokal perangkat yang ditampilkan di layar login. ID akan menunjukkan akun lokal perangkat yang berbeda.
 
-      Jika kebijakan ini tidak disetel atau disetel ke daftar kosong, berarti tidak ada akun lokal perangkat.</translation>
+      Jika kebijakan ini tidak disetel atau disetel ke daftar kosong, berarti tidak ada akun lokal perangkat yang ditampilkan.</translation>
 <translation id="6583851521569686409">Mengonfigurasi daftar printer.
 
       Kebijakan ini memungkinkan administrator memberikan konfigurasi printer
@@ -4042,7 +4014,7 @@
 <translation id="681446116407619279">Skema autentikasi yang didukung</translation>
 <translation id="6815483833848348029">Jika kebijakan disetel ke Aktif atau tidak disetel dan akun lokal perangkat disetel untuk login otomatis tanpa penundaan, <ph name="PRODUCT_OS_NAME" /> akan menampilkan perintah konfigurasi jaringan saat perangkat offline.
 
-      Jika kebijakan disetel ke Nonaktif, pesan error yang akan ditampilkan.</translation>
+      Jika kebijakan disetel ke Nonaktif, pesan error akan ditampilkan.</translation>
 <translation id="6821268164692776674">Tujuan <ph name="CLOUD_PRINT_NAME" /> dan 'Simpan ke Google Drive'</translation>
 <translation id="6833064854262015312">Jika kebijakan ditetapkan ke Benar (True), Mode kontras tinggi akan diaktifkan di layar login. Jika kebijakan ditetapkan ke Salah (False), Mode kontras tinggi akan dinonaktifkan di layar login.
 
@@ -4082,19 +4054,6 @@
 
       Jika kebijakan ini tidak disetel, secara default pengguna yang dikelola perusahaan dan pengguna yang tidak dikelola akan diizinkan.</translation>
 <translation id="6864244339257535116">Izinkan upload dan download file yang dilindungi sandi</translation>
-<translation id="6870295914868104867">Menyetel kebijakan akan menentukan daftar aplikasi dan ekstensi yang diinstal otomatis, tanpa interaksi pengguna, dan yang tidak dapat di-uninstal atau dinonaktifkan pengguna. Izin akan diberikan secara implisit, termasuk untuk API ekstensi enterprise.deviceAttributes dan enterprise.platformKeys. (Dua API ini tidak tersedia untuk aplikasi dan ekstensi yang tidak diinstal otomatis.)
-
-      Jika kebijakan tidak disetel, tidak ada aplikasi atau ekstensi yang diinstal otomatis, dan pengguna dapat meng-uninstal aplikasi atau ekstensi apa pun di <ph name="PRODUCT_NAME" />.
-
-      Kebijakan ini akan menggantikan kebijakan <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Jika aplikasi atau ekstensi yang sebelumnya diinstal otomatis dihapus dari daftar ini, <ph name="PRODUCT_NAME" /> akan meng-uninstal-nya secara otomatis.
-
-      Untuk instances Windows® yang tidak bergabung dalam domain <ph name="MS_AD_NAME" />, penginstalan otomatis dibatasi untuk aplikasi dan ekstensi di Chrome Web Store.
-
-      Kode sumber ekstensi apa pun dapat diubah oleh pengguna melalui alat developer, yang berpotensi menyebabkan ekstensi tersebut tidak berfungsi lagi. Jika hal ini menjadi masalah, setel kebijakan <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Setiap item daftar kebijakan merupakan string yang berisi ID ekstensi dan, terkadang, URL "update" yang dipisahkan titik koma (;). ID ekstensi adalah string 32 huruf yang ditemukan, misalnya, di chrome://extensions saat dalam mode Developer. Jika ditentukan, URL "update" akan mengarah ke dokumen XML Manifes Update (https://developer.chrome.com/extensions/autoupdate). Secara default, URL update Chrome Web Store akan digunakan. URL "update" yang disetel dalam kebijakan ini hanya digunakan untuk penginstalan awal; update ekstensi berikutnya akan menggunakan URL update dalam manifes ekstensi.
-
-       Catatan: Kebijakan ini tidak berlaku untuk mode Samaran. Baca tentang ekstensi hosting (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="687046793986382807">Kebijakan ini telah dihentikan pada <ph name="PRODUCT_NAME" /> versi 35.
 
       Bagaimanapun juga info memori dilaporkan ke halaman, terlepas dari nilai opsinya, namun ukuran yang dilaporkan
@@ -5728,11 +5687,6 @@
       Sesi pengguna dipulihkan setelah peluncuran ulang/mulai ulang.</translation>
 <translation id="9160028464653564229">Jangan izinkan situs apa pun meminta akses ke port serial lewat Serial API</translation>
 <translation id="9167719789236691545">Nonaktifkan Drive di aplikasi File <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Jika kebijakan disetel ke Aktif, penelusuran default akan dilakukan saat pengguna memasukkan teks non-URL ke kolom URL. Untuk menentukan penyedia penelusuran default, setel kebijakan penelusuran default lainnya. Jika kebijakan tersebut dibiarkan kosong, pengguna dapat memilih penyedia default. Jika kebijakan disetel ke Nonaktif, penelusuran tidak akan dilakukan saat pengguna memasukkan teks non-URL di kolom URL.
-
-      Jika kebijakan disetel, pengguna tidak dapat mengubahnya di <ph name="PRODUCT_NAME" />. Jika tidak disetel, penyedia penelusuran default akan diaktifkan, dan pengguna dapat menyetel daftar penyedia penelusuran.
-
-      Catatan: Kebijakan ini hanya tersedia pada instance Windows® yang dihubungkan ke domain <ph name="MS_AD_NAME" />, Windows 10 Pro, atau Chrome Enterprise Upgrade dan instance macOS yang dikelola melalui MDM atau dihubungkan ke domain melalui MCX.</translation>
 <translation id="9185107612228451403">Mengonfigurasi kebijakan terkait ekstensi. Pengguna tidak diizinkan menginstal ekstensi yang tercantum dalam daftar tidak diizinkan kecuali jika ekstensi tersebut dipindahkan ke daftar diizinkan. Anda juga dapat memaksa <ph name="PRODUCT_NAME" /> agar otomatis menginstal ekstensi dengan menentukannya di <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Ekstensi instal otomatis akan diinstal meskipun ekstensi tersebut tercantum dalam daftar tidak diizinkan.</translation>
 <translation id="9187743794267626640">Menonaktifkan pemasangan penyimpanan eksternal</translation>
 <translation id="9190456586252617675">Kebijakan ini mengontrol mode pengalaman aktivasi Asisten.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 22edc175..7b339b1 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -134,7 +134,7 @@
 <translation id="11903325225202653">Se il criterio è impostato su True, la modalità ad alto contrasto rimane attivata. Se il criterio è impostato su False, la modalità ad alto contrasto rimane disattivata.
 
       Se imposti il criterio, gli utenti non possono modificarlo. Se il criterio non è impostato, la modalità ad alto contrasto è disattivata, ma gli utenti possono attivarla in qualsiasi momento.</translation>
-<translation id="1192875037379495940">Se il criterio viene configurato, viene eseguito automaticamente l'accesso alla sessione specificata se non sono più presenti interazioni dell'utente nella schermata di accesso entro un periodo di tempo specificato nel criterio <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_DELAY_POLICY_NAME" />. L'account locale del dispositivo deve essere già configurato (vedi <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" />).
+<translation id="1192875037379495940">Se il criterio viene configurato, viene eseguito automaticamente l'accesso alla sessione specificata se non ci sono interazioni dell'utente nella schermata di accesso entro il periodo di tempo specificato nel criterio <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_DELAY_POLICY_NAME" />. L'account locale del dispositivo deve essere già configurato (vedi <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" />).
 
       Se non viene configurato, non è possibile effettuare l'accesso automatico.</translation>
 <translation id="1197437816436565375">Non puoi forzare le app Android a utilizzare un proxy. Un sottoinsieme di impostazioni relative al proxy viene messo a disposizione delle app Android, che possono decidere volontariamente se rispettarlo o meno. Consulta la norma <ph name="PROXY_MODE_POLICY_NAME" /> per ulteriori dettagli.</translation>
@@ -292,7 +292,7 @@
 
       Se il criterio non viene configurato, <ph name="PRODUCT_NAME" /> prova a rilevare se un server è presente sulla Intranet. Solo allora risponderà alle richieste IWA. Se viene rilevato un server su Internet, <ph name="PRODUCT_NAME" /> ignora le richieste IWA provenienti da tale server.
 
-      Nota: separa i nomi dei server utilizzando le virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.</translation>
+      Nota: se ci sono più server, separane i nomi utilizzando virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.</translation>
 <translation id="1488406778491620405">La funzione di accessibilità <ph name="PRODUCT_NAME" /> consente agli utenti di screen reader con disabilità visiva di recuperare le descrizioni delle immagini senza etichetta sul Web. Gli utenti che decidono di attivarla avranno la possibilità di usare un servizio Google anonimo per avere descrizioni automatiche delle immagini senza etichetta che trovano sul Web.
 
           Se questa funzione viene attivata, i contenuti delle immagini vengono inviati ai server di Google per generare una descrizione. Non vengono inviati cookie o altri dati utente e Google non salva né registra i contenuti delle immagini.
@@ -437,13 +437,6 @@
 
       Se il criterio è impostato su False, gli utenti non possono aggiungere, rimuovere o modificare i preferiti, ma possono comunque utilizzare quelli esistenti.</translation>
 <translation id="1715151459541210849">Attiva la funzione di accessibilità di dettatura</translation>
-<translation id="1717817358640580294">Se questa norma non viene impostata, nel caso in cui Chrome Software Cleaner dovesse rilevare software indesiderato, a Google potrebbero essere segnalati metadati relativi alla scansione in base alla norma stabilita da SafeBrowsingExtendedReportingEnabled. Chrome Software Cleaner chiederà poi all'utente se vuole ripulire il software indesiderato. L'utente può scegliere se condividere i risultati della pulizia con Google per facilitare l'identificazione di software indesiderato in futuro. Questi risultati contengono metadati di file, estensioni installate automaticamente e chiavi del registro di sistema, come spiegato nel Whitepaper sulla privacy di Chrome.
-
-      Se la norma viene disattivata, nel caso in cui Chrome Software Cleaner dovesse rilevare software indesiderato, a Google non verranno segnalati metadati relativi alla scansione, ignorando qualsiasi norma stabilita da SafeBrowsingExtendedReportingEnabled. Chrome Software Cleaner chiederà all'utente se vuole ripulire il software indesiderato.  I risultati della pulizia non verranno segnalati a Google e l'utente non avrà la possibilità di segnalarli.
-
-      Se questa norma viene attivata, nel caso in cui Chrome Software Cleaner dovesse rilevare software indesiderato, a Google potrebbero essere segnalati metadati relativi alla scansione in base alla norma stabilita da SafeBrowsingExtendedReportingEnabled. Chrome Software Cleaner chiederà all'utente se vuole ripulire il software indesiderato.  I risultati della pulizia verranno segnalati a Google e l'utente non avrà la possibilità di impedire la segnalazione.
-
-      Questa norma è disponibile esclusivamente per le istanze di Windows che fanno parte di un dominio <ph name="MS_AD_NAME" /> così come per le istanze di Windows 10 Pro o Enterprise registrate per la gestione dei dispositivi.</translation>
 <translation id="172374442286684480">Consenti a tutti i siti di impostare i dati locali</translation>
 <translation id="1736269219679256369">Consenti di proseguire dalla pagina di avviso SSL</translation>
 <translation id="1745973235372964482">Non consentire i file protetti da password</translation>
@@ -551,7 +544,7 @@
           Questa funzione è attualmente disattivata lato server.</translation>
 <translation id="1919802376548418720">Utilizza il criterio KDC per delegare credenziali.</translation>
 <translation id="1920046221095339924">Consenti la sessione gestita sul dispositivo</translation>
-<translation id="1920772397574801429">La configurazione del criterio consente di specificare il tipo di account forniti dall'app di autenticazione Android che supporta l'autenticazione <ph name="HTTP_NEGOTIATE" />, ad esempio Kerberos. Queste informazioni dovrebbero essere messe a disposizione dal fornitore dell'app di autenticazione. Per i dettagli, consulta la pagina I progetti di Chromium ( https://goo.gl/hajyfN )
+<translation id="1920772397574801429">La configurazione del criterio consente di specificare il tipo di account, tra quelli forniti dall'app di autenticazione Android, che supporta l'autenticazione <ph name="HTTP_NEGOTIATE" />, ad esempio Kerberos. Queste informazioni dovrebbero essere messe a disposizione dal fornitore dell'app di autenticazione. Per i dettagli, consulta la pagina I progetti di Chromium ( https://goo.gl/hajyfN )
 
       Se il criterio non viene configurato, l'autenticazione <ph name="HTTP_NEGOTIATE" /> su Android viene disattivata.</translation>
 <translation id="1930127294345368978">Numero massimo consentito di fogli da utilizzare per un singolo processo di stampa</translation>
@@ -1208,11 +1201,11 @@
 <translation id="2796714419743648316">Lista consentita limiti di utilizzo per app</translation>
 <translation id="2796896367838042659">Questo criterio consente di specificare le applicazioni e gli URL da autorizzare per i limiti di utilizzo per app.
         La lista consentita configurata viene applicata alle app installate su <ph name="PRODUCT_OS_NAME" /> per l'utente in questione con limiti di utilizzo per app.
-        La lista consentita configurata può essere applicata soltanto per gli account utente dei bambini e diventa effettiva quando viene impostato il criterio <ph name="PER_APP_TIME_LIMITS_POLICY_NAME" />.
-        La lista consentita configurata viene applicata alle applicazioni e agli URL affinché non vengano bloccati da limiti di utilizzo per app.
+        La lista consentita configurata può essere applicata soltanto agli account per bambini e diventa effettiva quando viene impostato il criterio <ph name="PER_APP_TIME_LIMITS_POLICY_NAME" />.
+        La lista consentita configurata viene applicata alle applicazioni e agli URL affinché non vengano bloccati secondo i limiti di utilizzo per app.
         L'accesso agli URL autorizzati non viene considerato per il limite di utilizzo di Chrome.
         Aggiungi espressioni regolari degli URL a |url_list| per autorizzare gli URL corrispondenti alle espressioni regolari nell'elenco.
-        Aggiungi all'elenco |app_list| un'applicazione con i relativi valori |app_id| e |app_type| per autorizzare l'applicazione.
+        Aggiungi all'elenco |app_list| un'applicazione con i relativi valori |app_id| e |app_type| per autorizzarla.
 
         Questo criterio è deprecato. Usa il criterio <ph name="PER_APP_TIME_LIMITS_ALLOWLIST" />.
         </translation>
@@ -1356,15 +1349,6 @@
           Disattivare questa impostazione equivale a non configurarla. Gli utenti potranno comunque modificarla su <ph name="PRODUCT_NAME" />.
 
           Questo criterio è disponibile esclusivamente per le istanze di Windows che fanno parte di un dominio <ph name="MS_AD_NAME" /> così come per le istanze di Windows 10 Pro o Enterprise registrate per la gestione dei dispositivi. Inoltre è disponibile per le istanze di macOS gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation>
-<translation id="2982571648442031489">Consente di configurare l'elenco dei domini che Navigazione sicura ritiene attendibili. In questo modo:
-      Navigazione sicura non controllerà la presenza di risorse pericolose (ad esempio phishing, malware o software indesiderato) se i rispettivi URL corrispondono a questi domini.
-      Il servizio di protezione dei download di Navigazione sicura non controllerà i download ospitati su questi domini.
-      Il servizio di protezione tramite password di Navigazione sicura non controllerà il riutilizzo della password se l'URL della pagina corrisponde a questi domini.
-
-      Se questa impostazione è attivata, Navigazione sicura considererà questi domini attendibili.
-      Se questa impostazione è disattivata o non impostata, a tutte le risorse verrà applicata la protezione predefinita di Navigazione sicura.
-
-      Questo criterio è disponibile esclusivamente per le istanze di Windows che fanno parte di un dominio <ph name="MS_AD_NAME" /> così come per le istanze di Windows 10 Pro o Enterprise registrate per la gestione dei dispositivi. Inoltre è disponibile per le istanze di macOS gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation>
 <translation id="2985927503455169394">Usa la modalità predefinita dell'esperienza di onboarding dell'assistente</translation>
 <translation id="2987155890997901449">Attiva ARC</translation>
 <translation id="2987227569419001736">Controlla l'utilizzo dell'API Web Bluetooth</translation>
@@ -1481,11 +1465,6 @@
       Se la norma non viene impostata o se viene impostata su false, i pacchetti di crittografia DHE in TLS non saranno attivati. In alternativa, la norma può essere impostata su true per attivare i pacchetti di crittografia DHE e per mantenere la compatibilità con un server obsoleto. Si tratta di una soluzione temporanea ed è necessario configurare nuovamente il server.
 
       Si consiglia di effettuare la migrazione dei server ai pacchetti di crittografia ECDHE. Se non sono disponibili, assicurati che siano attivati i pacchetti di crittografia con l'utilizzo dello scambio delle chiavi RSA.</translation>
-<translation id="3117706142826400449">Se questa norma viene disattivata, Chrome Software Cleaner non potrà eseguire la scansione del sistema per individuare eventuale software indesiderato e ripulire il sistema. L'attivazione manuale di Chrome Software Cleaner da chrome://settings/cleanup viene disattivata.
-
-      Se la norma viene attivata o non viene impostata, Chrome Software Cleaner eseguirà periodicamente la scansione del sistema per individuare eventuale software indesiderato e, qualora fosse presente, chiederà all'utente se vuole rimuoverlo. L'attivazione manuale di Chrome Software Cleaner da chrome://settings viene attivata.
-
-      Questa norma è disponibile esclusivamente per le istanze di Windows che fanno parte di un dominio <ph name="MS_AD_NAME" /> così come per le istanze di Windows 10 Pro o Enterprise registrate per la gestione dei dispositivi.</translation>
 <translation id="3119125876909100625">Consenti caricamenti di file protetti da password</translation>
 <translation id="3122082892722698079">Controlla l'utilizzo delle eccezioni per i contenuti non sicuri</translation>
 <translation id="3143265893557969814">Se questo criterio viene impostato, tutti i tipi di dati specificati verranno esclusi dalla sincronizzazione sia per Google Sync sia per la sincronizzazione del profilo di roaming. Questa operazione può essere utile per ridurre le dimensioni del profilo di roaming o per limitare il tipo di dati caricati sui server di Google Sync.
@@ -1633,7 +1612,7 @@
 
       Se il criterio non viene configurato, il timeout è 0 millisecondi.
 
-      Se il criterio <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" /> viene configurato, questo criterio non ha effetto.</translation>
+      Se il criterio <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" /> non viene configurato, questo criterio non ha alcun effetto.</translation>
 <translation id="3412937883532015092">Se per il criterio viene impostato un numero, <ph name="PRODUCT_NAME" /> mostra un messaggio relativo al numero di millisecondi impostato, quindi apre un browser alternativo.
 
       Se il criterio non viene impostato o viene impostato su 0 e si passa a un URL definito, l'URL viene aperto subito in un browser alternativo.</translation>
@@ -1791,9 +1770,9 @@
 
       Ogni voce della norma è un oggetto con due componenti: "share_url" e "mode". "share_url" deve essere l'URL della condivisione e "mode" deve essere "drop_down" o "pre_mount". La modalità "drop_down" indica che il valore "share_url" verrà aggiunto al menu a discesa per il rilevamento delle condivisioni. La modalità "pre_mount" indica che il valore "share_url" verrà montato.</translation>
 <translation id="3584194414857209694">Abilita i criteri sperimentali</translation>
-<translation id="3584722841530002134">La configurazione del criterio consente di assegnare i server a cui <ph name="PRODUCT_NAME" /> potrebbe delegare le credenziali utente. Separa i nomi dei server utilizzando le virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.
+<translation id="3584722841530002134">La configurazione del criterio consente di assegnare i server a cui <ph name="PRODUCT_NAME" /> può delegare le credenziali utente. Se ci sono più server, separane i nomi utilizzando virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.
 
-      Se il criterio non viene configurato, <ph name="PRODUCT_NAME" /> non delega le credenziali utente, anche se viene rilevato un server come Intranet.</translation>
+      Se il criterio non viene configurato, <ph name="PRODUCT_NAME" /> non delega le credenziali utente, anche se un server viene rilevato come Intranet.</translation>
 <translation id="3585177699591644295">Consente di attivare la funzione di accessibilità Seleziona per ascoltare.
 
           Se questo criterio viene impostato su true, la funzione Seleziona per ascoltare sarà sempre attiva.
@@ -2107,13 +2086,6 @@
 <translation id="4061590579642538878">Segnala informazioni relative ai rapporti sugli arresti anomali.</translation>
 <translation id="4075675819066819571">Posiziona la shelf sul lato sinistro dello schermo</translation>
 <translation id="4075864623710596000">I nomi host specificati in questo elenco saranno esenti dalla verifica dei criteri HSTS che potrebbero eseguire l'upgrade delle richieste da http a https. Solo i nomi host con etichetta singola sono consentiti in questo criterio. I nomi host devono essere canonicalizzati: ogni IDN deve essere convertito nel relativo formato A-label e tutte le lettere ASCII devono essere minuscole. Questo criterio si applica soltanto ai nomi host specificati e non ai relativi sottodomini.</translation>
-<translation id="4076584741592854827">Elenco dei tipi di file che dovrebbero essere aperti automaticamente al termine del download. Il separatore iniziale non deve essere incluso nell'elenco dei tipi di file, quindi usa "txt" anziché ".txt".
-
-      I tipi di file che dovrebbero essere aperti automaticamente saranno comunque soggetti ai controlli attivi di Navigazione sicura e non verranno aperti se non superano tali controlli.
-
-      Se questo criterio non viene configurato, al termine del download verranno aperti automaticamente soltanto i tipi di file per cui l'utente ha già specificato tale tipo di apertura.
-
-      Questo criterio è disponibile esclusivamente per le istanze di Windows che fanno parte di un dominio <ph name="MS_AD_NAME" /> così come per le istanze di Windows 10 Pro o Enterprise registrate per la gestione dei dispositivi. Inoltre è disponibile per le istanze di macOS gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation>
 <translation id="408029843066770167">Consenti query a un servizio orario di Google</translation>
 <translation id="408076456549153854">Attiva accesso al browser</translation>
 <translation id="4082498585300984671">Attiva la funzionalità Click-to-call</translation>
@@ -2372,8 +2344,8 @@
 Se il valore di questa norma è 0, verranno utilizzate le dimensioni della cache predefinite, che l'utente non potrà modificare.
 
 Se questa norma non viene impostata, verranno utilizzate le dimensioni predefinite, che l'utente potrà sostituire con il flag --media-cache-size.</translation>
-<translation id="4508084713148633492">Consente di attivare o di disattivare una notifica quando lo spazio sul disco è in esaurimento. La scelta è valida per tutti gli utenti sul dispositivo.
-      Se su un dispositivo gestito è presente esattamente un account utente, la notifica viene sempre mostrata, indipendentemente dal valore di questo criterio.
+<translation id="4508084713148633492">Consente di attivare o di disattivare una notifica quando lo spazio sul disco è in esaurimento. La scelta si applica a tutti gli utenti sul dispositivo.
+      Se su un dispositivo gestito è presente esattamente un account utente, la notifica viene mostrata sempre, indipendentemente dal valore di questo criterio.
       Se su un dispositivo gestito sono presenti più account, la notifica viene mostrata solo se questo criterio è impostato su Vero.
       La notifica viene sempre visualizzata sui dispositivi non gestiti.</translation>
 <translation id="4510923771103268849">L'utente può avere accesso root ai contenitori Crostini</translation>
@@ -3244,7 +3216,7 @@
 
       Se il criterio non viene configurato, <ph name="PRODUCT_NAME" /> prova a rilevare se un server è presente sulla Intranet. Solo allora risponderà alle richieste IWA. Se viene rilevato un server su Internet, <ph name="PRODUCT_NAME" /> ignora le richieste IWA provenienti da tale server.
 
-      Nota: separa i nomi dei server utilizzando le virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.</translation>
+      Nota: se ci sono più server, separane i nomi utilizzando virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.</translation>
 <translation id="5645779841392247734">Consenti i cookie in questi siti</translation>
 <translation id="5646234199535103501">Criterio di configurazione per il connettore OnBulkDataEntry di Chrome Enterprise</translation>
 <translation id="5656177735561364047">Attiva la funzione Appunti condivisi</translation>
@@ -3383,12 +3355,12 @@
 <translation id="5875873062228321803">Consente di configurare il requisito della versione minima consentita di <ph name="PRODUCT_OS_NAME" />.
 
       Se per questo criterio viene impostato un elenco non vuoto:
-      Se nessuna voce ha un valore <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> superiore alla versione corrente del dispositivo, non vengono applicate limitazioni e le limitazioni esistenti vengono revocate.
+      Se nessuna voce ha un valore <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> superiore alla versione corrente del dispositivo, non vengono applicate limitazioni e quelle esistenti vengono revocate.
       Se almeno una voce ha un valore <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> superiore alla versione corrente, viene scelta la voce la cui versione è superiore e più simile a quella corrente.
       In caso di conflitto, si preferisce la voce con il valore <ph name="WARNING_PERIOD_PROPERTY_NAME" /> o <ph name="AUE_WARNING_PERIOD_PROPERTY_NAME" /> inferiore e il criterio viene applicato usando tale voce.
 
-      Se la versione corrente diventa obsoleta durante la sessione utente e la rete corrente limita gli aggiornamenti automatici, sullo schermo viene mostrata una notifica che invita l'utente ad aggiornare il dispositivo entro il periodo indicato nel valore <ph name="WARNING_PERIOD_PROPERTY_NAME" /> mostrato nella notifica.
-      Se la rete corrente consente gli aggiornamenti automatici, non viene mostrata alcuna notifica e il dispositivo deve essere aggiornato entro il periodo indicato nel valore <ph name="WARNING_PERIOD_PROPERTY_NAME" />.
+      Se la versione corrente diventa obsoleta durante la sessione utente e la rete in uso limita gli aggiornamenti automatici, sullo schermo viene mostrata una notifica che invita l'utente ad aggiornare il dispositivo entro il periodo indicato nel valore <ph name="WARNING_PERIOD_PROPERTY_NAME" /> mostrato nella notifica.
+      Se la rete in uso consente gli aggiornamenti automatici e il dispositivo deve essere aggiornato entro il periodo indicato nel valore <ph name="WARNING_PERIOD_PROPERTY_NAME" />, non viene mostrata alcuna notifica.
       Il periodo indicato nel valore <ph name="WARNING_PERIOD_PROPERTY_NAME" /> parte dal momento in cui viene applicato il criterio.
       Se il dispositivo non viene aggiornato entro la scadenza del periodo indicato nel valore <ph name="WARNING_PERIOD_PROPERTY_NAME" />, l'utente viene disconnesso dalla sessione.
       Se la versione corrente risulta obsoleta al momento dell'accesso con il periodo indicato nel valore <ph name="WARNING_PERIOD_PROPERTY_NAME" /> scaduto, all'utente viene richiesto di aggiornare il dispositivo prima di accedere.
@@ -3396,12 +3368,12 @@
       Se la versione corrente diventa obsoleta durante la sessione utente e il dispositivo ha raggiunto la scadenza dell'aggiornamento automatico, sullo schermo viene mostrata una notifica che invita l'utente a restituire il dispositivo entro il periodo indicato nel valore <ph name="AUE_WARNING_PERIOD_PROPERTY_NAME" />.
       Se risulta che il dispositivo ha raggiunto la scadenza dell'aggiornamento automatico al momento dell'accesso con il periodo indicato nel valore <ph name="AUE_WARNING_PERIOD_PROPERTY_NAME" /> scaduto, il dispositivo viene bloccato e nessun utente può eseguire l'accesso.
 
-      Le sessioni utente non gestite non ricevono notifiche e forzano la disconnessione se il valore <ph name="UNMANAGED_USER_RESTRICTED_PROPERTY_NAME" /> non viene configurato o se viene impostato su Falso.
+      Se il valore <ph name="UNMANAGED_USER_RESTRICTED_PROPERTY_NAME" /> non viene configurato o se viene impostato su Falso, le sessioni utente non gestite non ricevono notifiche e viene forzata la disconnessione.
 
       Se questo criterio non viene configurato o se viene lasciato vuoto, non vengono applicate limitazioni, vengono revocate quelle esistenti e l'utente può accedere qualunque sia la versione di <ph name="PRODUCT_OS_NAME" />.
 
       Il valore <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> può essere una versione esatta, ad esempio "13305.0.0" oppure un prefisso di versione, ad esempio "13305".
-      I valori <ph name="WARNING_PERIOD_PROPERTY_NAME" /> e <ph name="AUE_WARNING_PERIOD_PROPERTY_NAME" /> sono facoltativi e specificati in numero di giorni. Il valore predefinito è 0 giorni, a indicare nessun periodo di avviso.
+      I valori <ph name="WARNING_PERIOD_PROPERTY_NAME" /> e <ph name="AUE_WARNING_PERIOD_PROPERTY_NAME" /> sono facoltativi e specificati in numero di giorni. Il valore predefinito è 0, a indicare nessun periodo di avviso.
       Il valore <ph name="UNMANAGED_USER_RESTRICTED_PROPERTY_NAME" /> è una proprietà facoltativa, il cui valore predefinito è Falso.</translation>
 <translation id="5879014913445067283">Consente di controllare la funzione Condivisioni file di rete tramite il protocollo <ph name="NETBIOS_NAME" /></translation>
 <translation id="588135807064822874">Attiva la funzione Tocca per cercare</translation>
@@ -3696,11 +3668,11 @@
           L'avviso viene mostrato solo se l'azione stabilita in caso di inattività è la disconnessione o lo spegnimento.</translation>
 <translation id="6334330017384340264">Questo criterio consente di specificare le applicazioni e gli URL da autorizzare per i limiti di utilizzo per app.
         La lista consentita configurata viene applicata alle app installate su <ph name="PRODUCT_OS_NAME" /> per l'utente in questione con limiti di utilizzo per app.
-        La lista consentita configurata può essere applicata soltanto per gli account utente dei bambini e diventa effettiva quando viene impostato il criterio <ph name="PER_APP_TIME_LIMITS_POLICY_NAME" />.
-        La lista consentita configurata viene applicata alle applicazioni e agli URL affinché non vengano bloccati da limiti di utilizzo per app.
+        La lista consentita configurata può essere applicata soltanto agli account per bambini e diventa effettiva quando viene impostato il criterio <ph name="PER_APP_TIME_LIMITS_POLICY_NAME" />.
+        La lista consentita configurata viene applicata alle applicazioni e agli URL affinché non vengano bloccati secondo i limiti di utilizzo per app.
         L'accesso agli URL autorizzati non viene considerato per il limite di utilizzo di Chrome.
         Aggiungi espressioni regolari degli URL a |url_list| per autorizzare gli URL corrispondenti alle espressioni regolari nell'elenco.
-        Aggiungi all'elenco |app_list| un'applicazione con i relativi valori |app_id| e |app_type| per autorizzare l'applicazione.
+        Aggiungi all'elenco |app_list| un'applicazione con i relativi valori |app_id| e |app_type| per autorizzarla.
        </translation>
 <translation id="6337782882143073193">Questo criterio è deprecato, al suo posto utilizza <ph name="URL_BLOCKLIST_POLICY_NAME" />.
 
@@ -3841,7 +3813,7 @@
 <translation id="6573305661369899995">Imposta una fonte esterna di limitazioni relative agli URL</translation>
 <translation id="6575944031719151455">La configurazione del criterio consente di specificare l'elenco di account locali del dispositivo da visualizzare nella schermata di accesso. Gli identificatori fanno distinzione tra i diversi account locali del dispositivo.
 
-      Se il criterio non viene configurato o se l'elenco è vuoto, non sono presenti account locali del dispositivo.</translation>
+      Se il criterio non viene configurato o se l'elenco è vuoto, non vengono visualizzati account locali del dispositivo.</translation>
 <translation id="6583851521569686409">Consente di configurare un elenco di stampanti.
 
       Questo criterio consente agli amministratori di fornire configurazioni delle stampanti ai propri utenti.
@@ -4004,7 +3976,7 @@
 <translation id="6810445994095397827">Blocca JavaScript in questi siti</translation>
 <translation id="6813263547126514821">Alimentazione e spegnimento</translation>
 <translation id="681446116407619279">Schemi di autenticazione supportati</translation>
-<translation id="6815483833848348029">Se il criterio viene impostato su Attivato o se non viene configurato, se un account locale del dispositivo viene configurato per l'accesso automatico senza ritardo quando un dispositivo è offline, <ph name="PRODUCT_OS_NAME" /> mostra una richiesta di configurazione della rete.
+<translation id="6815483833848348029">Se il criterio viene impostato su Attivato o non viene configurato e se un account locale del dispositivo è configurato per l'accesso automatico senza ritardo, quando un dispositivo è offline <ph name="PRODUCT_OS_NAME" /> mostra una richiesta di configurazione della rete.
 
       Se il criterio viene impostato su Disattivato, viene visualizzato invece un messaggio di errore.</translation>
 <translation id="6821268164692776674">Destinazioni <ph name="CLOUD_PRINT_NAME" /> e "Salva su Google Drive"</translation>
@@ -4040,25 +4012,12 @@
       Consente di specificare i flag da applicare all'avvio di <ph name="PRODUCT_NAME" />. I flag specificati vengono applicati soltanto alla schermata di accesso. I flag impostati tramite questa norma non vengono applicati anche alle sessioni utente.</translation>
 <translation id="685769593149966548">Imponi il livello massimo della Modalità con restrizioni per YouTube</translation>
 <translation id="686079137349561371">Microsoft Windows 7 o versioni successive</translation>
-<translation id="6863342574191774334">Se questa impostazione viene attivata, gli utenti possono attivare la funzionalità Condivisione nelle vicinanze, che consente loro di inviare e ricevere file dalle persone nelle vicinanze.
+<translation id="6863342574191774334">Se questa impostazione viene attivata, gli utenti possono scegliere di utilizzare la funzionalità Condivisione nelle vicinanze, che consente di inviare e ricevere file dalle persone nelle vicinanze.
 
-      Se questa impostazione viene disattivata, gli utenti non possono attivare la funzionalità Condivisione nelle vicinanze.
+      Se viene disattivata, gli utenti non possono attivare la funzionalità.
 
-      Se questo criterio non viene configurato, l'impostazione predefinita è consentita sia per gli utenti gestiti a livello aziendale sia per gli utenti non gestiti.</translation>
+      Se questo criterio non viene configurato, per impostazione predefinita la funzionalità è consentita sia per gli utenti gestiti a livello aziendale sia per quelli non gestiti.</translation>
 <translation id="6864244339257535116">Consenti sia caricamenti sia download di file protetti da password</translation>
-<translation id="6870295914868104867">Se il criterio viene impostato, viene installato in automatico un elenco di app ed estensioni, senza l'interazione dell'utente, ed è implicito quali utenti non possono disinstallarle o disattivarle. Le autorizzazioni vengono concesse implicitamente, incluse le API delle estensioni enterprise.deviceAttributes e enterprise.platformKeys. Queste due API non sono disponibili per le app/estensioni senza installazione forzata.
-
-      Se questo criterio non viene impostato, nessuna app o estensione viene installata automaticamente e gli utenti possono disinstallare qualsiasi app o estensione in <ph name="PRODUCT_NAME" />.
-
-      Questo criterio prevale sul criterio <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Se un'app o un estensione di cui è stata precedentemente forzata l'installazione viene rimossa da questo elenco, tali app o estensioni vengono disinstallate automaticamente da <ph name="PRODUCT_NAME" />.
-
-      Per le istanze di Windows® che non fanno parte di un dominio <ph name="MS_AD_NAME" />, l'installazione forzata è limitata alle app e alle estensioni nel Chrome Web Store.
-
-      Il codice sorgente di qualsiasi estensione può essere modificato dagli utenti tramite lo strumento per sviluppatori, causando potenzialmente il malfunzionamento dell'estensione. Per evitare un problema di questo tipo, è consigliabile impostare il criterio <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Ogni elemento nell'elenco del criterio è una stringa contenente un ID estensione e, facoltativamente, un URL "di aggiornamento" separati da punto e virgola (;). L'ID estensione è la stringa di 32 lettere che si trova, ad esempio, all'indirizzo chrome://extensions quando è attiva la modalità sviluppatore. Se specificato, l'URL "di aggiornamento" deve indirizzare a un documento XML manifest di aggiornamento (https://developer.chrome.com/extensions/autoupdate). Per impostazione predefinita, viene utilizzato l'URL di aggiornamento del Chrome Web Store. L'URL "di aggiornamento" impostato in questo criterio viene utilizzato esclusivamente per l'installazione iniziale; per i successivi aggiornamenti dell'estensione viene utilizzato l'URL di aggiornamento nel file manifest dell'estensione.
-
-       Nota: questo criterio non viene applicato alla Modalità di navigazione in incognito. Leggi ulteriori informazioni sull'hosting delle estensioni (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="687046793986382807">Questa norma è stata ritirata a partire dalla versione 35 di <ph name="PRODUCT_NAME" />.
 
       Le informazioni sulla memoria sono comunque riportate sulla pagina, indipendentemente dal valore opzione, ma le dimensioni segnalate presentano
@@ -4533,9 +4492,9 @@
       Visita il sito https://developers.google.com/safe-browsing per avere ulteriori informazioni sulla funzione Navigazione sicura.</translation>
 <translation id="7563608136659080810">Questo criterio è deprecato. Usa il criterio "<ph name="AUTH_NEGOCIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />".
 
-      La configurazione del criterio consente di assegnare i server a cui <ph name="PRODUCT_NAME" /> potrebbe delegare le credenziali utente. Separa i nomi dei server utilizzando le virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.
+      La configurazione del criterio consente di assegnare i server a cui <ph name="PRODUCT_NAME" /> può delegare le credenziali utente. Se ci sono più server, separane i nomi utilizzando virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.
 
-      Se il criterio non viene configurato, <ph name="PRODUCT_NAME" /> non delega le credenziali utente, anche se viene rilevato un server come Intranet.</translation>
+      Se il criterio non viene configurato, <ph name="PRODUCT_NAME" /> non delega le credenziali utente, anche se un server viene rilevato come Intranet.</translation>
 <translation id="7566878661979235378">Tipo di autenticazione per gli accessi SAML</translation>
 <translation id="7567373982693549834">Questo criterio consente di controllare l'utilizzo delle app Android di fonti non attendibili (diverse dal Google Play Store) per ogni utente.
 
@@ -4793,7 +4752,7 @@
       Puoi specificare l'URL di ricerca di Google come: <ph name="GOOGLE_SEARCH_URL" />.</translation>
 <translation id="7895553628261067384">Accesso remoto</translation>
 <translation id="7902040092815978832">Mostra la tastiera numerica per la password</translation>
-<translation id="7904177352786629708">Se il criterio viene impostato su Attivato, è possibile saltare la ricerca CNAME. Il nome del server viene utilizzato come valore inserito durante la generazione del Kerberos SPN.
+<translation id="7904177352786629708">Impostando il criterio su Attivato, la ricerca CNAME viene saltata. Il nome del server viene utilizzato come valore inserito durante la generazione del Kerberos SPN.
 
       Se il criterio viene impostato su Disattivato o se non viene configurato, la ricerca CNAME determina il nome canonico del server durante la generazione del Kerberos SPN.</translation>
 <translation id="7912255076272890813">Configura tipi di app/estensioni consentiti</translation>
@@ -5691,11 +5650,6 @@
       La sessione dell'utente viene ripristinata dopo il riavvio.</translation>
 <translation id="9160028464653564229">Non consentire a nessun sito di richiedere l'accesso a porte seriali tramite l'API Serial</translation>
 <translation id="9167719789236691545">Disattiva Drive nell'app File di <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Se il criterio viene attivato, viene eseguita una ricerca predefinita quando un utente inserisce un testo che non è un URL nella barra degli indirizzi. Per specificare il provider di ricerca predefinito, imposta gli altri criteri di ricerca predefiniti. Se non configuri questi criteri, l'utente può scegliere il provider predefinito. Se il criterio viene disattivato, non viene eseguita alcuna ricerca quando l'utente inserisce un testo che non è un URL nella barra degli indirizzi.
-
-      Se il criterio viene configurato, gli utenti non possono modificarlo in <ph name="PRODUCT_NAME" />. Se non viene configurato, il provider di ricerca predefinito è attivo e gli utenti possono configurare l'elenco dei provider di ricerca.
-
-      Nota: questo criterio è disponibile solo per le istanze di Windows® che fanno parte di un dominio <ph name="MS_AD_NAME" />, così come per le istanze di Windows 10 Pro o di Chrome Enterprise Upgrade e macOS che vengono gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation>
 <translation id="9185107612228451403">Configura le norme relative alle estensioni. L'utente non può installare estensioni presenti nella lista nera, a meno che non siano inserite nella lista bianca. È possibile anche forzare <ph name="PRODUCT_NAME" /> affinché installi automaticamente le estensioni specificandole in <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Le estensioni a installazione forzata sono installate indipendentemente dalla loro presenza nella lista nera.</translation>
 <translation id="9187743794267626640">Disabilita il montaggio di una memoria esterna</translation>
 <translation id="9190456586252617675">Questo criterio consente di stabilire la modalità dell'esperienza di onboarding dell'assistente.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 2083618..203578f9 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -460,13 +460,6 @@
 <translation id="1708496595873025510">バリエーション シードの取得に制限を設定する</translation>
 <translation id="171511968762040550">このポリシーを True に設定するか未設定のままにした場合、ユーザーはブックマークを追加、削除、変更できます。このポリシーを False に設定した場合、ユーザーはブックマークを追加、削除、変更できません。既存のブックマークは引き続き使用できます。</translation>
 <translation id="1715151459541210849">「音声入力」のユーザー補助機能を有効にする</translation>
-<translation id="1717817358640580294">このポリシーが未設定の場合、Chrome クリーンアップで望ましくないソフトウェアが検出されると、SafeBrowsingExtendedReportingEnabled で設定されているポリシーに基づいて、スキャンに関するメタデータのレポートが Google に送信される可能性があります。ユーザーは望ましくないソフトウェアをクリーンアップするかどうかを選択できます。また、望ましくないソフトウェアの検出精度を向上するために、クリーンアップの結果を Google と共有するかどうかも選択できます。これらの結果には、Chrome のプライバシー ホワイトペーパーで説明されているとおり、ファイルのメタデータのほか自動インストールされた拡張機能とレジストリキーが含まれます。
-
-      このポリシーが無効な場合、Chrome クリーンアップで望ましくないソフトウェアが検出されても、スキャンに関するメタデータのレポートは Google に送信されません。この設定は、SafeBrowsingExtendedReportingEnabled で設定されているポリシーよりも優先されます。ユーザーは望ましくないソフトウェアをクリーンアップするかどうかを選択できます。クリーンアップの結果は Google に送信されず、また送信するようユーザーが選択することもできません。
-
-      このポリシーが有効な場合、Chrome クリーンアップで望ましくないソフトウェアが検出されると、SafeBrowsingExtendedReportingEnabled で設定されているポリシーに基づいて、スキャンに関するメタデータのレポートが Google に送信される可能性があります。ユーザーは望ましくないソフトウェアをクリーンアップするかどうかを選択できます。クリーンアップの結果は Google に送信され、送信しないようユーザーが選択することはできません。
-
-      このポリシーは、<ph name="MS_AD_NAME" /> ドメインに追加した Windows インスタンス、またはデバイスの管理対象として登録した Windows 10 Pro あるいは Enterprise インスタンスでのみ使用できます。</translation>
 <translation id="172374442286684480">ローカル データの設定をすべてのサイトに許可する</translation>
 <translation id="1736269219679256369">SSL 警告ページから移動することを許可する</translation>
 <translation id="1745973235372964482">パスワードで保護されているファイルを許可しない</translation>
@@ -1370,15 +1363,6 @@
           この設定を無効にした場合は、未設定のときと同じ動作になります。この場合、ユーザーは <ph name="PRODUCT_NAME" /> でこの設定を変更できます。
 
           このポリシーは、<ph name="MS_AD_NAME" /> ドメインに追加された Windows インスタンス、デバイスの管理対象として登録された Windows 10 Pro または Enterprise インスタンス、MDM を介して管理されるか MCX を介してドメインに追加された macOS インスタンスでのみ使用できます。</translation>
-<translation id="2982571648442031489">セーフ ブラウジングで信頼するドメインのリストを設定します。動作は次のようになります。
-      URL が指定ドメインと一致する場合、セーフ ブラウジングでは、危険なリソース(フィッシング、不正なソフトウェア、迷惑ソフトウェアなど)の確認は行われません。
-      ダウンロードのホストが指定ドメインの場合、セーフ ブラウジングのダウンロード保護サービスによる確認は行われません。
-      ページの URL が指定ドメインと一致する場合、セーフ ブラウジングのパスワード保護サービスによるパスワードの再利用の確認は行われません。
-
-      この設定が有効になっている場合、セーフ ブラウジングでは指定ドメインが信頼されます。
-      この設定が無効になっているか未設定の場合は、すべてのリソースにデフォルトのセーフ ブラウジング保護が適用されます。
-
-      このポリシーは、<ph name="MS_AD_NAME" /> ドメインに追加された Windows インスタンス、デバイスの管理対象として登録された Windows 10 Pro または Enterprise インスタンス、MDM を介して管理されるか MCX を介してドメインに追加された macOS インスタンスでのみ使用できます。</translation>
 <translation id="2985927503455169394">アシスタントのオンボーディング エクスペリエンスでデフォルトのモードを使用する</translation>
 <translation id="2987155890997901449">ARC を有効にする</translation>
 <translation id="2987227569419001736">Web Bluetooth API の使用を管理する</translation>
@@ -1492,11 +1476,6 @@
       このポリシーが未設定であるか false に設定されている場合、TLS の DHE 暗号スイートは有効化されません。DHE 暗号スイートを有効にして古いサーバーに対応するために、このポリシーを true に設定することもできます。これは暫定的な措置であり、サーバーの再設定が必要です。
 
       サーバーを ECDHE 暗号化スイートに移行することをおすすめします。ECDHE 暗号化スイートを使用できない場合は、RSA 鍵交換を使用した暗号化スイートが有効になっているか確認してください。</translation>
-<translation id="3117706142826400449">このポリシーが無効な場合、Chrome クリーンアップによるシステム スキャンと、望ましくないソフトウェアのクリーンアップは行われません。また、chrome://settings/cleanup で Chrome クリーンアップを手動で開始することもできません。
-
-      このポリシーが有効または未設定の場合は、Chrome クリーンアップによって定期的にシステム スキャンが行われ、望ましくないソフトウェアが検出された場合には削除するかどうかの確認をユーザーに求めます。また、chrome://settings で Chrome クリーンアップを手動で開始することも可能です。
-
-      このポリシーは、<ph name="MS_AD_NAME" /> ドメインに追加した Windows インスタンス、またはデバイスの管理対象として登録した Windows 10 Pro あるいは Enterprise インスタンスでのみ使用できます。</translation>
 <translation id="3119125876909100625">パスワードで保護されているファイルのアップロードを許可する</translation>
 <translation id="3122082892722698079">安全でないコンテンツの例外の使用を管理する</translation>
 <translation id="3143265893557969814">このポリシーを設定した場合、指定したすべてのデータタイプが Google Sync とローミング プロファイルの同期から除外されます。これにより、ローミング プロファイルのサイズを抑えたり、Google Sync サーバーにアップロードされるデータのタイプを制限したりできます。
@@ -2119,13 +2098,6 @@
 <translation id="4061590579642538878">障害レポートに関する情報を報告します。</translation>
 <translation id="4075675819066819571">シェルフを画面の左側に配置する</translation>
 <translation id="4075864623710596000">このリストに記されたホスト名については、HTTP から HTTPS へのアップグレード リクエストになる可能性がある HSTS ポリシー チェックから除外されます。このポリシーでは、単一ラベルのホスト名のみが許可されます。ホスト名は正規化されている必要があります。IDN はすべて A ラベル形式に変換し、すべての ASCII 文字列が小文字である必要があります。ポリシーが適用されるのは指定された特定のホスト名のみです。指定された名前のサブドメインには適用されません。</translation>
-<translation id="4076584741592854827">ダウンロード後に自動的に開くファイル形式のリストです。ファイル形式のリストは、先頭の区切り記号を含めずに指定してください。たとえば「.txt」の場合は「txt」と指定します。
-
-      なお、自動的に開くよう指定した形式のファイルも、セーフ ブラウジングが有効な場合はチェックされ、安全でないと判断された場合は開かれません。
-
-      このポリシーを未設定のままにした場合は、自動的に開くようユーザーが指定しているファイル形式のみが、ダウンロード後に自動的に開かれます。
-
-      このポリシーは、<ph name="MS_AD_NAME" /> ドメインに追加された Windows インスタンス、デバイスの管理対象として登録された Windows 10 Pro または Enterprise インスタンス、MDM を介して管理されるか MCX を介してドメインに追加された macOS インスタンスでのみ使用できます。</translation>
 <translation id="408029843066770167">Google 時間サービスへのクエリを許可する</translation>
 <translation id="408076456549153854">ブラウザのログインを有効にする</translation>
 <translation id="4082498585300984671">Click-to-Call 機能を有効にする</translation>
@@ -4030,19 +4002,6 @@
 
       このポリシーを未設定のままにした場合、デフォルトでは、企業で管理されているユーザーと管理されていないユーザーのいずれもニアバイシェアを有効にできます。</translation>
 <translation id="6864244339257535116">パスワードで保護されているファイルのアップロードとダウンロードを許可する</translation>
-<translation id="6870295914868104867">このポリシーを設定することで、ユーザーに操作を求めずにサイレント インストールするアプリと拡張機能のリストを指定します。ユーザーは、ここで指定されたアプリや拡張機能をアンインストールすることも無効化することもできません。権限は、enterprise.deviceAttributes 拡張機能 API と enterprise.platformKeys 拡張機能 API に対するものを含め、暗黙的に付与されます(これら 2 つの API は、強制的にインストールされたアプリや拡張機能以外には利用できません)。
-
-      このポリシーが未設定の場合、どのアプリや拡張機能も自動的にインストールされることはなく、ユーザーは <ph name="PRODUCT_NAME" /> からアプリや拡張機能をアンインストールできます。
-
-      このポリシーは <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> ポリシーに優先します。以前に強制的にインストールされたアプリまたは拡張機能をこのリストから削除すると、そのアプリや拡張機能は <ph name="PRODUCT_NAME" /> から自動的にアンインストールされます。
-
-      <ph name="MS_AD_NAME" /> ドメインに登録されていない Windows® インスタンスの場合、強制的にインストールされるのは Chrome ウェブストアに公開されているアプリと拡張機能のみとなります。
-
-      どの拡張機能についても、ユーザーはデベロッパー ツールを使用してソースコードを変更できます(その場合、拡張機能が機能しなくなることがあります)。こうした変更を禁止するには、<ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> ポリシーを設定してください。
-
-      このポリシーの各リスト項目には、拡張機能 ID と「更新」URL(省略可)をセミコロン(;)で区切った文字列を指定します。拡張機能 ID は 32 文字の文字列で、たとえばデベロッパー モードで chrome://extensions を開くと確認できます。「更新」URL を指定する場合は、更新マニフェスト XML ドキュメントを指定する必要があります(https://developer.chrome.com/extensions/autoupdate)。デフォルトでは Chrome ウェブストアの更新 URL が使用されます。このポリシーで設定した「更新」URL は初回のインストールでのみ使用され、その後の拡張機能の更新には、拡張機能のマニフェストで指定した更新 URL が使用されます。
-
-       注: このポリシーはシークレット モードには適用されません。拡張機能のホスティングについてご確認ください(https://developer.chrome.com/extensions/hosting)。</translation>
 <translation id="687046793986382807">このポリシーは <ph name="PRODUCT_NAME" /> バージョン 35 で廃止されました。
 
       オプションの値に関係なく、メモリ情報はページに報告されますが、報告されるサイズは近似値となり、
@@ -5681,11 +5640,6 @@
       ユーザー セッションは再起動後に復元されます。</translation>
 <translation id="9160028464653564229">どのサイトにもシリアル API 経由でのシリアルポートへのアクセス要求を許可しない</translation>
 <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> ファイルアプリでドライブを無効にする</translation>
-<translation id="917514578273777202">このポリシーを有効に設定した場合、ユーザーがアドレスバーに URL 以外のテキストを入力したときにデフォルトの検索が実行されます。デフォルトの検索プロバイダを指定するには、デフォルトの検索に関する他のポリシーを設定します。これらのポリシーを空白のままにした場合、ユーザーはデフォルトのプロバイダを選択できます。このポリシーを無効に設定した場合、ユーザーがアドレスバーに URL 以外のテキストを入力したときに検索は実行されません。
-
-      このポリシーを設定した場合、ユーザーは <ph name="PRODUCT_NAME" /> でこの設定を変更できません。設定しない場合、デフォルトの検索プロバイダが有効になり、ユーザーは検索プロバイダのリストを設定できます。
-
-      注: このポリシーは、<ph name="MS_AD_NAME" /> ドメインに追加された Windows® インスタンス、Windows 10 Pro、または MDM を介して管理されるか MCX を介してドメインに追加された Chrome Enterprise Upgrade と macOS インスタンスでのみ使用できます。</translation>
 <translation id="9185107612228451403">拡張機能に関するポリシーを設定します。ユーザーは、ホワイトリストに登録されている場合を除き、ブラックリストに登録されている拡張機能をインストールできません。<ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> に拡張機能を指定して、<ph name="PRODUCT_NAME" /> がその拡張機能を自動的にインストールするよう設定することもできます。ここで指定した拡張機能は、ブラックリストへの登録の有無を問わず、インストールされます。</translation>
 <translation id="9187743794267626640">外部ストレージのマウントを無効にする</translation>
 <translation id="9190456586252617675">このポリシーでは、アシスタントのオンボーディング エクスペリエンスのモードを管理します。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 8d178ba..48909f9 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -466,13 +466,6 @@
 
       정책을 False로 설정하면 사용자가 북마크를 추가, 삭제 또는 수정할 수 없습니다. 기존 북마크는 여전히 사용할 수 있습니다.</translation>
 <translation id="1715151459541210849">음성기록 접근성 기능 사용</translation>
-<translation id="1717817358640580294">이 정책이 설정되지 않은 경우 Chrome 정리도구가 원치 않은 소프트웨어를 발견하면 SafeBrowsingExtendedReportingEnabled에서 설정한 정책에 따라 Google에 검사 관련 메타데이터를 보고할 수 있습니다. 그런 다음 Chrome 정리도구가 사용자에게 원치 않은 소프트웨어를 삭제할 것인지 묻습니다. 사용자는 Google과 정리 결과를 공유하여 향후 원치 않은 소프트웨어 감지를 도울 것인지 여부를 선택할 수 있습니다. 이러한 결과에는 Chrome 개인정보 보호 백서에 명시된 바와 같이 파일 메타데이터, 자동 설치된 확장 프로그램, 레지스트리 키가 포함됩니다.
-
-      이 정책이 사용 중지된 경우 Chrome 정리도구가 원치 않은 소프트웨어를 발견하면 SafeBrowsingExtendedReportingEnabled에서 설정한 정책을 재정의하여 Google에 검사 관련 메타데이터를 보고하지 않습니다. Chrome 정리도구가 사용자에게 원치 않은 소프트웨어를 삭제할 것인지 묻습니다.  정리 결과는 Google에 보고되지 않으며 사용자에게는 Google에 정리 결과를 보고하도록 선택할 옵션이 없습니다.
-
-      이 정책이 사용 설정된 경우 Chrome 정리 도구가 원치 않는 소프트웨어를 발견하면 SafeBrowsingExtendedReportingEnabled에서 설정한 정책에 따라 Google에 검사 관련 메타데이터를 보고할 수 있습니다. Chrome 정리도구가 사용자에게 원치 않은 소프트웨어를 삭제할 것인지 묻습니다.  정리 결과는 Google에 보고되며 사용자에게는 Google에 정리 결과를 보고하지 않도록 선택할 옵션이 없습니다.
-
-      이 정책은 <ph name="MS_AD_NAME" /> 도메인에 참여하는 Windows 인스턴스 또는 기기 관리에 등록된 Windows 10 Pro/Enterprise 인스턴트에서만 사용할 수 있습니다.</translation>
 <translation id="172374442286684480">모든 사이트에서 로컬 데이터 설정 허용</translation>
 <translation id="1736269219679256369">SSL 경고 페이지에서 계속 진행하도록 허용</translation>
 <translation id="1745973235372964482">비밀번호로 보호된 파일 허용 안함</translation>
@@ -1392,15 +1385,6 @@
           설정을 사용 중지하는 것은 구성하지 않는 것과 같습니다. 사용자는 계속 <ph name="PRODUCT_NAME" />에서 변경할 수 있습니다.
 
           이 정책은 <ph name="MS_AD_NAME" /> 도메인에 연결된 Windows 인스턴스, 기기 관리에 등록된 Windows 10 Pro 또는 Enterprise 인스턴스, MDM을 통해 관리되거나 MCX를 통해 도메인에 연결된 macOS 인스턴스에서만 사용할 수 있습니다.</translation>
-<translation id="2982571648442031489">세이프 브라우징에서 신뢰할 도메인 목록을 구성합니다. 이는 
-      URL이 신뢰할 도메인과 일치하면 세이프 브라우징에서 위험한 리소스(예: 피싱, 멀웨어, 원치 않은 소프트웨어) 여부를 확인하지 않는다는 의미입니다.
-      세이프 브라우징의 다운로드 보호 서비스에서 신뢰할 도메인에 호스팅된 다운로드 항목을 확인하지 않습니다.
-      페이지 URL이 신뢰할 도메인과 일치하면 세이프 브라우징의 비밀번호 보호 서비스에서 비밀번호 재사용을 확인하지 않습니다.
-
-      이 설정을 사용하면 세이프 브라우징에서 이러한 도메인을 신뢰합니다.
-      설정을 사용 중지하거나 설정하지 않으면 세이프 브라우징의 기본 보호 조치가 모든 리소스에 적용됩니다.
-
-      이 정책은 <ph name="MS_AD_NAME" /> 도메인에 연결된 Windows 인스턴스, 기기 관리에 등록된 Windows 10 Pro 또는 Enterprise 인스턴스, MDM을 통해 관리되거나 MCX를 통해 도메인에 연결된 macOS 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="2985927503455169394">어시스턴트 온보딩 환경의 기본 모드 사용</translation>
 <translation id="2987155890997901449">ARC 사용</translation>
 <translation id="2987227569419001736">Web Bluetooth API 사용 조정</translation>
@@ -1517,11 +1501,6 @@
       이 정책이 설정되지 않았거나 'false'로 설정된 경우 TLS DHE 암호화 기술이 사용 설정되지 않습니다. 반대로 정책을 'true'로 설정하면 DHE 암호화 기술을 사용하도록 설정하여 오래된 서버와의 호환성을 유지할 수 있습니다. 이는 임시 조치이며 서버는 다시 구성해야 합니다.
 
       서버는 ECDHE 암호화 기술로 이전하는 것이 좋습니다. ECDHE 암호화 기술을 사용할 수 없는 경우 RSA 키 교환을 사용한 암호화 기술이 사용되었는지 확인합니다.</translation>
-<translation id="3117706142826400449">정책이 사용 중지되면 Chrome 정리도구가 시스템에 원치 않는 소프트웨어가 있는지 검사하지 않으며 정리를 실행하지 않습니다. chrome://settings/cleanup에서 Chrome 정리도구를 수동으로 실행할 수도 없습니다.
-
-      정책이 사용 설정되거나 설정되지 않으면 Chrome 정리도구가 시스템에 원치 않는 소프트웨어가 있는지 정기적으로 검사하여 이러한 소프트웨어가 발견될 경우 사용자에게 삭제할 것인지 묻습니다. chrome://settings에서 Chrome 정리도구를 수동으로 실행할 수도 있습니다.
-
-      이 정책은 <ph name="MS_AD_NAME" /> 도메인에 참여하는 Windows 인스턴스 또는 기기 관리에 등록된 Windows 10 Pro/Enterprise 인스턴트에서만 사용할 수 있습니다.</translation>
 <translation id="3119125876909100625">비밀번호로 보호된 파일의 업로드 허용</translation>
 <translation id="3122082892722698079">안전하지 않은 콘텐츠 예외 사용 제어</translation>
 <translation id="3143265893557969814">정책이 설정되면 지정된 모든 데이터 유형이 Google 동기화와 로밍 프로필 동기화 모두에서 제외됩니다. 이렇게 하면 로밍 프로필의 크기를 줄이거나 Google 동기화 서버에 업로드되는 데이터의 유형을 제한하는 데 도움이 될 수 있습니다.
@@ -2145,13 +2124,6 @@
 <translation id="4061590579642538878">비정상 종료 보고서에 관한 정보를 보고합니다.</translation>
 <translation id="4075675819066819571">실행기를 화면 왼쪽에 놓기</translation>
 <translation id="4075864623710596000">이 목록에 지정된 호스트 이름은 http에서 https로 요청을 업그레이드할 가능성이 있는 HSTS 정책 검사에서 제외됩니다. 이 정책에는 단일 라벨 호스트 이름만 허용됩니다. 호스트 이름은 표준화되어야 합니다. 모든 IDN은 A 라벨 형식으로 변환되어야 하며 모든 ASCII 문자는 소문자여야 합니다. 이 정책은 지정된 특정 호스트 이름에만 적용되며 지정된 이름의 하위 도메인에는 적용되지 않습니다.</translation>
-<translation id="4076584741592854827">다운로드 시 자동으로 열려야 하는 파일 형식 목록입니다. 파일 형식을 나열할 때 접두 구분자가 포함되어서는 안 됩니다. '.txt' 대신 'txt'로 표시하세요.
-
-      세이프 브라우징 확인이 사용 설정된 경우 자동으로 열려야 하는 형식의 파일에도 적용되며, 파일이 이 확인을 통과하지 못하면 열리지 않습니다.
-
-      정책을 설정하지 않은 경우 사용자가 이미 자동으로 열리도록 지정한 파일 형식만 다운로드 시 자동으로 열립니다.
-
-      이 정책은 <ph name="MS_AD_NAME" /> 도메인에 연결된 Windows 인스턴스, 기기 관리에 등록된 Windows 10 Pro 또는 Enterprise 인스턴스, MDM을 통해 관리되거나 MCX를 통해 도메인에 연결된 macOS 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="408029843066770167">Google 시간 서비스에 쿼리 허용</translation>
 <translation id="408076456549153854">브라우저 로그인 사용</translation>
 <translation id="4082498585300984671">클릭 투 콜 기능 사용 설정</translation>
@@ -4109,19 +4081,6 @@
 
       정책을 설정하지 않으면 엔터프라이즈 관리 사용자 및 관리되지 않는 사용자 모두 기본적으로 Nearby Share를 사용 설정할 수 있습니다.</translation>
 <translation id="6864244339257535116">비밀번호로 보호된 파일의 업로드 및 다운로드 허용</translation>
-<translation id="6870295914868104867">정책을 설정하면 사용자 상호작용 없이 자동으로 설치되는 앱 및 확장 프로그램 목록이 지정되며, 사용자가 제거하거나 사용 중지할 수 없습니다. enterprise.deviceAttributes 및 enterprise.platformKeys 확장 프로그램 API의 권한을 비롯한 권한은 암시적으로 부여됩니다. (이 2개의 API는 강제 설치되지 않은 앱과 확장 프로그램에서 사용 가능합니다.)
-
-      정책을 설정하지 않으면 앱과 확장 프로그램이 자동 설치되지 않으며 사용자는 <ph name="PRODUCT_NAME" />에서 모든 앱 또는 확장 프로그램을 제거할 수 있습니다.
-
-      이 정책은 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> 정책을 대체합니다. 기존에 강제 설치된 앱 또는 확장 프로그램은 이 목록에서 삭제되며 <ph name="PRODUCT_NAME" />에 의해 자동으로 제거됩니다.
-
-      <ph name="MS_AD_NAME" /> 도메인에 연결되지 않은 Windows® 인스턴스의 경우 강제 설치는 Chrome 웹 스토어의 앱과 확장 프로그램으로 제한됩니다.
-
-      모든 확장 프로그램의 소스 코드는 사용자가 개발자 도구를 통해 변경할 수 있으며, 이 과정에서 확장 프로그램 오작동이 발생할 수 있습니다. 이 점이 우려된다면 <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> 정책을 설정하세요.
-
-      정책의 각 목록 항목은 세미콜론(;)으로 구분된 확장 프로그램 ID 및 '업데이트' URL(선택사항)로 구성된 문자열입니다. 확장 프로그램 ID는 32자리 문자열로, 예를 들어 개발자 모드일 때 chrome://extensions에서 확인할 수 있습니다. '업데이트' URL을 지정하는 경우 업데이트 매니페스트 XML 문서( https://developer.chrome.com/extensions/autoupdate )로 연결되어야 합니다. 기본적으로 Chrome 웹 스토어의 업데이트 URL이 사용됩니다. 정책에 설정된 '업데이트' URL은 최초 설치 시에만 사용되며 향후 확장 프로그램 업데이트에서는 확장 프로그램 매니페스트에 있는 업데이트 URL이 사용됩니다.
-
-       참고: 이 정책은 시크릿 모드에는 적용되지 않습니다. 확장 프로그램 호스팅에 관해 자세히 알아보세요(https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="687046793986382807">이 정책은 <ph name="PRODUCT_NAME" /> 버전 35를 기준으로 지원이 중단되었습니다.
 
       메모리 정보는 옵션 값과 관계없이 페이지에 보고되지만 보안 상의 이유로 보고되는
@@ -5804,11 +5763,6 @@
       재실행 및 재시작 후에는 사용자의 세션이 복원됩니다.</translation>
 <translation id="9160028464653564229">모든 사이트에서 Serial API를 통한 직렬 포트 액세스를 요청하도록 허용 안함</translation>
 <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> 파일 앱에서 드라이브 사용 중지</translation>
-<translation id="917514578273777202">정책을 '사용'으로 설정하면 사용자가 주소 표시줄에 URL이 아닌 텍스트를 입력했을 때 기본 검색이 수행됩니다. 기본 검색 공급자를 지정하려면 기본 검색 정책의 나머지를 설정하세요. 이러한 정책을 비워두면 사용자가 기본 공급자를 선택할 수 있습니다. 정책을 '사용 안함'으로 설정하면 사용자가 주소 표시줄에 URL이 아닌 텍스트를 입력했을 때 검색이 수행되지 않습니다.
-
-      정책을 설정하면 <ph name="PRODUCT_NAME" />에서 사용자가 변경할 수 없습니다. 정책을 설정하지 않으면 기본 검색 공급자가 사용 설정되고 사용자는 검색 공급자 목록을 설정할 수 있습니다.
-
-      참고: 이 정책은 <ph name="MS_AD_NAME" /> 도메인에 연결된 Windows® 인스턴스, Windows 10 Pro, Chrome Enterprise 업그레이드, MDM을 통해 관리되거나 MCX를 통해 도메인에 연결된 macOS 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="9185107612228451403">확장 프로그램 관련 정책을 설정합니다. 사용자는 허용 목록에 있는 경우를 제외하고는 블랙리스트에 있는 확장 프로그램을 설치할 수 없습니다. 또한 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />에 지정하여 <ph name="PRODUCT_NAME" />에서 강제로 확장 프로그램을 자동 설치하도록 할 수 있습니다. 강제로 설치된 확장 프로그램은 블랙리스트 포함 여부와 관계없이 설치됩니다.</translation>
 <translation id="9187743794267626640">외부 저장소 마운트 사용 중지</translation>
 <translation id="9190456586252617675">이 정책은 어시스턴트 온보딩 환경의 모드를 제어합니다.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 1a06be0..f02b60d 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -73,6 +73,7 @@
 
       Als het beleid is ingesteld op False of niet is ingesteld, worden de gegevens niet gerapporteerd.
       Als het beleid is ingesteld op True, wordt informatie over de schermverlichting van het apparaat gerapporteerd.</translation>
+<translation id="1076751984131277498">Toelatingslijst met USB-apparaten die mogen worden ontkoppeld</translation>
 <translation id="1079801999187584280">Het gebruik van de hulpprogramma's voor ontwikkelaars niet toestaan</translation>
 <translation id="1087437665304381368">Met dit beleid wordt alleen de ontwikkelaarsmodus van <ph name="PRODUCT_OS_NAME" /> bepaald. Als je de toegang tot de ontwikkelaarsopties van Android wilt blokkeren, moet je het beleid <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> instellen.</translation>
 <translation id="1087707496788636333">De Chrome Enterprise-beleidslijst wordt verplaatst. Update je bookmarks naar <ph name="POLICY_DOCUMENTATION_URL" />.</translation>
@@ -457,13 +458,6 @@
 
       Als je het beleid instelt op 'False', kunnen gebruikers geen bookmarks toevoegen, verwijderen of wijzigen. Ze kunnen nog wel bestaande bookmarks gebruiken.</translation>
 <translation id="1715151459541210849">De toegankelijkheidsfunctie voor dicteren inschakelen</translation>
-<translation id="1717817358640580294">Als deze optie niet is ingesteld en er ongewenste software door Chrome Cleanup wordt gedetecteerd, worden er mogelijk metadata over de scan naar Google verzonden, overeenkomstig het beleid dat is ingesteld met SafeBrowsingExtendedReportingEnabled. Chrome Cleanup vraagt de gebruiker vervolgens of de ongewenste software moet worden opgeschoond. De gebruiker kan ervoor kiezen om de resultaten van de opschoonbewerking met Google te delen en bij te dragen aan de toekomstige detectie van ongewenste software. Deze resultaten bevatten metadata van bestanden, automatisch geïnstalleerde extensies en registersleutels zoals beschreven in de whitepaper over het privacybeleid voor Chrome.
-
-      Als deze optie uitgeschakeld is en er ongewenste software door Chrome Cleanup wordt gedetecteerd, worden er geen metadata over de scan naar Google verzonden en wordt het beleid dat is ingesteld met SafeBrowsingExtendedReportingEnabled, overschreven. Chrome Cleanup vraagt de gebruiker of deze de ongewenste software wil opschonen.  De resultaten van de opschoonbewerking worden niet aan Google gemeld en de gebruiker beschikt ook niet over de optie om dit te doen.
-
-      Als deze optie ingeschakeld is en er ongewenste software door Chrome Cleanup wordt gedetecteerd, worden er mogelijk metadata over de scan naar Google verzonden, overeenkomstig het beleid dat is ingesteld met SafeBrowsingExtendedReportingEnabled. Chrome Cleanup vraagt de gebruiker of deze de ongewenste software wil opschonen.  De resultaten van de opschoonbewerking worden gemeld aan Google en de gebruiker beschikt niet over de optie om dit te voorkomen.
-
-      Dit beleid is alleen beschikbaar op Windows-instanties die gekoppeld zijn aan een <ph name="MS_AD_NAME" />-domein of op instanties van Windows 10 Pro of Enterprise die ingeschreven zijn voor apparaatbeheer.</translation>
 <translation id="172374442286684480">Alle sites toestaan lokale gegevens in te stellen</translation>
 <translation id="1736269219679256369">Doorgaan vanaf de SSL-waarschuwingspagina toestaan</translation>
 <translation id="1745973235372964482">Bestanden met wachtwoordbeveiliging niet toestaan</translation>
@@ -536,6 +530,9 @@
 
       Als dit beleid niet wordt ingesteld, wordt netwerkvoorspelling ingeschakeld, maar kan de gebruiker dit wijzigen.</translation>
 <translation id="1865417998205858223">Rechten voor sleutels</translation>
+<translation id="1866563857170942397">Definieert de lijst met gebruikers die toestemming hebben om op het apparaat in te loggen. De invoer heeft de vorm <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, zoals <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Als je willekeurige gebruikers toegang wilt geven tot een domein, gebruik je invoer in de vorm <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />.
+
+      Als dit beleid niet is geconfigureerd, zijn er geen beperkingen voor welke gebruikers mogen inloggen. Als je nieuwe gebruikers wilt maken, moet het beleid <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> correct zijn ingesteld.</translation>
 <translation id="186719019195685253">Actie die moet worden ondernomen wanneer de vertraging voor inactief wordt bereikt bij gebruik op netspanning</translation>
 <translation id="187819629719252111">Hiermee wordt toegang tot lokale bestanden op de computer toegestaan doordat <ph name="PRODUCT_NAME" /> dialoogvensters voor het selecteren van bestanden kan weergeven.
 
@@ -1373,15 +1370,6 @@
           Als je deze instelling uitschakelt, heeft dit hetzelfde effect als wanneer de instelling niet is geconfigureerd. De gebruiker kan de instelling nog wel steeds wijzigen in <ph name="PRODUCT_NAME" />.
 
           Dit beleid is alleen beschikbaar voor Windows-instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, voor Windows 10 Pro- of Enterprise-instanties die zijn ingeschreven voor apparaatbeheer en voor macOS-instanties die worden beheerd via MDM of aan een domein zijn gekoppeld via MCX.</translation>
-<translation id="2982571648442031489">Configureer de lijst met domeinen die door Safe Browsing worden vertrouwd. Dit betekent het volgende:
-      Safe Browsing checkt niet op gevaarlijke bronnen (zoals phishing, malware of ongewenste software) als de URL's van de bronnen overeenkomen met deze domeinen.
-      De downloadbeveiligingsservice van Safe Browsing checkt geen downloads die op deze domeinen worden gehost.
-      De wachtwoordbeveiligingsservice van Safe Browsing checkt niet of wachtwoorden opnieuw worden gebruikt als de pagina-URL overeenkomt met deze domeinen.
-
-      Als deze instelling is ingeschakeld, worden deze domeinen vertrouwd door Safe Browsing.
-      Als deze instelling is uitgeschakeld of niet is ingesteld, wordt de standaard Safe Browsing-beveiliging toegepast op alle bronnen.
-
-      Dit beleid is alleen beschikbaar voor Windows-instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, voor Windows 10 Pro- of Enterprise-instanties die zijn ingeschreven voor apparaatbeheer en voor macOS-instanties die worden beheerd via MDM of aan een domein zijn gekoppeld via MCX.</translation>
 <translation id="2985927503455169394">De standaard modus voor introductie van de Assistent gebruiken</translation>
 <translation id="2987155890997901449">ARC inschakelen</translation>
 <translation id="2987227569419001736">Gebruik van de Web Bluetooth API beheren</translation>
@@ -1498,11 +1486,6 @@
       Als het beleid niet is ingesteld of is ingesteld op 'False', worden de DHE-coderingssuites in TLS niet ingeschakeld. Anders kan het worden ingesteld op 'True' om DHE-coderingssuites in te schakelen en de compatibiliteit met een verouderde server te behouden. Dit is een tijdelijke oplossing en de server moet opnieuw worden geconfigureerd.
 
       Servers kunnen het beste worden gemigreerd naar ECDHE-coderingssuites. Indien deze niet beschikbaar zijn, moet je ervoor zorgen dat er een coderingssuite is ingeschakeld die gebruikmaakt van RSA-sleuteluitwisseling.</translation>
-<translation id="3117706142826400449">Als dit beleid uitgeschakeld is, scant Chrome Cleanup het systeem niet op ongewenste software en kan de tool niets opschonen. Het is in dit geval ook niet meer mogelijk Chrome Cleanup handmatig te starten via chrome://settings/cleanup.
-
-      Als het beleid ingeschakeld is, of niet ingesteld is, scant Chrome Cleanup het systeem periodiek op ongewenste software. Als er ongewenste software wordt aangetroffen, wordt de gebruiker gevraagd of deze software moet worden verwijderd. Het is in dit geval mogelijk Chrome Cleanup te starten via chrome://settings.
-
-      Dit beleid is alleen beschikbaar op Windows-instanties die gekoppeld zijn aan een <ph name="MS_AD_NAME" />-domein of op instanties van Windows 10 Pro of Enterprise die ingeschreven zijn voor apparaatbeheer.</translation>
 <translation id="3119125876909100625">Uploads van bestanden met wachtwoordbeveiliging toestaan</translation>
 <translation id="3122082892722698079">Gebruik van niet-beveiligde contentuitzonderingen beheren</translation>
 <translation id="3143265893557969814">Als dit beleid is ingesteld, worden alle opgegeven gegevenstypen uitgesloten van synchronisatie voor zowel Google Sync als synchronisatie van roaming-profielen. Dit kan handig zijn om het roaming-profiel te verkleinen of het type gegevens te beperken dat wordt geüpload naar de Google Sync-servers.
@@ -1831,6 +1814,9 @@
 <translation id="3647212518036289905">Als je het beleid instelt, geef je aan welke GSSAPI-bibliotheek moet worden gebruikt voor HTTP-verificatie. Stel het beleid in op een bibliotheeknaam of een volledig pad.
 
       Als je het beleid niet instelt, gebruikt <ph name="PRODUCT_NAME" /> een standaard bibliotheeknaam.</translation>
+<translation id="3653234084868565720">Bepaalt of <ph name="PRODUCT_OS_NAME" /> het maken van nieuwe gebruikersaccounts toestaat. Als dit beleid is ingesteld op False, kunnen gebruikers zonder account niet inloggen.
+
+      Als dit beleid is ingesteld op True of niet is geconfigureerd, kunnen er nieuwe gebruikersaccounts worden gemaakt, mits <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> de gebruiker toestaat in te loggen.</translation>
 <translation id="3653237928288822292">Icoon voor standaardzoekprovider</translation>
 <translation id="3654906736796256792">Toestaan dat de audiosandbox wordt uitgevoerd</translation>
 <translation id="3657998022005237040">Downloads van niet-ondersteunde bestandstypen blokkeren</translation>
@@ -2123,13 +2109,6 @@
 <translation id="4061590579642538878">Informatie over crashrapporten rapporteren.</translation>
 <translation id="4075675819066819571">De plank aan de linkerkant van het scherm plaatsen</translation>
 <translation id="4075864623710596000">De op deze lijst vermelde hostnamen zijn vrijgesteld van controle van het HSTS-beleid die verzoeken kan upgraden van HTTP naar HTTPS. In dit beleid zijn alleen hostnamen met één label toegestaan. Hostnamen moeten een canonieke URL hebben. Eventuele IDN's moeten worden geconverteerd naar de A-labelindeling en alle ASCII-letters moeten kleine letters zijn. Dit beleid is alleen van toepassing op de vermelde specifieke hostnamen en niet op de subdomeinen van de vermelde namen.</translation>
-<translation id="4076584741592854827">Lijst met bestandstypen die automatisch moeten worden geopend nadat ze zijn gedownload. Het voorafgaande scheidingsteken mag niet worden opgenomen als je het bestandstype vermeldt. Vermeld dus 'txt' in plaats van '.txt'.
-
-      Bestanden met typen die automatisch moeten worden geopend, vallen nog steeds onder de ingeschakelde Safe Browsing-checks en worden niet geopend als ze die checks niet doorstaan.
-
-      Als dit beleid niet is ingesteld, worden alleen bestandstypen waarvoor een gebruiker dit al heeft opgegeven, automatisch geopend nadat ze zijn gedownload.
-
-      Dit beleid is alleen beschikbaar voor Windows-instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, voor Windows 10 Pro- of Enterprise-instanties die zijn ingeschreven voor apparaatbeheer en voor macOS-instanties die worden beheerd via MDM of aan een domein zijn gekoppeld via MCX.</translation>
 <translation id="408029843066770167">Query's naar een Google-tijdservice toestaan</translation>
 <translation id="408076456549153854">Inloggen bij browser inschakelen</translation>
 <translation id="4082498585300984671">De functie 'Klik om te bellen' inschakelen</translation>
@@ -3191,6 +3170,11 @@
 
       Als dit niet is gespecificeerd, wordt de URL voor de seed voor varianten niet aangepast.</translation>
 <translation id="5561811616825571914">Clientcertificaten automatisch selecteren voor deze sites op het inlogscherm</translation>
+<translation id="5564345250641049313">Definieert de lijst met gebruikers die toestemming hebben om op het apparaat in te loggen. De invoer heeft de vorm <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, zoals <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Als je willekeurige gebruikers toegang wilt geven tot een domein, gebruik je invoer in de vorm <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />.
+
+      Als dit beleid niet is geconfigureerd, zijn er geen beperkingen voor welke gebruikers mogen inloggen. Als je nieuwe gebruikers wilt maken, moet het beleid <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> correct zijn ingesteld.
+
+      Dit beleid is verouderd. Gebruik in plaats daarvan <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />.</translation>
 <translation id="5564865786900450806">Hiermee wordt de waarschuwing genegeerd die wordt weergegeven als <ph name="PRODUCT_NAME" /> wordt uitgevoerd op een computer die of besturingssysteem dat niet meer wordt ondersteund.
 
       Als dit beleid is ingesteld op False of niet is ingesteld, worden de waarschuwingen weergegeven op dergelijke niet-ondersteunde computers of besturingssystemen.</translation>
@@ -3564,6 +3548,11 @@
           De aanbevolen manier om het scherm te vergrendelen bij inacitiviteit is de schermvergrendeling in te schakelen bij tijdelijk opschorten en <ph name="PRODUCT_OS_NAME" /> tijdelijk te laten opschorten zodra de inactiviteitsdrempel is bereikt. Dit beleid mag alleen worden gebruikt wanneer de schermvergrendeling aanzienlijk eerder moet worden ingesteld dan de tijdelijke opschorting of wanneer tijdelijk opschorten bij inactiviteit helemaal niet wenselijk is.
 
           De beleidswaarde moet worden gespecificeerd in milliseconden. Waarden worden vastgezet op een lagere waarde dan de inactiviteitsdrempel.</translation>
+<translation id="6096729330325888677">Als je het beleid instelt, wordt de lijst met USB-apparaten gedefinieerd die door gebruikers mogen worden ontkoppeld van hun kernel-driver, zodat ze via de chrome.usb API rechtstreeks kunnen worden gebruikt in een web-app. Items zijn paren van de ID van de USB-leverancier en de ID van het product, zodat specifieke hardware kan worden geïdentificeerd.
+
+      Als je het beleid niet instelt, is de lijst met USB-apparaten die kunnen worden ontkoppeld leeg.
+
+      Dit beleid is verouderd. Gebruik in plaats daarvan <ph name="USB_DETACHABLE_ALLOWLIST" />.</translation>
 <translation id="6097601282776163274">Aan URL's gekoppelde, geanonimiseerde gegevens verzamelen</translation>
 <translation id="6099853574908182288">Standaard kleurenmodus voor afdrukken</translation>
 <translation id="6102342563050263313">Scrollen naar opgegeven tekst in URL-fragmenten inschakelen</translation>
@@ -4071,19 +4060,6 @@
 
       Als je dit beleid niet instelt, is de standaardoptie toegestaan voor zowel zakelijk beheerde gebruikers als niet-beheerde gebruikers.</translation>
 <translation id="6864244339257535116">Uploads en downloads van bestanden met wachtwoordbeveiliging toestaan</translation>
-<translation id="6870295914868104867">Als je het beleid instelt, wordt een lijst met apps en extensies gespecificeerd die op de achtergrond worden geïnstalleerd zonder interactie met de gebruiker en die niet kunnen worden verwijderd of uitgeschakeld door gebruikers. Rechten worden impliciet verleend, waaronder voor de extensie-API's enterprise.deviceAttributes en enterprise.platformKeys. (Deze twee API's zijn niet beschikbaar voor apps en extensies die niet afgedwongen geïnstalleerd zijn.)
-
-      Als je dit beleid niet instelt, worden apps of extensies niet automatisch geïnstalleerd en kunnen gebruikers elke app of extensie in <ph name="PRODUCT_NAME" /> verwijderen.
-
-      Dit beleid vervangt het beleid <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Als een eerder afgedwongen geïnstalleerde app of extensie wordt verwijderd uit deze lijst, verwijdert <ph name="PRODUCT_NAME" /> de app of extensie automatisch.
-
-      Voor Windows®-instanties die niet zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, is afgedwongen installatie beperkt tot apps en extensies in de Chrome Web Store.
-
-      Gebruikers kunnen de broncode van een extensie wijzigen via de ontwikkelaarstools, waardoor de extensie mogelijk niet meer functioneert. Als je je hierover zorgen maakt, moet je het beleid <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> instellen.
-
-      Elk lijstitem van het beleid is een tekenreeks die een extensie-ID en optioneel een update-URL bevat, gescheiden door een puntkomma (;). De extensie-ID is de tekenreeks van 32 letters die bijvoorbeeld op chrome://extensions kan worden gevonden als de ontwikkelaarsmodus actief is. De update-URL, indien opgegeven, moet verwijzen naar een XML-updatedocument voor het manifest (https://developer.chrome.com/extensions/autoupdate). Standaard wordt de update-URL van de Chrome Web Store gebruikt. De update-URL die in dit beleid is ingesteld, wordt alleen voor de eerste installatie gebruikt. Daaropvolgende updates van de extensie gebruiken de update-URL die in het manifest van de extensie wordt aangegeven.
-
-       Opmerking: Dit beleid is niet van toepassing op de incognitomodus. Bekijk meer informatie over het hosten van extensies (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="687046793986382807">Dit beleid wordt niet meer gebruikt sinds <ph name="PRODUCT_NAME" /> versie 35.
 
 Geheugengegevens worden in alle gevallen aan de pagina gerapporteerd, afgezien van de optiewaarde, maar de gerapporteerde grootten zijn gekwantiseerd en de snelheid van updates is om veiligheidsredenen beperkt. Om nauwkeurige realtime gegevens te verkrijgen, gebruik je tools zoals Telemetry.</translation>
@@ -4220,6 +4196,16 @@
       Als het beleid niet wordt ingesteld, wordt de plank standaard onderaan het scherm geplaatst en kan de gebruiker de positie van de plank zelf wijzigen.</translation>
 <translation id="7040229947030068419">Voorbeeldwaarde:</translation>
 <translation id="7044883996351280650">De Android-service 'Back-up maken en terugzetten' beheren</translation>
+<translation id="7063842402585660314">De lijst met apps die zijn toegestaan op het <ph name="PRODUCT_OS_NAME" />-vergrendelscherm.
+
+      Als de gewenste notitie-app is ingeschakeld op het vergrendelscherm, bevat het vergrendelscherm een UI-element om de gewenste notitie-app te starten.
+      Wanneer de app is gestart, kan deze een app-venster bovenop het vergrendelscherm maken en gegevensitems (notities) maken in de context van het vergrendelscherm. De app kan gemaakte notities importeren naar de primaire gebruikerssessie wanneer de sessie ontgrendeld is. Momenteel worden alleen Chrome-notitie-apps ondersteund op het vergrendelscherm.
+
+      Als het beleid is ingesteld, kan de gebruiker een app alleen inschakelen op het vergrendelscherm als de extensie-ID van de app is opgenomen in de beleidslijstwaarde.
+      Dit betekent dat als je dit beleid instelt op een lege lijst, het maken van notities op het vergrendelscherm volledig wordt uitgeschakeld.
+      Houd er rekening mee dat als het beleid een app-ID bevat, dit niet noodzakelijkerwijs betekent dat de gebruiker de app kan inschakelen als notitie-app op het vergrendelscherm. In Chrome 61 wordt de reeks beschikbare apps bijvoorbeeld extra beperkt door het platform.
+
+      Als het beleid niet wordt ingesteld, gelden er geen beperkingen voor de reeks apps die de gebruiker kan inschakelen op het vergrendelscherm.</translation>
 <translation id="7063895219334505671">Pop-ups toestaan ​​op deze sites</translation>
 <translation id="706669471845501145">Sites toestaan bureaubladmeldingen weer te geven</translation>
 <translation id="7068108874199666656">Hiermee kun je een netwerkconfiguratie toepassen voor alle gebruikers van een <ph name="PRODUCT_OS_NAME" />-apparaat. De netwerkconfiguratie is een tekenreeks met json-indeling, zoals gedefinieerd in de Open Network Configuration-indeling.</translation>
@@ -5127,6 +5113,7 @@
 
           Ga naar https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns voor gedetailleerde informatie over geldige URL-patronen.</translation>
 <translation id="8357681633047935212">Beperk de duur van een gebruikerssessie</translation>
+<translation id="8357989008292691856">Toelatingslijst met gebruikers die mogen inloggen</translation>
 <translation id="8359734107661430198">API voor ExampleDeprecatedFeature tot en met 02-09-2008 inschakelen</translation>
 <translation id="8367209241899435947">Chrome Cleanup inschakelen op Windows</translation>
 <translation id="8367473200119029349">Cloudrapportage</translation>
@@ -5740,11 +5727,6 @@
       De sessie van de gebruiker wordt hersteld zodra opnieuw is opgestart.</translation>
 <translation id="9160028464653564229">Geen sites toestemming geven om toegang tot seriële poorten te vragen via de Serial API</translation>
 <translation id="9167719789236691545">Drive uitschakelen in de app Bestanden van <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Als je het beleid inschakelt, wordt er een standaard zoekopdracht uitgevoerd als de gebruiker in de adresbalk tekst invoert die geen URL is. Als je de standaard zoekprovider wilt opgeven, stel je alle andere standaard zoekbeleidsregels in. Als je die zoekbeleidsregels leeg laat, kan de gebruiker zelf de standaard provider kiezen. Als je het beleid uitschakelt, wordt er geen zoekopdracht uitgevoerd als de gebruiker in de adresbalk tekst invoert die geen URL is.
-
-      Als je het beleid instelt, kunnen gebruikers het niet wijzigen in <ph name="PRODUCT_NAME" />. Als je dit beleid niet instelt, wordt de standaard zoekprovider ingeschakeld en kunnen gebruikers de lijst met zoekproviders instellen.
-
-      Opmerking: Dit beleid geldt alleen voor Windows®-instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, Windows 10 Pro of Chrome Enterprise Upgrade- en macOS-instanties die worden beheerd via MDM of aan een domein zijn gekoppeld via MCX.</translation>
 <translation id="9185107612228451403">Hiermee wordt aan extensies gerelateerd beleid geconfigureerd. De gebruiker mag geen extensies installeren die op de blacklist zijn gezet, tenzij ze op de witte lijst zijn gezet. Je kunt ook <ph name="PRODUCT_NAME" /> dwingen extensies automatisch te installeren door ze in <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> op te geven. Afgedwongen geïnstalleerde extensies worden geïnstalleerd, ongeacht of ze op de blacklist zijn gezet.</translation>
 <translation id="9187743794267626640">Koppelen van externe opslag uitschakelen</translation>
 <translation id="9190456586252617675">Met dit beleid wordt de modus voor introductie van de Assistent beheerd.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 2a156b8..fd5d7bb 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -73,6 +73,7 @@
 
       Se a política for definida como falsa ou se não for definida, as informações não serão enviadas.
       Se ela for definida como verdadeira, as informações sobre as luzes de fundo do dispositivo serão enviadas.</translation>
+<translation id="1076751984131277498">Lista de permissões de dispositivos USB removíveis</translation>
 <translation id="1079801999187584280">Não permite o uso das Ferramentas para Desenvolvedores</translation>
 <translation id="1087437665304381368">Essa política controla apenas o modo de desenvolvedor do <ph name="PRODUCT_OS_NAME" />. Se quiser impedir o acesso às Opções do desenvolvedor do Android, configure a política <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation>
 <translation id="1087707496788636333">A lista de políticas do Chrome Enterprise está de mudança. Atualize seus favoritos para <ph name="POLICY_DOCUMENTATION_URL" />.</translation>
@@ -452,13 +453,6 @@
 
       Se ela for definida como falsa, os usuários não poderão adicionar, remover ou modificar favoritos. Eles ainda poderão usar os favoritos já existentes.</translation>
 <translation id="1715151459541210849">Ativar recurso de acessibilidade de ditado</translation>
-<translation id="1717817358640580294">Se ela não for definida, e o recurso “Varredura do Chrome” detectar um software indesejado, os metadados sobre a verificação poderão ser enviados ao Google, de acordo com a política definida por SafeBrowsingExtendedReportingEnabled. Depois, será perguntado ao usuário se ele quer limpar o software indesejado na “Varredura do Chrome”. O usuário poderá optar por compartilhar resultados da limpeza com o Google para ajudar na detecção de softwares indesejados no futuro. Esses resultados contêm metadados de arquivos, extensões instaladas automaticamente e chaves de registro, conforme descrito no Relatório de Privacidade do Google Chrome.
-
-      Se estiver desativada, e o recurso “Varredura do Chrome” detectar um software indesejado, os metadados sobre a verificação não serão enviados ao Google, modificando todas as políticas definidas por SafeBrowsingExtendedReportingEnabled. Será perguntado ao usuário se ele quer limpar o software indesejado na “Varredura do Chrome”.  Os resultados da limpeza não serão enviados ao Google, e o usuário não terá a opção de fazer isso.
-
-      Se estiver ativada, e o recurso “Varredura do Chrome” detectar um software indesejado, os metadados sobre a verificação poderão ser enviados ao Google, de acordo com a política definida por SafeBrowsingExtendedReportingEnabled. Será perguntado ao usuário se ele quer limpar o software indesejado na “Varredura do Chrome”.  Os resultados da limpeza serão reportados ao Google, e o usuário não terá a opção de impedir esse envio.
-
-      Esta política está disponível apenas em instâncias do Windows associadas a um domínio <ph name="MS_AD_NAME" /> ou instâncias do Windows 10 Pro ou Enterprise inscritas no gerenciamento de dispositivos.</translation>
 <translation id="172374442286684480">Permitir que todos os sites definam dados locais</translation>
 <translation id="1736269219679256369">Permitir a continuação na página de aviso SSL</translation>
 <translation id="1745973235372964482">Não permitir arquivos protegidos por senha</translation>
@@ -531,6 +525,9 @@
 
       Se esta política não for configurada, a previsão de redes ficará ativada, e o usuário poderá alterá-la.</translation>
 <translation id="1865417998205858223">Principais permissões</translation>
+<translation id="1866563857170942397">Define a lista de usuários que têm permissão para fazer login no dispositivo. As entradas são feitas no formato <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, como <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Para permitir usuários arbitrários em um domínio, use entradas no formato <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />.
+
+      Se esta política não for configurada, não haverá restrições quanto aos usuários autorizados a fazer login. Ainda assim, a criação de novos usuários exige que a política <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> seja configurada de forma adequada.</translation>
 <translation id="186719019195685253">Ação a ser executada quando o tempo de inatividade for atingido durante operação com alimentação CA</translation>
 <translation id="187819629719252111">Permite o acesso a arquivos locais na máquina ao possibilitar que <ph name="PRODUCT_NAME" /> exiba caixas de diálogo de seleção de arquivos. Se ativar esta configuração, os usuários poderão abrir as caixas de diálogo de seleção de arquivos normalmente. Se desativar esta configuração, sempre que o usuário executar uma ação que possa gerar uma caixa de diálogo de seleção de arquivos (como importar favoritos, fazer o upload de arquivos, salvar links etc), uma mensagem será exibida em seu lugar, e será considerado como se o usuário houvesse clicado em "Cancelar" na caixa de diálogo de seleção de arquivos. Se esta configuração não for definida, os usuários poderão abrir caixas de diálogo de seleção de arquivos normalmente.</translation>
 <translation id="1885782360784839335">Ativar a exibição de conteúdo promocional em guia cheia</translation>
@@ -1370,15 +1367,6 @@
           Desativar essa configuração é o mesmo que não configurá-la. O usuário ainda poderá fazer mudanças no <ph name="PRODUCT_NAME" />.
 
           Esta política está disponível apenas em instâncias do Windows associadas a um domínio do <ph name="MS_AD_NAME" /> ou instâncias do Windows 10 Pro ou Enterprise registradas no gerenciamento de dispositivos e instâncias do macOS gerenciadas via MDM ou associadas a um domínio via MCX.</translation>
-<translation id="2982571648442031489">Configura a lista de domínios confiáveis para o "Navegação segura". Isso significa que:
-      se houver correspondência entre os URLs e os domínios na lista, o "Navegação segura" não verificará a presença de recursos perigosos (como phishing, malware ou software indesejado);
-      o serviço de proteção de download do "Navegação segura" não verificará os downloads hospedados nesses domínios;
-      o serviço de proteção de senha do "Navegação segura" não verificará a reutilização de senhas quando houver correspondência entre o URL de uma página e esses domínios.
-
-      Se essa configuração for ativada, esses domínios serão considerados confiáveis pelo "Navegação segura".
-      Se a configuração for desativada ou não for definida, a proteção padrão do "Navegação segura" será aplicada a todos os recursos.
-
-      Esta política está disponível apenas em instâncias do Windows associadas a um domínio do <ph name="MS_AD_NAME" /> ou instâncias do Windows 10 Pro ou Enterprise registradas no gerenciamento de dispositivos e instâncias do macOS gerenciadas via MDM ou associadas a um domínio via MCX.</translation>
 <translation id="2985927503455169394">Usa o modo padrão da experiência de integração do Assistente</translation>
 <translation id="2987155890997901449">Ativar ARC</translation>
 <translation id="2987227569419001736">Controla o uso da API Web Bluetooth</translation>
@@ -1495,11 +1483,6 @@
       Se a política não for definida ou for definida como false, os pacotes de criptografia DHE em TLS não serão ativados. Caso contrário, ela poderá ser configurada como true para ativar os pacotes de criptografia DHE e manter a compatibilidade com um servidor desatualizado. Esta é uma medida temporária, e o servidor deve ser reconfigurado.
 
       Os servidores são incentivados a migrar para pacotes de criptografia ECDHE. Se eles não estiverem disponíveis, ative um pacote de criptografia que use troca de chaves RSA.</translation>
-<translation id="3117706142826400449">Se esta política for desativada, ela impedirá que o recurso "Varredura do Chrome" verifique a presença de softwares indesejados no sistema e execute limpezas. O acionamento manual do "Varredura do Chrome" em chrome://settings/cleanup ficará desativado.
-
-      Se a política for ativada ou deixada sem definição, o recurso "Varredura do Chrome" verificará periodicamente a presença de softwares indesejados no sistema e, caso algum seja encontrado, perguntará ao usuário se ele quer removê-lo. O acionamento manual do "Varredura do Chrome" em chrome://settings ficará ativado.
-
-      Esta política está disponível apenas em instâncias do Windows associadas a um domínio <ph name="MS_AD_NAME" /> ou instâncias do Windows 10 Pro ou Enterprise inscritas no gerenciamento de dispositivos.</translation>
 <translation id="3119125876909100625">Permitir o upload de arquivos protegidos por senha</translation>
 <translation id="3122082892722698079">Controlar o uso de exceções de conteúdo não seguro</translation>
 <translation id="3143265893557969814">Se essa política for definida, todos os tipos de dados especificados serão excluídos da sincronização, tanto para o Google Sync quanto para a sincronização de perfil de roaming. Isso pode ser benéfico para reduzir o tamanho do perfil de roaming ou limitar o tipo de dado que será enviado aos servidores do Google Sync.
@@ -1824,6 +1807,9 @@
 <translation id="3647212518036289905">Definir a política especifica qual biblioteca GSSAPI será usada para a autenticação HTTP. Defina a política como um nome de biblioteca ou um caminho completo.
 
       Se ela não for definida, o <ph name="PRODUCT_NAME" /> usará um nome de biblioteca padrão.</translation>
+<translation id="3653234084868565720">Controla se o <ph name="PRODUCT_OS_NAME" /> permite que novas contas de usuário sejam criadas. Se esta política for definida como falsa, os usuários que ainda não têm uma conta não poderão fazer login.
+
+      Se esta política for definida como verdadeira ou não for configurada, será permitida a criação de novas contas de usuário, desde que <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> não impeça o usuário de fazer login.</translation>
 <translation id="3653237928288822292">Ícone do provedor de pesquisa padrão</translation>
 <translation id="3654906736796256792">Permite a execução do sandbox de áudio.</translation>
 <translation id="3657998022005237040">Bloquear o download de tipos de arquivos não compatíveis</translation>
@@ -2117,13 +2103,6 @@
 <translation id="4061590579642538878">Enviar informações sobre relatórios de erros.</translation>
 <translation id="4075675819066819571">Posicionar a estante no lado esquerdo da tela</translation>
 <translation id="4075864623710596000">Os nomes de host especificados nesta lista estarão isentos da verificação de política HSTS que poderia fazer upgrade de solicitações de http para https. Apenas nomes de host de etiqueta única são permitidos nesta política. Nomes de host precisam ser canonizados: todos os IDNs precisam ser convertidos no formato de etiqueta A, e todas as letras ASCII precisam ser minúsculas. Esta política se aplica apenas aos nomes de host especificados. Ela não se aplica a subdomínios dos nomes especificados.</translation>
-<translation id="4076584741592854827">Lista de tipos de arquivo que serão abertos automaticamente após o download. O separador à esquerda não pode ser incluído ao listar os tipos de arquivo. Então, liste "txt" em vez de ".txt".
-
-      Os arquivos dos tipos que precisam abrir automaticamente ainda estarão sujeitos às verificações ativadas do "Navegação segura" e não serão abertos se forem reprovados nessas verificações.
-
-      Se essa política não for configurada, apenas os tipos de arquivo que o usuário já especificou para abrir automaticamente serão abertos após o download.
-
-      Esta política está disponível apenas em instâncias do Windows associadas a um domínio do <ph name="MS_AD_NAME" /> ou instâncias do Windows 10 Pro ou Enterprise registradas no gerenciamento de dispositivos e instâncias do macOS gerenciadas via MDM ou associadas a um domínio via MCX.</translation>
 <translation id="408029843066770167">Permitir consultas a um serviço de hora do Google</translation>
 <translation id="408076456549153854">Ativar login no navegador</translation>
 <translation id="4082498585300984671">Ativar o recurso "Clique para ligar"</translation>
@@ -3166,6 +3145,11 @@
 
       Se não for especificada, a política não modificará o URL do termo-semente "Variações".</translation>
 <translation id="5561811616825571914">Seleciona certificados de cliente automaticamente para esses sites na tela de login</translation>
+<translation id="5564345250641049313">Define a lista de usuários que têm permissão para fazer login no dispositivo. As entradas são feitas no formato <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, como <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Para permitir usuários arbitrários em um domínio, use entradas no formato <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />.
+
+      Se esta política não for configurada, não haverá restrições quanto aos usuários autorizados a fazer login. Ainda assim, a criação de novos usuários exige que a política <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> seja configurada de forma adequada.
+
+      Esta política está obsoleta. Use a <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />.</translation>
 <translation id="5564865786900450806">Remove o aviso que é exibido quando o <ph name="PRODUCT_NAME" /> é executado em um computador ou sistema operacional com o qual não é mais compatível.
 
       Se esta política for definida como falsa ou não definida, os avisos aparecerão nesses computadores e sistemas operacionais incompatíveis.</translation>
@@ -3535,6 +3519,11 @@
           A forma recomendável de bloquear a tela ao se tornar inativo é ativar o bloqueio de tela para o modo de suspensão, a fim de que o <ph name="PRODUCT_OS_NAME" /> fique suspenso após o tempo de espera de inatividade. Esta política só deve ser usada quando a tela tiver que ser bloqueada muito antes de ser suspensa ou quando a suspensão em caso de inatividade não é desejada.
 
           O valor da política deve ser especificado em milissegundos. Os valores são fixados para serem menores que o tempo de espera de inatividade.</translation>
+<translation id="6096729330325888677">Se a política for definida, será configurada uma lista de dispositivos USB que o usuário pode remover do driver de kernel dele para uso pela API chrome.usb diretamente dentro de um app da Web. As entradas são pares de um identificador de fornecedor e um identificador de produto USB para reconhecer um hardware específico.
+
+      Se não for definida, a lista de dispositivo USB que podem ser removidos ficará vazia.
+
+      Esta política está obsoleta. Use a <ph name="USB_DETACHABLE_ALLOWLIST" />.</translation>
 <translation id="6097601282776163274">Ativar a coleta de dados anônimos inseridos no URL</translation>
 <translation id="6099853574908182288">Modo de cor de impressão padrão</translation>
 <translation id="6102342563050263313">Permitir rolagem para texto especificado em fragmentos de URL</translation>
@@ -4042,19 +4031,6 @@
 
       Se esta política não for definida, o padrão será permitido tanto para usuários gerenciados por empresas quanto para usuários não gerenciados.</translation>
 <translation id="6864244339257535116">Permitir upload e download de arquivos protegidos por senha</translation>
-<translation id="6870295914868104867">Se definida, a política especificará uma lista de apps e extensões com instalação silenciosa, sem interação do usuário, e que não podem ser desinstalados ou desativados. As permissões são concedidas implicitamente, inclusive para as API de extensão enterprise.deviceAttributes e enterprise.platformKeys. Essas duas APIs não estão disponíveis para apps e extensões que não sejam de instalação forçada.
-
-      Se esta política não for definida, nenhum app ou extensão será instalado automaticamente e o usuário poderá desinstalar qualquer app ou extensão no <ph name="PRODUCT_NAME" />.
-
-      Esta política substitui a <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Se um app ou extensão de instalação forçada for removido da lista, será automaticamente desinstalado pelo <ph name="PRODUCT_NAME" />.
-
-      Para instâncias do Windows® que não estão associadas a um domínio do <ph name="MS_AD_NAME" />, a instalação forçada é limitada a apps e extensões listados na Chrome Web Store.
-
-      O código-fonte de qualquer extensão pode ser mudado pelos usuários por meio das ferramentas para desenvolvedores, possivelmente prejudicando a funcionalidade da extensão. Se isso for uma preocupação, defina a política <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Cada item da lista da política é uma string que contém um ID de extensão e, opcionalmente, um URL de atualização separados por ponto e vírgula (;). O ID da extensão é a string de 32 letras encontrada, por exemplo, em chrome://extensions no modo de desenvolvedor. Se especificado, o URL de atualização apontará para um documento XML de manifesto de atualização (https://developer.chrome.com/extensions/autoupdate). Por padrão, é usado o URL de atualização da Chrome Web Store. O URL de atualização definido nesta política só é usado na instalação inicial. As atualizações subsequentes da extensão empregam o URL de atualização indicado no manifesto da extensão.
-
-       Observação: esta política não se aplica ao modo de navegação anônima. Leia sobre hospedagem de extensões (https://developer.chrome.com/extensions/hosting - em inglês).</translation>
 <translation id="687046793986382807">Esta política foi desativada a partir da versão 35 do <ph name="PRODUCT_NAME" />.
 
       De alguma forma, as informações da memória são reportadas à página, independentemente do valor da opção. No entanto, os tamanhos reportados são
@@ -4193,6 +4169,16 @@
       Se esta política não for definida, a estante será posicionada na parte inferior da tela por padrão, e o usuário poderá mudar a posição da estante.</translation>
 <translation id="7040229947030068419">Exemplo de valor:</translation>
 <translation id="7044883996351280650">Controla o serviço de backup e restauração do Android</translation>
+<translation id="7063842402585660314">A lista de apps permitidos na tela de bloqueio do <ph name="PRODUCT_OS_NAME" />.
+
+      Se o app de anotação preferido for ativado na tela de bloqueio, ela terá um elemento de IU para iniciar o app em questão.
+      Quando iniciado, o app poderá criar uma janela própria na parte superior da tela de bloqueio, além de itens de dados (anotações) no contexto dessa tela. O app poderá importar as anotações criadas para a sessão do usuário principal, quando a sessão estiver desbloqueada. Atualmente, apenas os apps de anotação do Chrome são compatíveis com a tela de bloqueio.
+
+      Se a política for definida, o usuário poderá ativar um app na tela de bloqueio apenas se o ID da extensão do app estiver contido no valor da lista da política.
+      Como consequência, a definição desta política como uma lista vazia desativará por completo a anotação na tela de bloqueio.
+      A política que contém um ID de app não indica necessariamente que o usuário poderá ativá-lo como um app de anotação na tela de bloqueio. Por exemplo, no Chrome 61, o conjunto de apps disponíveis também é restrito pela plataforma.
+
+      Se a política não for definida, não haverá restrições impostas por ela com relação ao conjunto de apps que o usuário poderá ativar na tela de bloqueio.</translation>
 <translation id="7063895219334505671">Permitir pop-ups nestes sites</translation>
 <translation id="706669471845501145">Permitir que os sites exibam notificações da área de trabalho</translation>
 <translation id="7068108874199666656">Permite que a configuração de rede seja aplicada a todos os usuários de dispositivos <ph name="PRODUCT_OS_NAME" />. A configuração de rede é uma string formatada em JSON, conforme definido pelo formato Open Network Configuration.</translation>
@@ -5091,6 +5077,7 @@
 
           Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8357681633047935212">Limitar a duração de uma sessão de usuário</translation>
+<translation id="8357989008292691856">Lista de permissões de login de usuário</translation>
 <translation id="8359734107661430198">Ativar a API ExampleDeprecatedFeature até 02/09/2008</translation>
 <translation id="8367209241899435947">Ativa o recurso "Varredura do Chrome" no Windows</translation>
 <translation id="8367473200119029349">Relatórios de nuvem</translation>
@@ -5711,11 +5698,6 @@
       A sessão do usuário é restaurada após a reinicialização.</translation>
 <translation id="9160028464653564229">Não permitir que nenhum site solicite acesso a portas seriais por meio da API Serial</translation>
 <translation id="9167719789236691545">Desativar o Drive no app Arquivos do <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Se a política for definida como ativada, uma pesquisa padrão será realizada quando o usuário digitar um texto na barra de endereço que não seja um URL. Para especificar o provedor de pesquisa padrão, configure o restante das políticas de pesquisa padrão. Se essas políticas forem deixadas em branco, o usuário poderá escolher o provedor padrão. Se a política for definida como desativada, nenhuma pesquisa será realizada quando o usuário digitar um texto na barra de endereço que não seja um URL.
-
-      Se você definir a política, os usuários não poderão mudá-la no <ph name="PRODUCT_NAME" />. Se ela não for definida, o provedor de pesquisa padrão ficará ativado e o usuário poderá definir a lista de provedores de pesquisa.
-
-      Observação: esta política está disponível apenas em instâncias do Windows® associadas a um domínio do <ph name="MS_AD_NAME" />, Windows 10 Pro ou Upgrade do Chrome Enterprise e instâncias do macOS gerenciadas via MDM ou associadas a um domínio via MCX.</translation>
 <translation id="9185107612228451403">Configura as políticas relacionadas a extensões. O usuário não tem permissão para instalar extensões que estejam em uma lista de proibições, a menos que elas sejam colocadas na lista de permissões. Você também pode forçar o <ph name="PRODUCT_NAME" /> a instalar extensões automaticamente especificando-as na <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. As extensões instaladas à força são instaladas independentemente de estarem presentes na lista de proibições.</translation>
 <translation id="9187743794267626640">Desativa a montagem de armazenamento externo</translation>
 <translation id="9190456586252617675">Esta política controla o modo da experiência de integração do Assistente.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index c30d05ed5..ea8b1d7 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -146,7 +146,7 @@
 <translation id="11903325225202653">Если для правила задано значение True, режим высокой контрастности будет всегда включен. Если для правила задано значение False, режим высокой контрастности будет всегда выключен.
 
       Если вы настроите правило, пользователи не смогут изменить этот параметр. Если правило не задано, режим высокой контрастности будет выключен, но пользователи в любое время смогут включить его.</translation>
-<translation id="1192875037379495940">Если правило настроено, то во время указанного сеанса будет выполнен автоматический вход в локальный аккаунт при бездействии пользователя в течение времени, заданного в параметре <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_DELAY_POLICY_NAME" />. Локальный аккаунт необходимо настроить заранее (см. <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" />).
+<translation id="1192875037379495940">Если правило настроено, то во время указанного сеанса будет выполнен автоматический вход в локальный аккаунт при бездействии пользователя в течение времени, заданного в правиле <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_DELAY_POLICY_NAME" />. Локальный аккаунт необходимо настроить заранее (см. <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" />).
 
       Если правило не настроено, автоматический вход выполняться не будет.</translation>
 <translation id="1197437816436565375">Для Android-приложений невозможно задать принудительное использование прокси-сервера. Приложения сами решают, делать это или нет, поскольку им доступна часть его настроек. Подробные сведения об этом можно найти в правиле <ph name="PROXY_MODE_POLICY_NAME" />.</translation>
@@ -463,13 +463,6 @@
 
       Если задано значение False, пользователи не смогут выполнять эти действия, но сохранят доступ к существующим закладкам.</translation>
 <translation id="1715151459541210849">Включить голосовой ввод (специальная возможность)</translation>
-<translation id="1717817358640580294">Если это правило не настроено, при обнаружении нежелательного ПО с помощью инструмента очистки Chrome метаданные сканирования могут быть переданы в Google в соответствии с правилом SafeBrowsingExtendedReportingEnabled. Пользователь увидит запрос на удаление нежелательного ПО и сможет сам принять решение, отправлять ли в Google отчет, чтобы улучшить функцию обнаружения нежелательного ПО. Отчет включает автоматически установленные расширения, метаданные файла и ключи реестра в соответствии с Технической документацией о конфиденциальности в Google Chrome.
-
-      Если правило отключено, при обнаружении нежелательного ПО метаданные сканирования не будут переданы в Google, независимо от настроек правила SafeBrowsingExtendedReportingEnabled. Появится запрос на удаление нежелательного ПО.  Отчет о проверке не будет отправлен, и пользователь не сможет на это повлиять.
-
-      Если правило включено, при обнаружении нежелательного ПО метаданные сканирования могут быть переданы в Google в соответствии с правилом SafeBrowsingExtendedReportingEnabled. Появится запрос на удаление нежелательного ПО.  Отчет о проверке будет отправлен в Google, и пользователь не сможет на это повлиять.
-
-      Правило можно установить только на устройствах Windows, входящих в домен <ph name="MS_AD_NAME" />, а также на устройствах Windows 10 Pro или Enterprise, зарегистрированных в консоли администратора.</translation>
 <translation id="172374442286684480">Разрешить всем сайтам сохранять локальные данные</translation>
 <translation id="1736269219679256369">Разрешить переход со страницы предупреждения SSL</translation>
 <translation id="1745973235372964482">Не разрешать загрузку и скачивание файлов, защищенных паролем</translation>
@@ -1033,7 +1026,7 @@
 
           Эта функция может работать некорректно на сайтах, которые не рассчитаны на кеширование. В частности, это касается сайтов, где используются обработчики события "переход со страницы" (unload handler), поскольку это событие не срабатывает и страница сохраняется в кеше back-forward.
 
-          Если это правило включено или не определено, функция "<ph name="PRODUCT_NAME" />" будет включена.
+          Если это правило включено или не определено, функция <ph name="PRODUCT_NAME" /> будет включена.
 
           Если правило отключено, функция будет также отключена.
           </translation>
@@ -1370,15 +1363,6 @@
           Если настройка отключена, это эквивалентно ее отсутствию. При этом пользователи смогут устанавливать свои настройки в <ph name="PRODUCT_NAME" />.
 
           Правило можно использовать только на устройствах Windows, входящих в домен <ph name="MS_AD_NAME" />, на устройствах Windows 10 Pro или Enterprise с регистрацией в консоли администратора, а также на устройствах macOS, которые контролируются с помощью управления мобильными устройствами или добавлены в домен через MCX.</translation>
-<translation id="2982571648442031489">Настраивает список доверенных доменов для режима безопасного просмотра. Что это означает
-      Фишинговые или ресурсы с вредоносным или нежелательным ПО не будут проверяться в режиме безопасного просмотра, если URL будет содержать один из доменов, указанных в этом списке.
-      Файлы, скачанные из этих доменов, не будут проверяться службой защиты загрузок.
-      Если URL страницы будет содержать один из доверенных доменов, служба защиты паролей не будет следить за повторным использованием паролей.
-
-      Если этот параметр включен, доверенные домены не проверяются в режиме безопасного просмотра.
-      Если параметр не установлен или отключен, функция безопасного просмотра по умолчанию проверяет все ресурсы.
-
-      Правило можно использовать только на устройствах Windows, входящих в домен <ph name="MS_AD_NAME" />, на устройствах Windows 10 Pro или Enterprise с регистрацией в консоли администратора, а также на устройствах macOS, которые контролируются с помощью управления мобильными устройствами или добавлены в домен через MCX.</translation>
 <translation id="2985927503455169394">Использовать стандартный режим знакомства с Ассистентом</translation>
 <translation id="2987155890997901449">Включить ARC</translation>
 <translation id="2987227569419001736">Контроль использования Web Bluetooth API</translation>
@@ -1475,7 +1459,7 @@
 
        Если правило отключено или не настроено, сторонний контент на странице не может открывать всплывающее окно для базовой HTTP-аутентификации.
 
-      Обычно его отключают в целях защиты от фишинга.</translation>
+      Обычно это правило отключают в целях защиты от фишинга.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3066446511111537292">Разрешить связанным пользователям устанавливать на устройство приложения из неизвестного источника с помощью adb</translation>
 <translation id="3069958900488014740">Позволяет отключить оптимизацию протокола WPAD (Web Proxy Auto-Discovery) в <ph name="PRODUCT_NAME" />.
@@ -1495,11 +1479,6 @@
       Если правило не настраивать или выбрать значение False, наборы шифров DCE в TLS включены не будут. Если указать значение True, совместимость с устаревшим сервером и шифрами сохранится. Однако помните, что это временная мера и сервер нужно перенастроить.
 
       Рекомендуем перейти на шифры ECDHE. Если это невозможно, используйте шифр, поддерживающий обмен ключами RSA.</translation>
-<translation id="3117706142826400449">Если правило отключено, инструмент очистки Chrome не будет запускаться для сканирования системы, обнаружения нежелательного ПО и проведения очистки. Ручной запуск инструмента из chrome://settings/cleanup также будет отключен.
-
-      Если правило включено или не настроено, инструмент очистки Chrome будет периодически запускаться для сканирования системы и присылать пользователю запросы на удаление нежелательного ПО при его обнаружении. Ручной запуск инструмента из chrome://settings будет включен.
-
-      Правило можно установить только на устройствах Windows, входящих в домен <ph name="MS_AD_NAME" />, а также на устройствах Windows 10 Pro или Enterprise, зарегистрированных в консоли администратора.</translation>
 <translation id="3119125876909100625">Разрешить загрузку файлов, защищенных паролем</translation>
 <translation id="3122082892722698079">Контроль использования исключений для небезопасного контента</translation>
 <translation id="3143265893557969814">Если настроить это правило, для всех указанных в нем типов данных будет запрещена синхронизация как в Google Sync, так и в перемещаемом профиле. Таким образом можно уменьшить объем информации в перемещаемом профиле или ограничить типы данных, загружаемых на серверы Google Sync.
@@ -2127,13 +2106,6 @@
 <translation id="4061590579642538878">Передача информации из отчетов о сбое</translation>
 <translation id="4075675819066819571">Расположить панель запуска с левой стороны экрана</translation>
 <translation id="4075864623710596000">Для имен хостов, указанных в списке этого правила, не будет проверяться использование механизма HSTS (он позволяет изменить протокол, по которому осуществляются запросы, с HTTP на HTTPS). В списке правила могут быть только одноуровневые имена. Имена хостов необходимо нормализовать: доменные имена, содержащие символы национальных алфавитов, должны быть преобразованы в формат A-Label, а буквы из таблицы ASCII должны быть строчными. Это правило действует только для определенных имен хостов, указанных в списке. На субдомены оно не распространяется.</translation>
-<translation id="4076584741592854827">Список типов файлов, которые будут автоматически открываться после скачивания. Тип файла нужно указывать без разделителя, например "txt", а не ".txt".
-
-      Если включен Безопасный просмотр, файлы по-прежнему будут сначала проверяться с помощью этой функции. Файлы, не прошедшие проверку, не будут открываться автоматически.
-
-      Если правило не настроено, после скачивания будут автоматически открываться только уже указанные пользователем типы файлов.
-
-      Правило можно использовать только на устройствах Windows, входящих в домен <ph name="MS_AD_NAME" />, на устройствах Windows 10 Pro или Enterprise с регистрацией в консоли администратора, а также на устройствах macOS, которые контролируются с помощью управления мобильными устройствами или добавлены в домен через MCX.</translation>
 <translation id="408029843066770167">Разрешить отправлять запросы в службу времени Google</translation>
 <translation id="408076456549153854">Включить вход в браузере</translation>
 <translation id="4082498585300984671">Включение функции вызова по нажатию</translation>
@@ -2516,12 +2488,12 @@
 <translation id="4668325077104657568">Настройка изображений по умолчанию</translation>
 <translation id="4668497019777708116">Определяет список приложений для заметок, которые могут работать на заблокированном экране <ph name="PRODUCT_OS_NAME" />.
 
-      Если приложение соответствует правилу, для его запуска появится специальный элемент интерфейса на заблокированном экране.
-      При запуске приложение сможет открывать окно поверх заблокированного экрана и создавать элементы данных (заметки), а также импортировать созданные заметки в сеанс основного пользователя после разблокировки. В настоящий момент на заблокированном экране работают только приложения для заметок Chrome.
+      Если приложение есть в списке, для его запуска появится специальный элемент интерфейса на заблокированном экране.
+      При запуске приложение сможет открывать окно поверх заблокированного экрана и создавать объекты данных (заметки), а также импортировать созданные заметки в сеанс основного пользователя после разблокировки. В настоящий момент на заблокированном экране работают только приложения для заметок Chrome.
 
       Если правило настроено, пользователь сможет включать приложения на заблокированном экране, только если их идентификаторы расширений есть в списке правила.
-      Следовательно, если в правиле задан пустой список приложений, делать заметки при заблокированном экране будет нельзя.
-      Обратите внимание: если идентификатор приложения присутствует в списке правила, это не гарантирует, что пользователь сможет использовать это приложение для заметок на заблокированном экране. Например, в Chrome 61 список доступных приложений дополнительно ограничен самой платформой.
+      Следовательно, если в правиле задан пустой список приложений, создавать заметки при заблокированном экране будет нельзя.
+      Примечание. Если идентификатор приложения присутствует в списке правила, это не гарантирует, что пользователь сможет использовать это приложение для создания заметок на заблокированном экране. Например, в Chrome 61 список доступных приложений дополнительно ограничен самой платформой.
 
       Если правило не настроено, пользователь сможет включить неограниченное количество приложений на заблокированном экране.
 
@@ -3288,7 +3260,7 @@
 <translation id="5676740747107495269">Показывать специальные возможности в области уведомлений на экране входа</translation>
 <translation id="5679540979548648200">Запретить устанавливать на устройство приложения из неизвестного источника с помощью adb. Если ранее установка из неизвестного источника была разрешена, принудительно использовать функцию Powerwash.</translation>
 <translation id="5689430183304951538">Размер страницы для печати по умолчанию</translation>
-<translation id="5691637243722588222">Правило позволяет указать, какие протоколы HTTP-аутентификации поддерживает <ph name="PRODUCT_NAME" />.
+<translation id="5691637243722588222">Правило позволяет указать, какие схемы HTTP-аутентификации поддерживает <ph name="PRODUCT_NAME" />.
 
       Если правило не настроено, используются все 4 схемы.
 
@@ -3871,7 +3843,7 @@
       Если правило не настроено, пользователям разрешается использовать любые установленные в системе плагины, за исключением несовместимых (хотя и заданных в коде), а также устаревших и вредоносных.</translation>
 <translation id="6571871508154591774">Отключить камеру, настройки браузера и доступ к настройкам ОС</translation>
 <translation id="6573305661369899995">Установить внешний источник ограничений для URL-адресов</translation>
-<translation id="6575944031719151455">Правило позволяет задать список локальных аккаунтов, привязанных к устройству, отображаемых на странице входа. Каждый аккаунт имеет свой идентификатор.
+<translation id="6575944031719151455">Правило позволяет задать список локальных аккаунтов, привязанных к устройству и отображаемых на странице входа. Каждый аккаунт имеет свой идентификатор.
 
       Если правило не настроено или список пуст, значит локальных аккаунтов, привязанных к устройству, нет.</translation>
 <translation id="6583851521569686409">Позволяет настроить список принтеров.
@@ -4078,19 +4050,6 @@
 
       Если правило не задано, по умолчанию настройка включена независимо от того, управляют ли аккаунтом того или иного пользователя администраторы организации.</translation>
 <translation id="6864244339257535116">Разрешить загрузку и скачивание файлов, защищенных паролем</translation>
-<translation id="6870295914868104867">Это правило позволяет указать список приложений и расширений, которые устанавливаются без участия пользователя и которые нельзя удалить или отключить. При этом неявным образом предоставляются разрешения, в том числе для двух API расширений: enterprise.deviceAttributes и enterprise.platformKeys. Эти API доступны только для приложений или расширений, устанавливаемых принудительно.
-
-      Если правило не настроено, приложения и расширения не устанавливаются автоматически и пользователи могут удалять любые приложения и расширения из <ph name="PRODUCT_NAME" />.
-
-      Это правило имеет приоритет над правилом <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Если убрать принудительно установленное приложение или расширение из списка, <ph name="PRODUCT_NAME" /> автоматически удалит его.
-
-      Для устройств с Windows®, не входящих в домен <ph name="MS_AD_NAME" />, настроить принудительную установку можно только для приложений и расширений, доступных в Интернет-магазине Chrome.
-
-      Инструменты разработчика позволяют пользователям изменять код расширений, что может привести к сбоям. Чтобы избежать таких ситуаций, используйте правило <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      В каждой строке, задаваемой в правиле, указывается идентификатор расширения и может содержаться URL обновления, отделенный точкой с запятой (;). Идентификатор расширения – это строка из 32 символов, которую можно найти, например, на странице chrome://extensions, открыв ее в режиме разработчика. URL обновления (если он присутствует) должен указывать на манифест обновления в формате XML ( https://developer.chrome.com/extensions/autoupdate ). По умолчанию для обновления используется URL Интернет-магазина Chrome. Приведенный в этом правиле URL обновления используется только во время первоначальной установки. В дальнейшем применяется URL, указанный в манифесте расширения.
-
-       Обратите внимание, что это правило не действует в режиме инкогнито. Подробнее о хостинге расширений: https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="687046793986382807">Это правило не действует в <ph name="PRODUCT_NAME" />, начиная с версии 35.
 
       Информация о памяти передается на страницу в любом случае, независимо от заданного
@@ -5702,7 +5661,7 @@
 <translation id="9096086085182305205">Белый список аутентификации сервера</translation>
 <translation id="9105265795073104888">Приложениям Android доступна только часть параметров конфигурации прокси-сервера. Вы не можете принудить приложения Android использовать прокси-сервер. Приложения сами определяют, делать это или нет.</translation>
 <translation id="9106865192244721694">Разрешить WebUSB на этих сайтах.</translation>
-<translation id="9109086856618439290">Показывать Условия использования при первом запуске для CCT и PWA</translation>
+<translation id="9109086856618439290">Показ Условий использования при первом запуске для CCT и PWA</translation>
 <translation id="9112727953998243860">Файл конфигурации корпоративных принтеров</translation>
 <translation id="9117826695152538214">Если для правила задано значение True, залипание клавиш будет всегда включено. Если для правила задано значение False, залипание клавиш будет всегда выключено.
 
@@ -5747,11 +5706,6 @@
       После перезапуска сеанс пользователя восстанавливается.</translation>
 <translation id="9160028464653564229">Не разрешать сайтам запрашивать доступ к серийным портам через Serial API</translation>
 <translation id="9167719789236691545">Отключить Google Диск в приложении "Файлы" (<ph name="PRODUCT_OS_NAME" />)</translation>
-<translation id="917514578273777202">Если это правило включено, то в поисковой системе по умолчанию будет выполняться поиск текста, введенного в адресную строку (если он не является URL). Задать поисковую систему по умолчанию можно с помощью других правил. Если значения для этих правил не установлены, пользователь может сам выбрать поисковую систему по умолчанию. Если это правило отключено, то поиск текста, введенного в адресную строку, не выполняется.
-
-      Если вы настроили это правило, пользователи не смогут его изменить в <ph name="PRODUCT_NAME" />. Если оно не настроено, будет работать поиск по умолчанию и пользователи смогут самостоятельно выбирать поисковые системы.
-
-      Примечание. Это правило можно использовать только на устройствах Windows®, входящих в домен <ph name="MS_AD_NAME" />, на устройствах Windows 10 Pro или устройствах с лицензией Chrome Enterprise, а также на устройствах macOS, которые контролируются с помощью управления мобильными устройствами или добавлены в домен через MCX.</translation>
 <translation id="9185107612228451403">Позволяет настроить правила, касающиеся расширений. Пользователям запрещается устанавливать расширения из черного списка, пока они не будут перенесены в белый список. <ph name="PRODUCT_NAME" /> может принудительно устанавливать расширения (в том числе внесенные в черный список). Для этого их необходимо перечислить в правиле <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />.</translation>
 <translation id="9187743794267626640">Запрет подключения внешнего хранилища</translation>
 <translation id="9190456586252617675">Это правило определяет, как пользователи знакомятся с возможностями Ассистента.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index a0da3b2..6e60014 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -455,13 +455,6 @@
 
       การตั้งค่านโยบายเป็น "เท็จ" หมายความว่าผู้ใช้จะเพิ่ม แก้ไข หรือนำบุ๊กมาร์กออกไม่ได้ แต่ยังใช้บุ๊กมาร์กที่มีได้</translation>
 <translation id="1715151459541210849">เปิดใช้ฟีเจอร์การช่วยเหลือพิเศษสำหรับการเขียนตามคำบอก</translation>
-<translation id="1717817358640580294">หากไม่ได้ตั้งค่า เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบอาจรายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google เพื่อให้สอดคล้องกับนโยบายซึ่งกำหนดโดย SafeBrowsingExtendedReportingEnabled จากนั้นการทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ไม่พึงประสงค์ออกไหม ผู้ใช้มีสิทธิ์เลือกแชร์ผลการทำความสะอาดกับ Google เพื่อช่วยในการตรวจจับซอฟต์แวร์ไม่พึงประสงค์ในอนาคต ผลลัพธ์จะมีข้อมูลเมตาของไฟล์ ส่วนขยายที่ติดตัั้งอัตโนมัติ และคีย์รีจิสทรีตามที่อธิบายไว้ในสมุดปกขาวเรื่องความเป็นส่วนตัวของ Chrome
-
-      หากปิดใช้ เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบจะไม่รายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google โดยจะลบล้างนโยบายใดๆ ที่ตั้งค่าไว้โดย SafeBrowsingExtendedReportingEnabled การทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ไม่พึงประสงค์ออกไหม  ระบบจะไม่รายงานผลลัพธ์ของการทำความสะอาดไปยัง Google และผู้ใช้ก็จะไม่มีตัวเลือกในการรายงานด้วย
-
-      หากเปิดใช้ เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบอาจรายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google เพื่อให้สอดคล้องกับนโยบายซึ่งกำหนดโดย SafeBrowsingExtendedReportingEnabled การทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ไม่พึงประสงค์ออกไหม  ระบบจะรายงานผลการทำความสะอาดไปยัง Google และผู้ใช้จะไม่มีตัวเลือกในการระงับการรายงานนี้
-
-      นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ Windows ซึ่งเข้าร่วมโดเมน <ph name="MS_AD_NAME" /> หรืออินสแตนซ์ Windows 10 Pro หรือ Enterprise ที่เข้าร่วมการจัดการอุปกรณ์</translation>
 <translation id="172374442286684480">อนุญาตให้ทุกไซต์ตั้งค่าข้อมูลภายในเครื่อง</translation>
 <translation id="1736269219679256369">อนุญาตให้ดำเนินการจากหน้าคำเตือน SSL</translation>
 <translation id="1745973235372964482">ไม่อนุญาตไฟล์ที่ป้องกันด้วยรหัสผ่าน</translation>
@@ -1359,14 +1352,6 @@
           การปิดใช้การตั้งค่านี้จะเท่ากับการไม่ได้กำหนดการตั้งค่า ผู้ใช้จะยังคงเปลี่ยนการตั้งค่านี้ได้ใน <ph name="PRODUCT_NAME" />
 
           นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ Windows ซึ่งเข้าร่วมโดเมน <ph name="MS_AD_NAME" /> หรืออินสแตนซ์ Windows 10 Pro หรือ Enterprise ที่เข้าร่วมการจัดการอุปกรณ์ และอินสแตนซ์ macOS ที่ได้รับการจัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX</translation>
-<translation id="2982571648442031489">กำหนดค่ารายการโดเมนที่ Google Safe Browsing จะเชื่อถือ ซึ่งหมายความว่า Google Safe Browsing จะไม่ตรวจหาทรัพยากรที่เป็นอันตราย (เช่น ฟิชชิง มัลแวร์ หรือซอฟต์แวร์ไม่พึงประสงค์) หาก URL ของทรัพยากรตรงกับโดเมนเหล่านี้
-      บริการปกป้องการดาวน์โหลดของ Google Safe Browsing จะไม่ตรวจสอบการดาวน์โหลดที่โฮสต์ในโดเมนเหล่านี้
-      บริการปกป้องรหัสผ่านของ Google Safe Browsing จะไม่ตรวจสอบการใช้รหัสผ่านซ้ำหาก URL ของหน้าเว็บตรงกับโดเมนเหล่านี้
-
-      หากเปิดใช้การตั้งค่านี้ Google Safe Browsing จะเชื่อถือโดเมนเหล่านี้
-      หากปิดใช้การตั้งค่านี้หรือไม่ได้ตั้งค่า ระบบจะใช้การปกป้องด้วย Google Safe Browsing ที่เป็นค่าเริ่มต้นกับทรัพยากรทั้งหมด
-
-      นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ Windows ซึ่งเข้าร่วมโดเมน <ph name="MS_AD_NAME" /> หรืออินสแตนซ์ Windows 10 Pro หรือ Enterprise ที่เข้าร่วมการจัดการอุปกรณ์ และอินสแตนซ์ macOS ที่ได้รับการจัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX</translation>
 <translation id="2985927503455169394">ใช้โหมดเริ่มต้นของการเริ่มต้นใช้งาน Assistant</translation>
 <translation id="2987155890997901449">เปิดใช้ ARC</translation>
 <translation id="2987227569419001736">ควบคุมการใช้ Web Bluetooth API</translation>
@@ -1483,11 +1468,6 @@
       หากไม่มีการตั้งค่านโยบายนี้หรือตั้งค่าเป็น False จะทำให้ไม่มีการเปิดใช้ชุดเข้ารหัส DHE ใน TLS มิเช่นนั้น อาจตั้งค่าเป็น True เพื่อเปิดใช้ชุดเข้ารหัส DHE และรักษาความเข้ากันได้กับเซิร์ฟเวอร์ที่ล้าสมัย ซึ่งการดำเนินการนี้เป็นเพียงมาตรการชั่วคราวและควรกำหนดค่าเซิร์เวอร์อีกครั้ง
 
       ควรย้ายเซิร์ฟเวอร์ไปยังชุดเข้ารหัส ECDHE แต่หากไม่มี ให้ตรวจสอบว่าเปิดใช้ชุดเข้ารหัสที่ใช้กลไกการแลกเปลี่ยนคีย์ RSA อยู่</translation>
-<translation id="3117706142826400449">หากปิดใช้ จะป้องกันไม่ให้การทำความสะอาด Chrome สแกนระบบเพื่อหาซอฟต์แวร์ที่ไม่พึงประสงค์และทำความสะอาด ระบบจะปิดการเรียกใช้การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings/cleanup
-
-      หากเปิดใช้หรือไม่ได้ตั้งค่า การทำความสะอาด Chrome จะสแกนหาซอฟต์แวร์ไม่พึงประสงค์ในระบบอยู่เป็นระยะ และหากพบ ก็จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ดังกล่าวออกไหม ระบบจะเปิดการเรียกใช้การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings
-
-      นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ Windows ซึ่งเข้าร่วมโดเมน <ph name="MS_AD_NAME" /> หรืออินสแตนซ์ Windows 10 Pro หรือ Enterprise ที่เข้าร่วมการจัดการอุปกรณ์</translation>
 <translation id="3119125876909100625">อนุญาตการอัปโหลดไฟล์ที่ป้องกันด้วยรหัสผ่าน</translation>
 <translation id="3122082892722698079">ควบคุมการใช้ข้อยกเว้นเนื้อหาที่ไม่ปลอดภัย</translation>
 <translation id="3143265893557969814">หากตั้งค่านโยบายนี้ ประเภทข้อมูลที่ระบุไว้ทั้งหมดจะถูกยกเว้นจากการซิงค์ข้อมูลทั้งสำหรับ Google Sync และการซิงค์ข้อมูลโปรไฟล์โรมมิ่ง วิธีนี้อาจช่วยลดขนาดของโปรไฟล์โรมมิ่งหรือจำกัดประเภทข้อมูลที่อัปโหลดไปยังเซิร์ฟเวอร์ Google Sync
@@ -2104,13 +2084,6 @@
 <translation id="4061590579642538878">รายงานข้อมูลเกี่ยวกับรายงานข้อขัดข้อง</translation>
 <translation id="4075675819066819571">กำหนดตำแหน่งชั้นวางให้อยู่ที่ด้านซ้ายของหน้าจอ</translation>
 <translation id="4075864623710596000">ชื่อโฮสต์ที่ระบุไว้ในรายการนี้จะได้รับการยกเว้นไม่ต้องรับการตรวจสอบตามนโยบาย HSTS ที่อาจอัปเกรดคำขอจาก HTTP เป็น HTTPS นโยบายนี้อนุญาตเฉพาะชื่อโฮสต์ที่ติดป้ายกำกับป้ายเดียวเท่านั้น ชื่อโฮสต์ต้องกำหนดเป็น Canonical ซึ่งหมายความว่าต้องแปลง IDN ทั้งหมดเป็นรูปแบบ A-label และตัวอักษร ASCII ทั้งหมดต้องเป็นตัวพิมพ์เล็ก นโยบายนี้มีผลเฉพาะกับชื่อโฮสต์ที่ระบุไว้บางรายการเท่านั้น ไม่ใช่กับโดเมนย่อยของชื่อที่ระบุ</translation>
-<translation id="4076584741592854827">รายการของประเภทไฟล์ที่ควรเปิดโดยอัตโนมัติเมื่อดาวน์โหลดเสร็จ ไม่ควรใส่ตัวคั่นข้างหน้าเมื่อระบุประเภทไฟล์ เช่น ให้ใช้ "txt" แทน ".txt"
-
-      ไฟล์ประเภทที่ควรเปิดโดยอัตโนมัติยังจะต้องผ่านการตรวจสอบของ Google Safe Browsing ที่เปิดใช้อยู่ และระบบจะไม่เปิดไฟล์หากไม่ผ่านการตรวจสอบ
-
-      หากไม่ได้ตั้งค่านโยบาย ประเภทไฟล์ที่ผู้ใช้ระบุไว้แล้วว่าให้เปิดโดยอัตโนมัติเท่านั้นจึงจะเปิดโดยอัตโนมัติเมื่อดาวน์โหลดเสร็จ
-
-      นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ Windows ซึ่งเข้าร่วมโดเมน <ph name="MS_AD_NAME" /> หรืออินสแตนซ์ Windows 10 Pro หรือ Enterprise ที่เข้าร่วมการจัดการอุปกรณ์ และอินสแตนซ์ macOS ที่ได้รับการจัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX</translation>
 <translation id="408029843066770167">อนุญาตคำค้นหาที่ส่งไปยังบริการเวลาของ Google</translation>
 <translation id="408076456549153854">เปิดใช้การลงชื่อเข้าใช้เบราว์เซอร์</translation>
 <translation id="4082498585300984671">เปิดใช้ฟีเจอร์คลิกเพื่อโทร</translation>
@@ -4039,19 +4012,6 @@
 
       หากไม่ได้ตั้งค่านโยบายนี้ ทั้งผู้ใช้ที่มีองค์กรเป็นผู้จัดการและผู้ใช้ที่ไม่มีการจัดการจะใช้ค่าเริ่มต้นได้</translation>
 <translation id="6864244339257535116">อนุญาตทั้งการอัปโหลดและการดาวน์โหลดไฟล์ที่ป้องกันด้วยรหัสผ่าน</translation>
-<translation id="6870295914868104867">การตั้งค่านโยบายนี้จะระบุรายชื่อแอปและส่วนขยายที่ติดตั้งแบบเงียบ (ไม่ต้องมีการโต้ตอบจากผู้ใช้) และผู้ใช้จะถอนการติดตั้งหรือปิดใช้ไม่ได้ ระบบจะให้สิทธิ์โดยปริยาย ซึ่งรวมถึงสิทธิ์การใช้ API ของส่วนขยาย enterprise.deviceAttributes และ enterprise.platformKeys (API ทั้งสองนี้ใช้ไม่ได้กับแอปและส่วนขยายที่ไม่ได้บังคับติดตั้ง)
-
-      หากไม่ตั้งค่านโยบายนี้ จะไม่มีแอปหรือส่วนขยายใดที่ติดตั้งโดยอัตโนมัติ และผู้ใช้จะถอนการติดตั้งแอปหรือส่วนขยายใดก็ได้ใน <ph name="PRODUCT_NAME" />
-
-      นโยบายนี้มีผลแทนนโยบาย <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> หากมีการนำแอปหรือส่วนขยายที่บังคับติดตั้งก่อนหน้านี้ออกจากรายชื่อนี้ <ph name="PRODUCT_NAME" /> จะถอนการติดตั้งแอปหรือส่วนขยายนั้นโดยอัตโนมัติ
-
-      สำหรับอินสแตนซ์ Windows® ที่ไม่ได้เข้าร่วมโดเมน <ph name="MS_AD_NAME" /> การติดตั้งที่บังคับจะจำกัดอยู่ที่แอปและส่วนขยายใน Chrome เว็บสโตร์เท่านั้น
-
-      ผู้ใช้จะแก้ไขซอร์สโค้ดของส่วนขยายใดๆ ผ่านเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ได้ ซึ่งอาจทำให้ส่วนขยายทำงานผิดปกติ หากกังวลว่าจะเกิดปัญหานี้ขึ้น ให้ตั้งค่านโยบาย <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />
-
-      แต่ละรายการของนโยบายเป็นสตริงที่มีรหัสส่วนขยาย และอาจมี URL "อัปเดต" ที่คั่นด้วยอัฒภาค (;) รหัสส่วนขยายคือสตริงตัวอักษร 32 ตัว เช่น ที่พบใน chrome://extensions เมื่ออยู่ในโหมดนักพัฒนาซอฟต์แวร์ URL "อัปเดต" (หากระบุไว้) ควรชี้ไปยังเอกสาร XML ไฟล์ Manifest ของการอัปเดต (https://developer.chrome.com/extensions/autoupdate) ระบบจะใช้ URL อัปเดตของ Chrome เว็บสโตร์โดยค่าเริ่มต้น URL "อัปเดต" ที่กำหนดไว้ในนโยบายนี้จะใช้สำหรับการติดตั้งครั้งแรกเท่านั้น ส่วนการอัปเดตส่วนขยายในครั้งต่อๆ ไปจะใช้ URL อัปเดตในไฟล์ Manifest ของส่วนขยาย
-
-       หมายเหตุ: นโยบายนี้ไม่มีผลกับโหมดไม่ระบุตัวตน อ่านเกี่ยวกับการโฮสต์ส่วนขยาย (https://developer.chrome.com/extensions/hosting)</translation>
 <translation id="687046793986382807">นโยบายนี้เลิกใช้งานแล้วนับตั้งแต่ <ph name="PRODUCT_NAME" /> เวอร์ชัน 35
 
       อย่างไรก็ตาม ข้อมูลหน่วยความจำจะได้รับการรายงานบนหน้า ไม่ว่าค่าของตัวเลือกจะเป็นอย่างไร แต่ขนาดที่รายงาน
@@ -5710,11 +5670,6 @@
       ระบบจะคืนค่าเซสชันของผู้ใช้หลังการเปิดใหม่/รีสตาร์ท</translation>
 <translation id="9160028464653564229">ไม่อนุญาตให้เว็บไซต์ใดๆ ขอสิทธิ์เข้าถึงพอร์ตอนุกรมผ่าน Serial API</translation>
 <translation id="9167719789236691545">ปิดใช้ไดรฟ์ในแอป Files ของ <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">หากตั้งค่านโยบายเป็น "เปิดใช้" ระบบจะทำการค้นหาที่เป็นค่าเริ่มต้นเมื่อผู้ใช้ป้อนข้อความที่ไม่ใช่ URL ในแถบที่อยู่ หากต้องการระบุผู้ให้บริการค้นหาที่เป็นค่าเริ่มต้น ให้ตั้งค่าส่วนที่เหลือของนโยบายการค้นหาเริ่มต้น หากปล่อยนโยบายเหล่านี้ว่างไว้ ผู้ใช้จะเลือกผู้ให้บริการเริ่มต้นได้ เมื่อตั้งค่านโยบายเป็น "ปิดใช้" จะไม่มีการค้นหาเมื่อผู้ใช้ป้อนข้อความที่ไม่ใช่ URL ในแถบที่อยู่
-
-      หากคุณตั้งค่านโยบายไว้ ผู้ใช้จะเปลี่ยนค่านั้นใน <ph name="PRODUCT_NAME" /> ไม่ได้ หากไม่ได้ตั้งค่าไว้ ระบบจะเปิดใช้ผู้ให้บริการค้นหาเริ่มต้น และผู้ใช้จะกำหนดรายการผู้ให้บริการค้นหาได้
-
-      หมายเหตุ: นโยบายนี้ใช้กับอินสแตนซ์ของ Windows® ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, อินสแตนซ์ของ Windows 10 Pro หรือ Chrome Enterprise Upgrade และ macOS ที่มีการจัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX เท่านั้น</translation>
 <translation id="9185107612228451403">กำหนดค่านโยบายที่เกี่ยวข้องกับส่วนขยาย ไม่อนุญาตให้ผู้ใช้ติดตั้งส่วนขยายที่ติดบัญชีดำ เว้นแต่ว่าเป็นรายการที่อนุญาตพิเศษ คุณยังบังคับให้ <ph name="PRODUCT_NAME" /> ติดตั้งส่วนขยายโดยอัตโนมัติได้ด้วยการระบุส่วนขยายใน <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> ระบบจะติดตั้งส่วนขยายที่บังคับติดตั้งแม้ว่าส่วนขยายจะอยู่ในบัญชีดำก็ตาม</translation>
 <translation id="9187743794267626640">ปิดใช้งานการต่อเชื่อมที่จัดเก็บข้อมูลภายนอก</translation>
 <translation id="9190456586252617675">นโยบายนี้ควบคุมโหมดของการเริ่มต้นใช้งาน Assistant
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index c3add29..da85ac76 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -443,13 +443,6 @@
 
       Politikayı False (Yanlış) değerine ayarlamak, kullanıcıların yer işaretleri eklemelerine, kaldırmalarına veya bunları değiştirmelerine izin verilmediği anlamına gelir. Mevcut yer işaretlerini kullanmaya devam edebilirler.</translation>
 <translation id="1715151459541210849">Dikte erişilebilirlik özelliğini etkinleştir</translation>
-<translation id="1717817358640580294">Ayarlanmadan bırakılırsa, Chrome Temizleme Aracı istenmeyen yazılımlar tespit ettiğinde, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikaya uygun şekilde taramayla ilgili meta verileri Google'a raporlayabilir. Chrome Temizleme Aracı, daha sonra kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar. Kullanıcı, ileride istenmeyen yazılımların tespiti konusunda yardımcı olması için temizleme işlemi sonuçlarının Google ile paylaşılmasını seçebilir. Bu sonuçlar, Chrome Gizlilik Raporu'nda açıklandığı gibi dosya meta verilerini, otomatik olarak yüklenen uzantıları ve kayıt defteri anahtarlarını içerir.
-
-      Devre dışı bırakılırsa, Chrome Temizleme Aracı istenmeyen yazılımlar tespit ettiğinde, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikayı geçersiz kılarak taramayla ilgili meta verileri Google'a raporlamaz. Chrome Temizleme Aracı, kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar.  Temizleme işleminin sonuçları Google'a bildirilmez ve kullanıcıya bununla ilgili bir seçenek sunulmaz.
-
-      Etkinleştirilirse, Chrome Temizleme Aracı istenmeyen yazılımlar tespit ettiğinde, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikaya uygun şekilde taramayla ilgili meta verileri Google'a raporlayabilir. Chrome Temizleme Aracı, kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar.  Temizleme işleminin sonuçları Google'a bildirilir ve kullanıcıya bunu önleme seçeneği sunulmaz.
-
-      Bu politika yalnızca bir <ph name="MS_AD_NAME" /> alan adına katılmış Windows örneklerinde veya cihaz yönetimine kaydolmuş Windows 10 Pro ya da Enterprise örneklerinde kullanılabilir.</translation>
 <translation id="172374442286684480">Tüm sitelerin yerel verileri ayarlamasına izin verme</translation>
 <translation id="1736269219679256369">SSL uyarı sayfasından devam etmeye izin ver</translation>
 <translation id="1745973235372964482">Şifre korumalı dosyalara izin verme</translation>
@@ -1359,15 +1352,6 @@
           Bu ayarı devre dışı bırakmak, yapılandırılmamış olarak bırakmakla aynı şeydir. Kullanıcı isterse <ph name="PRODUCT_NAME" /> ürününden bu ayarı değiştirebilir.
 
           Bu politika yalnızca bir <ph name="MS_AD_NAME" /> alan adına katılmış Windows örneklerinde veya cihaz yönetimine kaydolmuş Windows 10 Pro ya da Enterprise örneklerinde ve MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış macOS örneklerinde kullanılabilir.</translation>
-<translation id="2982571648442031489">Güvenli Tarama'nın güveneceği alanların listesini yapılandırır. Bunun anlamı:
-      Tehlikeli kaynakların (ör. kimlik avı, kötü amaçlı yazılım veya istenmeyen yazılım) URL'leri bu alanlarla eşleşirse Güvenli Tarama tehlikeli kaynakları kontrol etmeyecektir.
-      Güvenli Tarama'nın indirme koruma hizmeti, bu alanlarda barındırılan indirmeleri kontrol etmeyecektir.
-      Sayfa URL'si bu alanlarla eşleşirse Güvenli Tarama'nın şifre koruma hizmeti şifre yeniden kullanımını kontrol etmeyecektir.
-
-      Bu ayar etkinleştirilirse Güvenli Tarama bu alanlara güvenecektir.
-      Bu ayar devre dışı bırakılırsa veya ayarlanmazsa varsayılan Güvenli Tarama koruması tüm kaynaklara uygulanır.
-
-      Bu politika yalnızca bir <ph name="MS_AD_NAME" /> alan adına katılmış Windows örneklerinde veya cihaz yönetimine kaydolmuş Windows 10 Pro ya da Enterprise örneklerinde ve MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış macOS örneklerinde kullanılabilir.</translation>
 <translation id="2985927503455169394">Asistan ilk katılım deneyiminin varsayılan modunu kullanma</translation>
 <translation id="2987155890997901449">ARC'yi etkinleştir</translation>
 <translation id="2987227569419001736">Web Bluetooth API'sının kullanımını kontrol et</translation>
@@ -1484,11 +1468,6 @@
       Politika ayarlanmamışsa veya yanlış seçeneğine ayarlanmışsa, TLS'deki DHE şifre paketleri etkinleştirilmez. Aksi takdirde, DHE şifre paketlerinin etkinleştirilmesi ve eski bir sunucuyla uyumluluğun korunması için doğru seçeneğine ayarlanabilir. Bu geçici bir tedbirdir ve sunucu yeniden yapılandırılmalıdır.
 
       Sunucuların ECDHE şifre paketi sürümüne taşınması önerilir. Bunlar kullanılamıyorsa RSA anahtar değiş tokuşunu kullanan bir şifre paketinin etkinleştirildiğinden emin olun.</translation>
-<translation id="3117706142826400449">Devre dışı bırakılırsa, Chrome Temizleme Aracı'nın sistemdeki istenmeyen yazılımları taramasını ve temizleme işlemleri gerçekleştirmesini engeller. Chrome Temizleme Aracı'nın chrome://settings/cleanup adresinden manuel olarak tetiklenmesi devre dışı bırakılır.
-
-      Etkinleştirilir veya ayarlanmadan bırakılırsa, Chrome Temizleme Aracı belirli aralıklarla sistemdeki istenmeyen yazılımları tarar ve böyle bir yazılım bulursa kullanıcıya, bulduğu yazılımı kaldırmak isteyip istemediğini sorar. Chrome Temizleme Aracı'nın chrome://settings adresinden manuel olarak tetiklenmesi etkinleştirilir.
-
-      Bu politika yalnızca bir <ph name="MS_AD_NAME" /> alan adına katılmış Windows örneklerinde veya cihaz yönetimine kaydolmuş Windows 10 Pro ya da Enterprise örneklerinde kullanılabilir.</translation>
 <translation id="3119125876909100625">Şifre korumalı dosyaların yüklenmesine izin ver</translation>
 <translation id="3122082892722698079">Güvenli olmayan içerik istisnalarının kullanımını kontrol et</translation>
 <translation id="3143265893557969814">Bu politika ayarlanırsa belirtilen tüm veri türleri hem Google Sync senkronizasyonunun hem de dolaşım profili senkronizasyonunun dışında tutulur. Bu, dolaşım profilinin boyutunu küçültmeye veya Google Sync sunucularına yüklenen veri türlerini sınırlandırmaya yarayabilir.
@@ -2110,13 +2089,6 @@
 <translation id="4061590579642538878">Kilitlenme raporlarıyla ilgili bilgileri raporlama</translation>
 <translation id="4075675819066819571">Rafı ekranın sol tarafında konumlandır</translation>
 <translation id="4075864623710596000">Bu listede belirtilen ana makine adları, istekleri http'den https'ye yükseltebilecek HSTS politika kontrolünden muaf tutulur. Bu politikada yalnızca tek etiketli ana makine adlarına izin verilir. Ana makine adları standartlaştırılmalıdır: Tüm IDN'ler, A-etiket biçimine dönüştürülmeli ve tüm ASCII harfleri küçük harf olmalıdır. Bu politika yalnızca belirtilen spesifik ana makine adları için geçerlidir; belirtilen adların alt alanları için geçerli değildir.</translation>
-<translation id="4076584741592854827">İndirildiğinde otomatik olarak açılması gereken dosya türleri listesi. Dosya türü listelenirken baştaki ayırıcının eklenmemesi gerektiğinden, ".txt" yerine "txt" yazın.
-
-      Otomatik olarak açılması gereken türdeki dosyalar, yine de etkinleştirilmiş güvenli tarama kontrollerine tabidir ve bu kontrollerden geçmezse açılmaz.
-
-      Bu politika ayarlanmazsa yalnızca kullanıcının otomatik olarak açılmasını zaten belirttiği dosya türleri indirildiğinde otomatik olarak açılır.
-
-      Bu politika yalnızca bir <ph name="MS_AD_NAME" /> alan adına katılmış Windows örneklerinde veya cihaz yönetimine kaydolmuş Windows 10 Pro ya da Enterprise örneklerinde ve MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış macOS örneklerinde kullanılabilir.</translation>
 <translation id="408029843066770167">Google zaman hizmetini sorgulamaya izin ver</translation>
 <translation id="408076456549153854">Tarayıcıda oturum açmayı etkinleştir</translation>
 <translation id="4082498585300984671">Tıkla ve Ara Özelliğini Etkinleştirme</translation>
@@ -4063,19 +4035,6 @@
 
       Bu politika ayarlanmadan bırakılırsa hem kurumsal olarak yönetilen kullanıcılar hem de yönetilmeyen kullanıcılar için varsayılana izin verilir.</translation>
 <translation id="6864244339257535116">Şifre korumalı dosyaların hem yüklenmesine hem de indirilmesine izin ver</translation>
-<translation id="6870295914868104867">Politikanın ayarlanması, kullanıcı etkileşimi olmadan sessizce yüklenen, kullanıcı tarafından yüklemesi kaldırılamayan veya kapatılamayan uygulamaların ve uzantıların bir listesini belirtir. İzinler, enterprise.deviceAttributes ve enterprise.platformKeys uzantı API'leri için dolaylı olarak verilir. (Bu iki API zorunlu olarak yüklenmemiş uygulamalar ve uzantılar tarafından kullanılamaz.)
-
-      Bu politika ayarlanmadan bırakılırsa hiçbir uygulama veya uzantı otomatik olarak yüklenmez ve kullanıcılar <ph name="PRODUCT_NAME" /> ürünündeki uygulama veya uzantıları kaldırabilirler.
-
-      Bu politika, <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> politikasının yerini alır. Önceden zorunlu yüklenmiş bir uygulama veya uzantı listeden çıkarılırsa <ph name="PRODUCT_NAME" /> ürünü, otomatik olarak bu uygulamayı veya uzantıyı kaldırır.
-
-      <ph name="MS_AD_NAME" /> alanına katılmamış Windows® örneklerinde zorunlu yükleme, Chrome Web Mağazası'ndaki uygulama ve uzantılarla sınırlıdır.
-
-      Herhangi bir uzantının kaynak kodu, kullanıcılar tarafından geliştirici araçları kullanılarak uzantının işlevselliğini devre dışı bırakabilecek şekilde değiştirilebilir. Böyle bir endişe olması durumunda <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> politikasını ayarlayın.
-
-      Politikaya ait her liste öğesi, noktalı virgülle (;) ayrılmış bir uzantı kimliği ve isteğe bağlı bir "güncelleme" URL'si içeren bir dizedir. Uzantı kimliği, örneğin Geliştirici modundayken chrome://extensions adresinde bulunabilen 32 harfli bir dizedir. Belirtilmişse "güncelleme" URL'si bir Güncelleme Manifest XML dokümanına işaret etmelidir. ( https://developer.chrome.com/extensions/autoupdate ). Varsayılan olarak Chrome Web Mağazası'nın güncelleme URL'si kullanılır. Bu politikada ayarlanan "güncelleme" URL'si yalnızca ilk yükleme için kullanılır. Uzantının sonraki güncellemelerinde ise uzantının manifest dosyasındaki güncelleme URL'si kullanılır.
-
-       Not: Bu politika gizli mod için geçerli değildir. Uzantıların barındırılması ( https://developer.chrome.com/extensions/hosting ) ile ilgili bilgi edinin.</translation>
 <translation id="687046793986382807">Bu politika, <ph name="PRODUCT_NAME" /> sürüm 35 itibarı ile kullanımdan kaldırılmıştır.
 
       Bellek bilgisi, seçenek değerinden bağımsız olarak her şekilde sayfada raporlanır, ancak
@@ -5722,11 +5681,6 @@
       Yeniden başlatmanın ardından kullanıcı oturumu yeniden açılır.</translation>
 <translation id="9160028464653564229">Hiçbir sitenin Serial API'si üzerinden seri bağlantı noktalarına erişim izni istemesine izin verme</translation>
 <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" />, Dosyalar uygulamasında Drive'ı devre dışı bırak</translation>
-<translation id="917514578273777202">Politika, Etkin değerine ayarlanırsa kullanıcı adres çubuğunda URL olmayan metin girdiğinde varsayılan arama gerçekleştirilir. Varsayılan arama sağlayıcısını belirtmek için geri kalan arama politikalarını ayarlayın. Bu politikaları boş bırakırsanız kullanıcı varsayılan sağlayıcısını seçebilir. Politika, Devre dışı değerine ayarlanırsa kullanıcı adres çubuğuna URL olmayan metin girdiğinde arama gerçekleşmez.
-
-      Bu politikayı ayarlarsanız kullanıcılar <ph name="PRODUCT_NAME" /> ürününde değiştiremez. Ayarlanmadan bırakılırsa varsayılan arama sağlayıcısı etkin hale gelir ve kullanıcılar, arama sağlayıcısı listesini ayarlayabilir.
-
-      Not: Bu politika, yalnızca bir <ph name="MS_AD_NAME" /> alan adına katılmış Windows® örneklerinde, Windows 10 Pro veya Chrome Enterprise Yükseltme ve MDM ile çalışan ya da MCX aracılığıyla bir alan adına katılmış macOS örneklerinde kullanılabilir.</translation>
 <translation id="9185107612228451403">Uzantılarla ilgili politikaları yapılandırır. Kullanıcının kara listeye alınmış uzantıları, beyaz listeye alınmadığı sürece yüklemesine izin verilmez. Uzantıları <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> içinde belirterek bu uzantıların <ph name="PRODUCT_NAME" /> tarafından zorla otomatik olarak yüklenmesini de sağlayabilirsiniz. Zorunlu yüklenmiş uzantılar, kara listede olsalar bile yüklenirler.</translation>
 <translation id="9187743794267626640">Harici depolama birimi eklemeyi devre dışı bırak</translation>
 <translation id="9190456586252617675">Bu politika, Asistan ilk katılım deneyimi modunu kontrol eder.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 6041c74..bcc98f0 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -73,6 +73,7 @@
 
       Якщо для цього правила вибрано значення false або його не налаштовано, інформація не надсилатиметься.
       Якщо для цього правила вибрано значення true, ці дані повідомлятимуться.</translation>
+<translation id="1076751984131277498">Список USB-пристроїв, які можна від'єднувати</translation>
 <translation id="1079801999187584280">Забороняє використання Інструментів розробника</translation>
 <translation id="1087437665304381368">Це правило керує лише режимом розробника <ph name="PRODUCT_OS_NAME" />. Щоб заборонити доступ до параметрів розробника Android, потрібно налаштувати правило <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation>
 <translation id="1087707496788636333">Список правил Chrome Enterprise переміщено. Нова URL-адреса: <ph name="POLICY_DOCUMENTATION_URL" />.</translation>
@@ -468,13 +469,6 @@
 
       Якщо для нього вибрано значення False, користувачі не зможуть робити цього, але матимуть можливість користуватися наявними закладками.</translation>
 <translation id="1715151459541210849">Увімкнути спеціальну можливість "Диктування"</translation>
-<translation id="1717817358640580294">Якщо це правило не налаштовано, виявивши небажане програмне забезпечення, Очищення Chrome може передавати метадані про сканування в Google відповідно до правила SafeBrowsingExtendedReportingEnabled. Користувачам буде запропоновано видалити таке небажане програмне забезпечення. Користувач може надіслати результати очищення в Google, щоб допомогти виявляти такі проблеми в майбутньому. У цих результатах містяться файли метаданих, автоматично встановлені розширення та реєстраційні ключі, як зазначено в Офіційному описі політики конфіденційності Google Chrome.
-
-      Якщо це правило вимкнено, виявивши небажане програмне забезпечення, Очищення Chrome не передаватиме в Google метадані про сканування, замінюючи всі правила відповідно до правила SafeBrowsingExtendedReportingEnabled. Очищення Chrome пропонуватиме користувачам видалити таке небажане програмне забезпечення.  Результати очищення не повідомлятимуться в Google, і користувачі не матимуть можливості зробити це самостійно.
-
-      Якщо це правило ввімкнено, виявивши небажане програмне забезпечення, Очищення Chrome може передавати метадані про сканування в Google відповідно до правила SafeBrowsingExtendedReportingEnabled. Очищення Chrome пропонуватиме користувачам видалити таке небажане програмне забезпечення.  Результати очищення повідомлятимуться в Google, і користувачі не зможуть перешкодити цьому.
-
-      Це правило доступне лише у версіях Windows, зареєстрованих у домені <ph name="MS_AD_NAME" />, або Windows 10 Pro чи Enterprise, зареєстрованих для керування пристроєм.</translation>
 <translation id="172374442286684480">Дозволити всім сайтам установлювати локальні дані</translation>
 <translation id="1736269219679256369">Дозволяти перехід зі сторінки застереження SSL</translation>
 <translation id="1745973235372964482">Не дозволяти файли, захищені паролем</translation>
@@ -551,6 +545,9 @@
 
       Якщо це правило не налаштовано, прогнозування мережі буде ввімкнено, але користувачі не зможуть змінити його.</translation>
 <translation id="1865417998205858223">Основні дозволи</translation>
+<translation id="1866563857170942397">Визначає список користувачів, яким дозволено входити на пристрої. Записи створюються у форматі <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, як-от <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Щоб надати доступ до домену довільним користувачам, використовуйте формат <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />.
+
+      Якщо це правило не налаштовано, обмежень для входу користувачів немає. Зауважте, що для створення нових користувачів усе ж потрібно відповідно налаштувати правило <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" />.</translation>
 <translation id="186719019195685253">Дія, яка має виконуватися під час живлення від електромережі, коли виникає затримка через неактивність.</translation>
 <translation id="187819629719252111">Надає доступ до локальних файлів у комп’ютері, дозволяючи <ph name="PRODUCT_NAME" /> відображати діалогові вікна вибору файлів. Якщо це налаштування ввімкнено, користувачі можуть відкривати діалогові вікна звичайним способом. Якщо це налаштування вимкнено, під час виконання дії, яка викликає діалогове вікно вибору файлу (наприклад, імпорт закладок, завантаження файлів, збереження посилань тощо), відображається повідомлення. Користувач має натиснути кнопку "Скасувати" в діалоговому вікні вибору файлу. Якщо це налаштування не встановлено, користувачі можуть відкривати діалогові вікна вибору файлу звичайним способом.</translation>
 <translation id="1885782360784839335">Дозволяє показувати рекламний вміст на всю вкладку</translation>
@@ -1391,15 +1388,6 @@
           Вимкнути цей параметр – те саме, що не налаштувати його. Коростивачі все ще зможуть змінити його в <ph name="PRODUCT_NAME" />.
 
           Це правило доступне лише у версіях Windows, зареєстрованих у домені <ph name="MS_AD_NAME" />, або Windows 10 Pro чи Enterprise, зареєстрованих для керування пристроєм, а також у версіях macOS, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation>
-<translation id="2982571648442031489">Налаштовує список надійних доменів для Безпечного перегляду. Це означає, що:
-      Безпечний перегляд не перевірятиме сайти на наявність небезпечних ресурсів (наприклад, фішинг, зловмисне чи небажане програмне забезпечення), якщо їх URL-адреси відповідають цим доменам;
-      захист завантажень у Безпечному перегляді не перевірятиме завантаження, розміщені на цих доменах;
-      захист паролів у Безпечному перегляді не перевірятиме повторно введені паролі, якщо URL-адреси сторінок відповідають цим доменам.
-
-      Якщо цей параметр увімкнено, Безпечний перегляд вважатиме ці домени надійними.
-      Якщо його вимкнено або не налаштовано, Безпечний перегляд буде активовано для всіх ресурсів.
-
-      Це правило доступне лише у версіях Windows, зареєстрованих у домені <ph name="MS_AD_NAME" />, або Windows 10 Pro чи Enterprise, зареєстрованих для керування пристроєм, а також у версіях macOS, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation>
 <translation id="2985927503455169394">Використовувати режим реєстрації в Асистенті за умовчанням</translation>
 <translation id="2987155890997901449">Увімкнути ARC</translation>
 <translation id="2987227569419001736">Контролювати використання API Web Bluetooth</translation>
@@ -1516,11 +1504,6 @@
       Якщо це правило не налаштовано або має значення "false", набори шифрів DHE в TLS не працюватимуть. Для правила можна вказати значення "true", щоб увімкнути набори шрифтів DHE та підтримувати сумісність із застарілим сервером. Це тимчасовий захід, для якого потрібно змінити налаштування сервера.
 
       Радимо перейти на використання наборів шифрів ECDHE для серверів. Якщо вони недоступні, переконайтеся, що на сервері ввімкнено набір шрифтів з обміном ключів RSA.</translation>
-<translation id="3117706142826400449">Якщо це правило вимкнено, Очищення Chrome не скануватиме систему на наявність небажаного програмного забезпечення та не видалятиме його. Можливість активувати Очищення Chrome вручну за допомогою сторінки chrome://settings/cleanup вимкнено.
-
-      Якщо це правило ввімкнено або не налаштовано, Очищення Chrome періодично скануватиме систему на наявність небажаного програмного забезпечення й запитуватиме користувача, чи потрібно його видалити. Можливість активувати Очищення Chrome вручну за допомогою сторінки chrome://settings увімкнено.
-
-      Це правило доступне лише у версіях Windows, зареєстрованих у домені <ph name="MS_AD_NAME" />, або Windows 10 Pro чи Enterprise, зареєстрованих для керування пристроєм.</translation>
 <translation id="3119125876909100625">Дозволити додавання файлів, захищених паролем</translation>
 <translation id="3122082892722698079">Контролювати використання винятків для незахищеного контенту</translation>
 <translation id="3143265893557969814">Якщо це правило налаштовано, усі вказані типи даних буде виключено з даних для синхронізації через Google Sync і синхронізації роумінгових профілів. Це може допомогти зменшити розмір роумінгового профілю чи обмежити тип даних, завантажених на сервери Google Sync.
@@ -1853,6 +1836,9 @@
 <translation id="3647212518036289905">Налаштування цього правила визначають, яку бібліотеку GSSAPI використовувати для автентифікації HTTP. Для цього правила можна вказати назву бібліотеки або повний шлях.
 
       Якщо це правило не налаштовано, <ph name="PRODUCT_NAME" /> використовує назву бібліотеки за умовчанням.</translation>
+<translation id="3653234084868565720">Контролює, чи <ph name="PRODUCT_OS_NAME" /> дозволяє створювати нові облікові записи користувачів. Якщо для цього правила вибрано значення false, користувачі, які не мають облікових записів, не можуть увійти.
+
+      Якщо для цього правила вибрано значення true або його не налаштовано, створення нових облікових записів дозволено, якщо <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> не забороняє користувачу входити.</translation>
 <translation id="3653237928288822292">Значок пошукової служби за умовчанням</translation>
 <translation id="3654906736796256792">Дозволити запуск ізольованого програмного середовища для аудіо</translation>
 <translation id="3657998022005237040">Блокувати завантаження непідтримуваних типів файлів</translation>
@@ -2146,13 +2132,6 @@
 <translation id="4061590579642538878">Повідомляти дані звітів про аварійне завершення роботи.</translation>
 <translation id="4075675819066819571">Розташування полиці ліворуч на екрані</translation>
 <translation id="4075864623710596000">Імена хостів із цього списку буде виключено з перевірки правил HSTS. Це може змінити запити з http на https. У цьому правилі можна вказувати лише імена хостів з однією міткою. Імена хостів мають бути канонікалізовані: потрібно конвертувати інтернаціоналізовані доменні імена (IDN) у формат A-label і вживати лише малі літери ASCII. Це правило застосовується лише до певних указаних імен хостів. Воно не діє для субдоменів указаних імен.</translation>
-<translation id="4076584741592854827">Список типів файлів, які мають автоматично відкриватися після завантаження. Перед назвою типу файлу не потрібно додавати роздільник, наприклад, указуйте "txt", а не ".txt".
-
-      Файли тих типів, які мають автоматично відкриватися, усе одно перевірятимуться функцією "Безпечний перегляд", якщо її ввімкнено, і не відкриються, якщо перевірка виявить проблеми.
-
-      Якщо це правило не налаштовано, після завантаження автоматично відкриватимуться лише файли тих типів, які користувач указав раніше.
-
-      Це правило доступне лише у версіях Windows, зареєстрованих у домені <ph name="MS_AD_NAME" />, або Windows 10 Pro чи Enterprise, зареєстрованих для керування пристроєм, а також у версіях macOS, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation>
 <translation id="408029843066770167">Дозволити запити в службу часу Google</translation>
 <translation id="408076456549153854">Увімкнути вхід в обліковий запис у веб-переглядачі</translation>
 <translation id="4082498585300984671">Увімкнути функцію "Інтерактивний номер"</translation>
@@ -3214,6 +3193,11 @@
 
       Якщо не вказано, URL-адреса початкового числа Варіацій не змінюється.</translation>
 <translation id="5561811616825571914">Автоматично вибирати сертифікати клієнтів для цих сайтів на екрані входу</translation>
+<translation id="5564345250641049313">Визначає список користувачів, яким дозволено входити на пристрої. Записи створюються у форматі <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, як-от <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Щоб надати доступ до домену довільним користувачам, використовуйте формат <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />.
+
+      Якщо це правило не налаштовано, обмежень для входу користувачів немає. Зауважте, що для створення нових користувачів усе ж потрібно відповідно налаштувати правило <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" />.
+
+      Це правило більше не підтримується. Натомість використовуйте <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />.</translation>
 <translation id="5564865786900450806">Блокує попередження, яке з'являється, коли <ph name="PRODUCT_NAME" /> запущено на комп'ютері чи в операційній системі, що більше не підтримуються.
 
       Якщо для цього правила вибрано значення true або воно не налаштовано, на таких комп'ютерах чи в системах з'являтимуться попередження.</translation>
@@ -3587,6 +3571,11 @@
           Якщо ви хочете блокувати екран у режимі неактивності, радимо ввімкнути блокування екрана під час призупинення роботи й задати період неактивності <ph name="PRODUCT_OS_NAME" />, після якого вмикатиметься режим неактивності. Це правило має застосовуватися, лише якщо потрібно блокувати екран задовго до ввімкнення режиму неактивності або якщо цей режим не потрібно використовувати взагалі.
 
           Значення правила вказується в мілісекундах. Значення мають бути меншими за період затримки через неактивність.</translation>
+<translation id="6096729330325888677">Налаштування цього пристрою визначають список пристроїв USB, які користувачі можуть від'єднувати від драйвера ядра, щоб використовувати через chrome.usb API просто у веб-додатку. Записи є парами ідентифікатора постачальника USB й ідентифікатора продукту для визначення апаратного забезпечення.
+
+      Якщо це правило не налаштовано, список пристроїв USB, які можна від'єднувати, буде порожнім.
+
+      Це правило більше не підтримується. Натомість використовуйте <ph name="USB_DETACHABLE_ALLOWLIST" />.</translation>
 <translation id="6097601282776163274">Увімкнути збір анонімних даних, захищених паролем URL-адрес</translation>
 <translation id="6099853574908182288">Стандартні параметри кольорового друку</translation>
 <translation id="6102342563050263313">Увімкнути прокручування до тексту з фрагментів у URL-адресі</translation>
@@ -4095,19 +4084,6 @@
 
       Якщо це правило не налаштовано, за умовчанням цю функцію зможуть вмикати користувачі, якими керує адміністратор і якими він не керує.</translation>
 <translation id="6864244339257535116">Дозволити додавати й завантажувати файли, захищені паролем</translation>
-<translation id="6870295914868104867">Налаштування цього правила визначають список додатків і розширень, які встановлюються автоматично, без взаємодії з користувачем і які він не може видалити або вимкнути. Дозволи, зокрема для API розширень enterprise.deviceAttributes і enterprise.platformKeys, надаються непрямо. (Ці два API доступні лише для примусово встановлених додатків).
-
-      Якщо це правило не налаштовано, додатки й розширення не встановлюються автоматично, а користувачі можуть видаляти їх у <ph name="PRODUCT_NAME" />.
-
-      Це правило замінює <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Якщо вилучити з цього списку примусово встановлені додатки або розширення, вони автоматично видаляться в <ph name="PRODUCT_NAME" />.
-
-      У версіях Windows®, не зареєстрованих у домені <ph name="MS_AD_NAME" />, примусово встановлюються лише додатки та розширення з Веб-магазину Chrome.
-
-      Вихідний код будь-якого розширення можна змінити за допомогою інструментів розробника (розширення може перестати працювати). Якщо це становить проблему, налаштуйте правило <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Кожний елемент у списку правила має вигляд сегмента з ідентифікатором розширення та URL-адресою "оновлення" (необов'язково), які розділені крапкою з комою (;). Ідентифікатор розширення – це рядок із 32 літер, приклад якого можна знайти на сторінці chrome://extensions у режимі розробника. URL-адреса "оновлення" (якщо її вказано) має спрямовувати на документ маніфесту оновлення у форматі XML ( https://developer.chrome.com/extensions/autoupdate ). За умовчанням використовується URL-адреса для оновлення Веб-магазину Chrome. URL-адреса "оновлення", указана для цього правила, використовується лише для початкового встановлення. Під час наступних оновлень розширення використовуватиметься URL-адреса, указана в маніфесті розширення.
-
-       Примітка: це правило не стосується режиму анонімного перегляду. Докладніше про розміщення розширень ( https://developer.chrome.com/extensions/hosting ).</translation>
 <translation id="687046793986382807">Це правило не підтримується від 35-ї версії <ph name="PRODUCT_NAME" />.
 
       Інформація про пам’ять повідомляється сторінці, незалежно від значення параметра, але розміри, які надсилаються,
@@ -4248,6 +4224,16 @@
       Якщо це правило не налаштовано, полиця буде розташована внизу екрана за умовчанням, але користувач зможе змінити її положення.</translation>
 <translation id="7040229947030068419">Приклад значення:</translation>
 <translation id="7044883996351280650">Контролює сервіс резервного копіювання та відновлення Android</translation>
+<translation id="7063842402585660314">Список додатків для нотаток, дозволених на заблокованому екрані <ph name="PRODUCT_OS_NAME" />.
+
+      Якщо на заблокованому екрані ввімкнено вибраний додаток для нотаток, то заблокований екран міститиме елемент інтерфейсу для запуску цього додатка.
+      Після запуску додатка на заблокованому екрані з'явиться вікно, де ви зможете створювати елементи даних (нотатки). Додаток зможе імпортувати створені нотатки в сеанс основного користувача, коли його розблоковано. Наразі на заблокованому екрані підтримуються лише додатки для створення нотаток у Chrome.
+
+      Якщо це правило налаштовано, користувач зможе вмикати додаток на заблокованому екрані, лише якщо ідентифікатор розширення додатка є в списку правил.
+      Тож якщо для правила вказано порожній список, створення нотаток на заблокованому екрані буде вимкнено.
+      Зауважте: навіть якщо в правилі вказано ідентифікатор додатка, це не обов'язково означає, що користувач зможе вмикати цей додаток для створення нотаток на заблокованому екрані. Наприклад, платформа додатково обмежує набір доступних додатків для Chrome версії 61.
+
+      Якщо це правило не налаштовано, обмеження щодо додатків, які користувач може активувати на заблокованому екрані, не діють.</translation>
 <translation id="7063895219334505671">Дозволити спливаючі вікна на цих сайтах</translation>
 <translation id="706669471845501145">Дозволяти сайтам показувати сповіщення на робочому столі</translation>
 <translation id="7068108874199666656">Дає змогу надсилати конфігурацію мережі для застосування всіма користувачами на пристрої з <ph name="PRODUCT_OS_NAME" />. Конфігурація мережі – це рядок у форматі JSON, визначений форматом Open Network Configuration.</translation>
@@ -5152,6 +5138,7 @@
 
           Докладніше про дійсні шаблони URL-адрес можна дізнатися на сторінці https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8357681633047935212">Обмежувати тривалість сеансу користувача</translation>
+<translation id="8357989008292691856">Список користувачів, яким дозволено вхід</translation>
 <translation id="8359734107661430198">Увімкнути API функції ExampleDeprecatedFeature, що підтримувалася до 02.09.2008.</translation>
 <translation id="8367209241899435947">Вмикає Очищення Chrome у Windows</translation>
 <translation id="8367473200119029349">Хмарне звітування</translation>
@@ -5772,11 +5759,6 @@
       Після перезапуску сеанс користувача відновлюється.</translation>
 <translation id="9160028464653564229">Заборонити всім сайтам запитувати дозвіл на доступ до послідовних портів через Serial API</translation>
 <translation id="9167719789236691545">Вимкнути Диск у додатку Файли в <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Якщо для цього правила вибрано значення Enabled, пошук за умовчанням виконується, коли користувач вводить в адресному рядку текст, який не є URL-адресою. Щоб указати потрібний пошуковий сервіс за умовчанням, налаштуйте решту правил пошуку за умовчанням. Якщо для цих правил не буде вказано значень, користувач зможе вибирати пошуковий сервіс за умовчанням. Якщо для цього правила вибрано значення Disabled, пошук не виконується, коли користувач вводить в універсальне вікно пошуку текст, який не є URL-адресою.
-
-      Якщо це правило налаштовано, користувачі не зможуть змінювати його в <ph name="PRODUCT_NAME" />. Якщо це правило не налаштовано, пошуковий сервіс за умовчанням буде ввімкнено, а користувачі зможуть указати список пошукових сервісів.
-
-      Примітка: це правило доступне лише у версіях Windows®, зареєстрованих у домені <ph name="MS_AD_NAME" />, Windows 10 Pro або Chrome Enterprise Upgrade, а також у версіях macOS, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation>
 <translation id="9185107612228451403">Налаштовує правила, пов’язані з розширеннями. Користувачу не дозволяється встановлювати розширення з чорного списку, якщо їх не внесено в білий. Також можна вказати розширення в правилі <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />, щоб змусити <ph name="PRODUCT_NAME" /> автоматично встановлювати їх. Такі розширення встановлюються незалежно від того, чи вони є в чорному списку.</translation>
 <translation id="9187743794267626640">Вимикати підключення зовнішньої пам’яті</translation>
 <translation id="9190456586252617675">Це правило керує режимом реєстрації в Асистенті.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index db6f9aba..567c829 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -466,13 +466,6 @@
 
       Nếu bạn đặt chính sách này thành False, thì người dùng không thể thêm, xóa hoặc sửa đổi dấu trang. Người dùng vẫn có thể sử dụng dấu trang hiện có.</translation>
 <translation id="1715151459541210849">Bật tính năng hỗ trợ tiếp cận về đọc chính tả</translation>
-<translation id="1717817358640580294">Nếu bạn không đặt chính sách này và tính năng Làm sạch Chrome phát hiện phần mềm không mong muốn, thì tính năng này có thể báo cáo siêu dữ liệu về lần quét đó cho Google theo chính sách do SafeBrowsingExtendedReportingEnabled đặt. Sau đó, tính năng Làm sạch Chrome sẽ hỏi người dùng xem họ có muốn xóa phần mềm không mong muốn hay không. Người dùng có thể chọn chia sẻ kết quả của quá trình làm sạch với Google để hỗ trợ việc phát hiện phần mềm không mong muốn trong tương lai. Những kết quả này chứa siêu dữ liệu tệp, tiện ích tự động cài đặt và khóa sổ đăng ký như mô tả trong Báo cáo chính thức về quyền riêng tư của Chrome.
-
-      Nếu bạn tắt tùy chọn cài đặt này và tính năng Làm sạch Chrome phát hiện thấy phần mềm không mong muốn, thì tính năng này sẽ không báo cáo siêu dữ liệu về lần quét đó cho Google, ghi đè bất kỳ chính sách nào do SafeBrowsingExtendedReportingEnabled đặt. Tính năng Làm sạch Chrome sẽ hỏi người dùng xem họ có muốn xóa phần mềm không mong muốn hay không.  Kết quả của quá trình làm sạch sẽ không được báo cáo cho Google và người dùng sẽ không có tùy chọn để làm như vậy.
-
-      Nếu bạn bật tùy chọn cài đặt này và tính năng Làm sạch Chrome phát hiện phần mềm không mong muốn, thì tính năng này có thể báo cáo siêu dữ liệu về lần quét đó cho Google, ghi đè bất kỳ chinh sách nào do SafeBrowsingExtendedReportingEnabled đặt. Tính năng Làm sạch Chrome sẽ hỏi người dùng xem họ có muốn xóa phần mềm không mong muốn hay không.  Kết quả làm sạch sẽ được báo cáo cho Google và người dùng sẽ không có tùy chọn để chọn không gửi.
-
-      Chính sách này chỉ có trên các phiên bản Windows liên kết với miền <ph name="MS_AD_NAME" /> hoặc phiên bản Windows 10 Pro hay Enterprise đã đăng ký quản lý thiết bị.</translation>
 <translation id="172374442286684480">Cho phép tất cả trang web lưu dữ liệu trên máy</translation>
 <translation id="1736269219679256369">Cho phép tiến hành từ trang cảnh báo SSL</translation>
 <translation id="1745973235372964482">Không cho phép các tệp được bảo vệ bằng mật khẩu</translation>
@@ -1389,15 +1382,6 @@
           Tùy chọn cài đặt này không được định cấu hình nếu bạn tắt tùy chọn cài đặt này. Người dùng vẫn có thể thay đổi tùy chọn cài đặt này trong <ph name="PRODUCT_NAME" />.
 
           Chính sách này chỉ có trên các phiên bản Windows liên kết với miền <ph name="MS_AD_NAME" /> hoặc phiên bản Windows 10 Pro hay Enterprise đã đăng ký dịch vụ quản lý thiết bị, cũng như phiên bản macOS được quản lý thông qua phần mềm MDM (Quản lý thiết bị di động) hoặc đã liên kết với miền qua MCX.</translation>
-<translation id="2982571648442031489">Định cấu hình danh sách miền mà tính năng Duyệt web an toàn sẽ tin cậy. Điều này có nghĩa là:
-      Tính năng Duyệt web an toàn sẽ không kiểm tra các tài nguyên nguy hiểm (chẳng hạn như lừa đảo, phần mềm độc hại hoặc phần mềm không mong muốn) nếu URL của chúng khớp với những miền này.
-      Dịch vụ bảo vệ tệp tải xuống của tính năng Duyệt web an toàn sẽ không kiểm tra các tệp tải xuống được lưu trữ trên những miền này.
-      Dịch vụ bảo vệ mật khẩu của tính năng Duyệt web an toàn sẽ không kiểm tra việc sử dụng lại mật khẩu nếu URL của trang khớp với những miền này.
-
-      Nếu bạn bật tùy chọn cài đặt này, thì tính năng Duyệt web an toàn sẽ tin cậy những miền này.
-      Nếu bạn tắt hoặc không đặt tùy chọn cài đặt này, thì cơ chế bảo vệ mặc định của tính năng Duyệt web an toàn sẽ áp dụng cho tất cả tài nguyên.
-
-      Chính sách này chỉ có trên các phiên bản Windows liên kết với miền <ph name="MS_AD_NAME" /> hoặc phiên bản Windows 10 Pro hay Enterprise đã đăng ký dịch vụ quản lý thiết bị, cũng như phiên bản macOS được quản lý thông qua phần mềm MDM (Quản lý thiết bị di động) hoặc đã liên kết với miền qua MCX.</translation>
 <translation id="2985927503455169394">Sử dụng chế độ mặc định của trải nghiệm làm quen với Trợ lý</translation>
 <translation id="2987155890997901449">Bật ARC</translation>
 <translation id="2987227569419001736">Kiểm soát việc sử dụng API Web Bluetooth</translation>
@@ -1513,11 +1497,6 @@
       Nếu chính sách này không được đặt hoặc được đặt thành false thì bộ mã hóa DHE trong TLS sẽ không được bật. Ngoài ra, chính sách có thể được đặt thành true để bật bộ mã hóa DHE và duy trì khả năng tương thích với các máy chủ lỗi thời. Đây là một biện pháp tạm thời và cần phải định cấu hình lại máy chủ.
 
       Nên di chuyển máy chủ sang bộ mã hóa ECDHE. Nếu các bộ mã hóa này không khả dụng, hãy đảm bảo bộ mã hóa sử dụng trao đổi khóa RSA được bật.</translation>
-<translation id="3117706142826400449">Nếu bạn tắt chính sách này thì tính năng Làm sạch Chrome sẽ không quét hệ thống để tìm phần mềm không mong muốn và thực hiện các thao tác làm sạch. Tùy chọn kích hoạt thủ công tính năng Làm sạch Chrome trên trang chrome://settings/cleanup sẽ bị tắt.
-
-      Nếu bạn bật hoặc không đặt chính sách này, thì tính năng Làm sạch Chrome sẽ quét định kỳ hệ thống để tìm ra phần mềm không mong muốn. Khi tìm thấy phần mềm không mong muốn, tính năng này sẽ hỏi người dùng liệu họ có muốn xóa phần mềm đó hay không. Tùy chọn kích hoạt thủ công tính năng Làm sạch Chrome trên trang chrome://settings sẽ được bật.
-
-      Chính sách này chỉ có trên các phiên bản Windows liên kết với miền <ph name="MS_AD_NAME" /> hoặc phiên bản Windows 10 Pro hay Enterprise đã đăng ký quản lý thiết bị.</translation>
 <translation id="3119125876909100625">Cho phép tải các tệp được bảo vệ bằng mật khẩu lên</translation>
 <translation id="3122082892722698079">Kiểm soát việc sử dụng trường hợp ngoại lệ cho nội dung không an toàn</translation>
 <translation id="3143265893557969814">Nếu bạn đặt chính sách này thì tất cả các loại dữ liệu đã chỉ định sẽ bị loại trừ khỏi cả quá trình đồng bộ hóa của Google Sync lẫn quá trình đồng bộ hóa cấu hình chuyển vùng. Điều này có thể giúp giảm kích thước của cấu hình chuyển vùng hoặc giới hạn loại dữ liệu đã tải lên các máy chủ Google Sync.
@@ -2144,13 +2123,6 @@
 <translation id="4061590579642538878">Báo cáo thông tin về báo cáo sự cố.</translation>
 <translation id="4075675819066819571">Đặt giá ở bên trái màn hình</translation>
 <translation id="4075864623710596000">Các tên máy chủ đã chỉ định trong danh sách này sẽ được miễn kiểm tra chính sách HSTS mà có thể nâng cấp yêu cầu từ http lên https. Chính sách này chỉ cho phép tên máy chủ một nhãn. Cần phải chuẩn hóa tên máy chủ: mọi IDN phải được chuyển sang định dạng nhãn A và tất cả chữ cái ASCII phải là chữ thường. Chính sách này chỉ áp dụng với các tên máy chủ cụ thể đã chỉ định, chứ không áp dụng với các miền con của tên máy chủ đã chỉ định.</translation>
-<translation id="4076584741592854827">Danh sách các loại tệp tự động mở khi tải xuống. Bạn không được thêm dấu phân cách phía trước khi liệt kê loại tệp. Do đó, hãy dùng "txt" thay cho ".txt".
-
-      Những tệp thuộc loại tự động mở sẽ vẫn phải trải qua các bước kiểm tra trong chế độ duyệt web an toàn mà người dùng đã bật và sẽ không mở nếu không vượt qua các bước kiểm tra đó.
-
-      Nếu bạn không đặt chính sách này, thì chỉ các loại tệp mà người dùng đã chỉ định là tự động mở sẽ tự động mở khi tải xuống.
-
-      Chính sách này chỉ có trên các phiên bản Windows liên kết với miền <ph name="MS_AD_NAME" /> hoặc phiên bản Windows 10 Pro hay Enterprise đã đăng ký dịch vụ quản lý thiết bị, cũng như phiên bản macOS được quản lý thông qua phần mềm MDM (Quản lý thiết bị di động) hoặc đã liên kết với miền qua MCX.</translation>
 <translation id="408029843066770167">Cho phép gửi truy vấn tới dịch vụ thời gian của Google</translation>
 <translation id="408076456549153854">Cho phép đăng nhập vào trình duyệt</translation>
 <translation id="4082498585300984671">Bật tính năng Nhấp để gọi</translation>
@@ -4106,19 +4078,6 @@
 
       Nếu bạn không đặt chính sách này, thì tùy chọn mặc định sẽ được phép áp dụng cho cả người dùng do doanh nghiệp quản lý và người dùng không được quản lý.</translation>
 <translation id="6864244339257535116">Cho phép tải lên và tải xuống các tệp được bảo vệ bằng mật khẩu</translation>
-<translation id="6870295914868104867">Nếu bạn đặt chính sách này, thì hệ thống sẽ chỉ định danh sách các ứng dụng và tiện ích tự động cài đặt mà không cần sự can thiệp của người dùng, cũng như những người dùng nào không thể gỡ cài đặt hay tắt đi. Các quyền được cấp hoàn toàn, kể cả cho các API tiện ích enterprise.deviceAttributes và enterprise.platformKeys. (Những ứng dụng và tiện ích không buộc phải cài đặt sẽ không dùng được 2 API này.)
-
-      Nếu bạn không đặt chính sách này, thì các ứng dụng hoặc tiện ích sẽ không tự động cài đặt, và người dùng có thể gỡ cài đặt mọi ứng dụng hoặc tiện ích trong <ph name="PRODUCT_NAME" />.
-
-      Chính sách này thay thế chính sách <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Nếu một ứng dụng/tiện ích buộc phải cài đặt trước đây và hiện bị xóa khỏi danh sách này, thì <ph name="PRODUCT_NAME" /> sẽ tự động gỡ cài đặt ứng dụng/tiện ích đó.
-
-      Đối với các phiên bản Windows® không liên kết với một miền <ph name="MS_AD_NAME" />, việc buộc cài đặt chỉ áp dụng cho các ứng dụng và tiện ích có trong Cửa hàng Chrome trực tuyến.
-
-      Người dùng có thể thay đổi mã nguồn của mọi tiện ích thông qua các công cụ cho nhà phát triển (điều này có thể khiến tiện ích hoạt động không chính xác). Nếu bạn lo ngại về điều này, hãy đặt chính sách <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
-
-      Mỗi mục danh sách của chính sách là một chuỗi chứa một mã tiện ích và một URL "cập nhật" (không bắt buộc) phân tách bằng dấu chấm phẩy (;). Mã tiện ích là một chuỗi gồm 32 chữ cái, chẳng hạn như trên chrome://extensions khi ở Chế độ nhà phát triển. Nếu được chỉ định, thì URL "cập nhật" phải trỏ đến tài liệu XML của tệp kê khai cập nhật (https://developer.chrome.com/extensions/autoupdate). Theo mặc định, URL cập nhật của Cửa hàng Chrome trực tuyến sẽ được sử dụng. URL "cập nhật" được đặt trong chính sách này chỉ dùng cho lần cài đặt ban đầu. Các lần cập nhật tiện ích tiếp theo sẽ sử dụng URL cập nhật nêu trong tệp kê khai của tiện ích.
-
-       Lưu ý: chính sách này không áp dụng cho Chế độ ẩn danh. Hãy tìm hiểu về các tiện ích lưu trữ (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="687046793986382807">Chính sách này sẽ được xóa bỏ kể từ phiên bản 35 của <ph name="PRODUCT_NAME" />.
 
       Thông tin bộ nhớ vẫn được báo cáo tới trang bất kể giá trị tùy chọn như thế nào. Tuy nhiên, kích thước được báo cáo
@@ -5796,11 +5755,6 @@
       Phiên của người dùng sẽ được khôi phục sau khi chạy lại/khởi động.</translation>
 <translation id="9160028464653564229">Không cho phép trang web nào yêu cầu quyền truy cập vào cổng nối tiếp qua API nối tiếp</translation>
 <translation id="9167719789236691545">Tắt Drive trong ứng dụng Tệp dành cho <ph name="PRODUCT_OS_NAME" /></translation>
-<translation id="917514578273777202">Nếu bạn đặt chính sách này thành Bật, thì hệ thống sẽ thực hiện quá trình tìm kiếm mặc định khi người dùng nhập văn bản không phải là URL vào thanh địa chỉ. Để chỉ định nhà cung cấp dịch vụ tìm kiếm mặc định, hãy đặt các chính sách tìm kiếm mặc định còn lại. Nếu bạn để trống những chính sách đó, thì người dùng có thể chọn nhà cung cấp mặc định. Nếu bạn đặt chính sách này thành Tắt, thì hệ thống sẽ không tìm kiếm khi người dùng nhập văn bản không phải là URL vào thanh địa chỉ.
-
-      Nếu bạn đặt chính sách này, thì người dùng sẽ không thay đổi được trong <ph name="PRODUCT_NAME" />. Nếu bạn không đặt chính sách này, thì nhà cung cấp dịch vụ tìm kiếm mặc định sẽ được bật và người dùng có thể đặt danh sách nhà cung cấp dịch vụ tìm kiếm.
-
-      Lưu ý: Chính sách này chỉ có trên các phiên bản Windows® liên kết với một miền <ph name="MS_AD_NAME" />, hoặc phiên bản Windows 10 Pro hay Bản nâng cấp Chrome Enterprise và macOS được quản lý thông qua phần mềm MDM (Quản lý thiết bị di động) hoặc đã liên kết với một miền qua MCX.</translation>
 <translation id="9185107612228451403">Định cấu hình các chính sách liên quan tới tiện ích. Người dùng không được phép cài đặt các tiện ích có trong danh sách cấm trừ khi các tiện ích này có trong danh sách cho phép. Bạn cũng có thể buộc <ph name="PRODUCT_NAME" /> tự động cài đặt tiện ích bằng cách chỉ định các tiện ích đó trong <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Các tiện ích bị buộc cài đặt sẽ được cài đặt bất kể có thuộc danh sách cấm hay không.</translation>
 <translation id="9187743794267626640">Vô hiệu hóa việc lắp bộ nhớ ngoài</translation>
 <translation id="9190456586252617675">Chính sách này kiểm soát chế độ của trải nghiệm làm quen với Trợ lý.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index ea5d98f..36eaad43 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -66,7 +66,7 @@
       如果您未设置此政策,系统将会使用默认的个人资料目录。</translation>
 <translation id="1062011392452772310">为设备启用远程认证</translation>
 <translation id="1062407476771304334">替换</translation>
-<translation id="1069489575852947981">如果此政策已启用或未设置,系统将设置设备本地帐号以实现零延迟的自动登录。<ph name="PRODUCT_OS_NAME" /> 支持利用键盘快捷键 Ctrl+Alt+S 绕过自动登录并显示登录屏幕。
+<translation id="1069489575852947981">如果此政策已启用或未设置,系统将设置设备本地帐号以实现零延迟的自动登录。<ph name="PRODUCT_OS_NAME" />支持利用键盘快捷键 Ctrl + Alt + S 绕过自动登录并显示登录屏幕。
 
       如果此政策已停用,用户则无法绕过零延迟的自动登录(若已配置)。</translation>
 <translation id="1073983258515362346">报告与设备背光有关的信息。
@@ -437,13 +437,6 @@
 
       如果此政策设为 False,用户无法添加、移除或修改书签,但仍能使用现有书签。</translation>
 <translation id="1715151459541210849">启用“语音输入”无障碍功能</translation>
-<translation id="1717817358640580294">如果此政策未设置,当 Chrome 清理功能检测到垃圾软件时,它可能会按照 SafeBrowsingExtendedReportingEnabled 设置的政策向 Google 报告与此项扫描相关的元数据。然后,Chrome 清理功能会询问用户是否要清理垃圾软件。用户可以选择与 Google 分享清理结果,以协助 Google 日后更好地检测垃圾软件。这些结果包括文件元数据、自动安装的扩展程序以及注册表项(如《Chrome 隐私权白皮书》中所述)。
-
-      如果此政策处于停用状态,当 Chrome 清理功能检测到垃圾软件时,它不会向 Google 报告与此项扫描相关的元数据,而是会覆盖 SafeBrowsingExtendedReportingEnabled 设置的任何政策。Chrome 清理功能会询问用户是否要清理垃圾软件。它不会向 Google 报告清理结果,也不会为用户提供用于向 Google 报告清理结果的选项。
-
-      如果此政策处于启用状态,当 Chrome 清理功能检测到垃圾软件时,它可能会按照 SafeBrowsingExtendedReportingEnabled 设置的政策向 Google 报告与此项扫描相关的元数据。Chrome 清理功能会询问用户是否要清理垃圾软件。它会向 Google 报告清理结果,但不会为用户提供用于禁止向 Google 报告清理结果的选项。
-
-      此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例,或者已注册设备管理服务的 Windows 10 Pro 或 Enterprise 实例。</translation>
 <translation id="172374442286684480">允许所有网站设置本地数据</translation>
 <translation id="1736269219679256369">允许关闭 SSL 警告页面并继续操作</translation>
 <translation id="1745973235372964482">不允许传输受密码保护的文件</translation>
@@ -552,7 +545,7 @@
           该功能目前在服务器端已停用。</translation>
 <translation id="1919802376548418720">使用 KDC 政策委派凭据。</translation>
 <translation id="1920046221095339924">允许在设备上使用受管理自助服务终端</translation>
-<translation id="1920772397574801429">通过设置此政策,您可以指定支持 <ph name="HTTP_NEGOTIATE" /> 身份验证(例如 Kerberos 身份验证)的 Android 身份验证应用提供的帐号所属的类型。您应该可以从身份验证应用的供应商处获得此信息。如需更多详细信息,请访问 Chromium 项目 ( https://goo.gl/hajyfN )
+<translation id="1920772397574801429">通过设置此政策,您可以指定支持 <ph name="HTTP_NEGOTIATE" /> 身份验证(例如 Kerberos 身份验证)的 Android 身份验证应用提供的帐号所属的类型。您应该可以从身份验证应用的供应商处获得此信息。如需更多详细信息,请访问 https://goo.gl/hajyfN 查看 Chromium 项目
 
       如果您不设置此政策,Android 设备上将停用 <ph name="HTTP_NEGOTIATE" /> 身份验证。</translation>
 <translation id="1930127294345368978">单个打印任务可以使用的纸张数上限</translation>
@@ -832,13 +825,13 @@
       如果 URI 模板包含 <ph name="HTTP_VARIABLE_DNS" /> 变量,向解析器发出的请求将会使用 <ph name="HTTP_METHOD_GET" />;否则,这些请求便会使用 <ph name="HTTP_METHOD_POST" />。
 
       格式有误的模板将被忽略。</translation>
-<translation id="2333228572393176330">此政策用于控制 TLS 1.3 中的一项安全功能,该功能可为连接提供保护,使其免受降级攻击。它可向后兼容,因此不会影响与合规的 TLS 1.2 服务器或代理之间的连接。但是,某些旧版 TLS 拦截代理存在一项实施漏洞,此漏洞会导致这些代理不兼容。
+<translation id="2333228572393176330">此政策用于控制 TLS 1.3 中的一项安全功能,该功能可为连接提供保护,使其免受降级攻击。此政策可向后兼容,因此不会影响与合规的 TLS 1.2 服务器或代理之间的连接。但是,某些旧版 TLS 拦截代理存在一项实施漏洞,此漏洞会导致这些代理不兼容。
 
       如果此政策设为 True 或未设置,<ph name="PRODUCT_NAME" /> 会为所有连接启用此类安全保护措施。
 
       如果此政策设为 False,那么对于使用本地安装的 CA 证书进行身份验证的连接,<ph name="PRODUCT_NAME" /> 会停用此类安全保护措施。对于使用公认可信的 CA 证书进行身份验证的连接,系统会始终启用此类保护措施。
 
-      在 <ph name="PRODUCT_NAME" /> 81 中,此政策的默认值从 false 改成了 true。受影响的代理预计会无法成功连接,并会返回错误代码 ERR_TLS13_DOWNGRADE_DETECTED。如果管理员需要更多时间来升级受影响的代理,则可以使用此政策暂时停用这项安全功能。此政策已在 86 版中移除。
+      在 <ph name="PRODUCT_NAME" /> 81 版中,此政策的默认值从 false 改成了 true。受影响的代理预计会无法成功连接,并会返回错误代码 ERR_TLS13_DOWNGRADE_DETECTED。如果管理员需要更多时间来升级受影响的代理,则可以使用此政策暂时停用这项安全功能。此政策已在 86 版中移除。
       </translation>
 <translation id="2333763898098246468">控制 <ph name="PRODUCT_NAME" /> 在 Windows 上的打印方式。
 
@@ -1001,12 +994,12 @@
 
           如果未设置此政策,则“插入符号突出显示”最初会处于停用状态,但用户可以随时启用该功能。</translation>
 <translation id="2509919237512982967">在 M84 之前的版本中使用旧版表单控件。</translation>
-<translation id="2512630007068794030">启用 <ph name="PRODUCT_NAME" /> 功能后,当离开某个网页时,系统会将此网页以现行状态(文档、树、脚本等)保存到往返缓存中。
+<translation id="2512630007068794030">启用 <ph name="PRODUCT_NAME" /> 功能后,当离开某个网页时,系统会将此网页以现行状态(文档树、脚本等)保存到往返缓存中。
           如果我们返回此网页,此网页将从往返缓存中恢复,显示之前缓存的网页状态。
 
           此功能可能会破坏一些未曾预料会被缓存的网站,尤其是需要在离开网页时触发上传处理程序的网站,因为在离开网页时系统不会分派上传事件,而网页却会保存到往返缓存中。
 
-          如果此政策已启用或未设置,系统会启用<ph name="PRODUCT_NAME" /> 功能。
+          如果此政策已启用或未设置,系统会启用 <ph name="PRODUCT_NAME" /> 功能。
 
           如果此政策已停用,系统会强制停用此功能。
           </translation>
@@ -1343,14 +1336,6 @@
           停用此设置与未配置此设置的效果相同。用户仍能在 <ph name="PRODUCT_NAME" /> 中更改它。
 
           此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例,或者已注册设备管理服务的 Windows 10 专业版或企业版实例,以及通过 MDM 进行管理或通过 MCX 加入网域的 macOS 实例。</translation>
-<translation id="2982571648442031489">配置安全浏览功能将会信任的一系列网域。这意味着:如果相应网址与所指定的任一网域匹配,安全浏览功能将不会检查其中是否含有危险资源(例如网上诱骗、恶意软件或垃圾软件)。
-      安全浏览功能的下载保护服务将不会检查托管在这些网域上的下载内容。
-      如果相应网页的网址与所指定的任一网域匹配,安全浏览功能的密码保护服务将不会检查密码重用情况。
-
-      如果您启用了此设置,安全浏览功能将会信任这些网域。
-      如果您停用了或不配置此设置,系统便会将默认开启的安全浏览保护功能应用于所有资源。
-
-      此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例,或者已注册设备管理服务的 Windows 10 专业版或企业版实例,以及通过 MDM 进行管理或通过 MCX 加入网域的 macOS 实例。</translation>
 <translation id="2985927503455169394">使用 Google 助理新手入门体验的默认模式</translation>
 <translation id="2987155890997901449">启用 ARC</translation>
 <translation id="2987227569419001736">控制对 Web Bluetooth API 的使用</translation>
@@ -1358,7 +1343,7 @@
 
       如果此政策已停用或未设置,<ph name="REQUIRED_PLATFORM_VERSION" /> 清单键便会被忽略,并且系统会按照常规流程进行自动更新。
 
-      警告:不得将 <ph name="PRODUCT_OS_NAME" /> 的版本控制权委派给自助服务终端应用,否则这可能会阻止设备获取软件更新和重要的安全修补程序。委派 <ph name="PRODUCT_OS_NAME" /> 版本控制权可能会将用户置于风险之中。</translation>
+      警告:不得将 <ph name="PRODUCT_OS_NAME" />的版本控制权委派给自助服务终端应用,否则这可能会阻止设备获取软件更新和重要的安全修补程序。委派 <ph name="PRODUCT_OS_NAME" /> 版本控制权可能会将用户置于风险之中。</translation>
 <translation id="299519952839316970">请注意,此政策已被弃用,并将在 <ph name="PRODUCT_OS_NAME" />版本 88 中移除。公用自助服务终端已不再受支持。请改用 <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" /> 来配置受管理访客会话。
       如果此政策设为 false,受管理访客会话的行为将会与 https://support.google.com/chrome/a/answer/3017014 页面中所述的标准“公用自助服务终端”的行为一样。
 
@@ -1467,11 +1452,6 @@
        如果此政策未设置或设为 false,系统将不会在 TLS 中启用 DHE 加密套件。您也可以将此政策设为 true,以便启用 DHE 加密套件,并与过时的服务器保持兼容。但这只是一种权宜之计,对服务器进行重新配置才是正确的做法。
 
       我们建议您让服务器改用 ECDHE 加密套件。如果这些加密套件不可用,请确保使用 RSA 密钥交换机制的加密套件处于启用状态。</translation>
-<translation id="3117706142826400449">如果此政策处于停用状态,Chrome 清理功能将无法扫描系统以检测是否存在垃圾软件,也无法执行清理操作。此外,还会禁止通过 chrome://settings/cleanup 手动触发 Chrome 清理功能。
-
-      如果此政策处于启用状态或未设置,Chrome 清理功能将会定期扫描系统以检测是否存在垃圾软件,并会在发现任何垃圾软件时询问用户是否要将其移除。此外,还会允许通过 chrome://settings 手动触发 Chrome 清理功能。
-
-      此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例,或者已注册设备管理服务的 Windows 10 Pro 或 Enterprise 实例。</translation>
 <translation id="3119125876909100625">允许上传受密码保护的文件</translation>
 <translation id="3122082892722698079">控制对不安全内容例外情况的使用</translation>
 <translation id="3143265893557969814">如果您设置了此政策,所有指定的数据类型都会从同步操作(无论是 Google 同步还是漫游个人资料同步)中排除。这有助于缩减漫游个人资料的大小,或者限制向 Google 同步服务器上传的数据类型。
@@ -1738,7 +1718,7 @@
 
       如需详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="3540935459049973317">应用级时间限制</translation>
-<translation id="3543579213273969284">如果此政策已启用,HTTP 身份验证机制便会遵循 KDC 政策的审批结果。换言之,如果 KDC 政策在服务凭单上设置了 <ph name="OK_AS_DELEGATE" />,<ph name="PRODUCT_NAME" /> 便会委派凭据。参阅 RFC 5896 ( https://tools.ietf.org/html/rfc5896.html )。服务应与 <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> 一致。
+<translation id="3543579213273969284">如果此政策已启用,HTTP 身份验证机制会遵循 KDC 政策的审批结果。换言之,如果 KDC 政策在服务凭单上设置了 <ph name="OK_AS_DELEGATE" />,<ph name="PRODUCT_NAME" /> 便会委派凭据。参阅 RFC 5896 ( https://tools.ietf.org/html/rfc5896.html )。服务应与 <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> 一致。
 
       如果此政策已停用或未设置,那么在支持的平台上,只会遵循 <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> 政策,KDC 政策会被忽略。
 
@@ -2085,13 +2065,6 @@
 <translation id="4061590579642538878">报告有关崩溃报告的信息。</translation>
 <translation id="4075675819066819571">将文件架放置到屏幕左侧</translation>
 <translation id="4075864623710596000">此列表中指定的主机名将免受 HSTS 政策检查,该检查可能会将请求从 HTTP 升级到 HTTPS。此政策只允许使用单标签主机名。必须使用规范化主机名:任何 IDN 都必须转换为对应的 A 标签格式,并且所有 ASCII 字母都必须小写。此政策只适用于指定的特定主机名,不适用于指定名称的子网域。</translation>
-<translation id="4076584741592854827">此政策用于指定一系列应在下载完毕后自动打开的文件类型。罗列文件类型时不应添加前导分隔符,因此请罗列“txt”而非“.txt”。
-
-      应自动打开的文件类型所对应的文件仍须接受安全浏览检查(若已启用);如果未通过检查,便不会打开。
-
-      如果您不设置此政策,只有那些已被用户指定为自动打开的文件类型才会在下载完毕后自动打开。
-
-      此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例,或者已注册设备管理服务的 Windows 10 专业版或企业版实例,以及通过 MDM 进行管理或通过 MCX 加入网域的 macOS 实例。</translation>
 <translation id="408029843066770167">允许向 Google 时间服务发出查询</translation>
 <translation id="408076456549153854">允许登录浏览器</translation>
 <translation id="4082498585300984671">启用“点击通话”功能</translation>
@@ -2469,14 +2442,14 @@
 
       此政策已被弃用,请改用 <ph name="EXTERNAL_PRINT_SERVERS_ALLOWLIST" />。</translation>
 <translation id="4668325077104657568">默认图片设置</translation>
-<translation id="4668497019777708116">指定可启用为 <ph name="PRODUCT_OS_NAME" /> 锁定屏幕中记事应用的应用的列表。
+<translation id="4668497019777708116">指定在 <ph name="PRODUCT_OS_NAME" />锁定屏幕中,可作为笔记应用启用的应用列表。
 
-      如果首选的记事应用已在锁定屏幕中启用,锁定屏幕将包含用于启动首选记事应用的界面元素。
-      启动后,应用将能在锁定屏幕之上创建应用窗口,并在锁定屏幕情境中创建数据项(记事)。当主要用户会话解锁时,应用将能把已创建的记事导入此会话。目前,锁定屏幕上仅支持 Chrome 记事应用。
+      如果首选的笔记应用已在锁定屏幕中启用,锁定屏幕将包含用于启动首选笔记应用的界面元素。
+      启动后,应用将能在锁定屏幕之上创建应用窗口,并在锁定屏幕情境中创建数据项(笔记)。当主要用户会话解锁时,应用将能把已创建的笔记导入此会话。目前,锁定屏幕上仅支持 Chrome 笔记应用。
 
       如果您不设置此政策,只有当应用的扩展程序 ID 包含在政策列表值中时,用户才能在锁定屏幕上启用应用。
-      因此,如果您将政策设为空列表,系统将完全禁用锁定屏幕上的记事功能。
-      注意:此政策包含应用 ID 并不一定表示用户能在锁定屏幕上将该应用作为记事应用启用 - 例如,在 Chrome 61 中,可用应用集还受到平台的限制。
+      因此,如果您将政策设为空列表,系统将完全禁用锁定屏幕上的笔记功能。
+      注意:此政策包含应用 ID 并不一定表示用户能在锁定屏幕上将该应用作为笔记应用启用 - 例如,在 Chrome 61 版中,可用应用集还受到平台的限制。
 
       如果您不设置此政策,此政策便不会对用户可在锁定屏幕上启用的应用集施加任何限制。
 
@@ -3968,7 +3941,7 @@
 <translation id="6810445994095397827">在这些网站上阻止 JavaScript</translation>
 <translation id="6813263547126514821">电源和关机</translation>
 <translation id="681446116407619279">支持的身份验证方案</translation>
-<translation id="6815483833848348029">如果此政策已启用或未设置,当设备离线时,如果系统已设置设备本地帐号以实现零延迟的自动登录,<ph name="PRODUCT_OS_NAME" /> 会显示网络配置提示。
+<translation id="6815483833848348029">如果此政策已启用或未设置,当设备离线时,如果系统已设置设备本地帐号以实现零延迟的自动登录,<ph name="PRODUCT_OS_NAME" />会显示网络配置提示。
 
       如果此政策已停用,系统则会显示错误消息。</translation>
 <translation id="6821268164692776674"><ph name="CLOUD_PRINT_NAME" />和“保存到 Google 云端硬盘”目的地</translation>
@@ -4010,19 +3983,6 @@
 
       如果您不设置此政策,默认情况下,受企业管理的用户和不受管理的用户都能选择启用“附近分享”功能。</translation>
 <translation id="6864244339257535116">允许上传和下载受密码保护的文件</translation>
-<translation id="6870295914868104867">通过设置此政策,您能以列表形式指定哪些应用和扩展程序无需用户互动即可静默安装且无法由用户卸载或停用。权限由系统默认授予,其中包括对 enterprise.deviceAttributes 和 enterprise.platformKeys 扩展程序 API 的权限(这 2 个 API 不适用于非强制安装的应用和扩展程序。)
-
-      如果您不设置此政策,系统将不会自动安装任何应用或扩展程序,而且用户可在 <ph name="PRODUCT_NAME" /> 中卸载任何应用或扩展程序。
-
-      此政策会取代 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> 政策。如果以前强制安装的某个应用或扩展程序被从此列表中移除了,<ph name="PRODUCT_NAME" /> 便会自动卸载该应用或扩展程序。
-
-      对于未加入 <ph name="MS_AD_NAME" /> 网域的 Windows® 实例,强制安装仅限于 Chrome 网上应用店中所列的应用和扩展程序。
-
-      用户可通过开发者工具更改任何扩展程序的源代码,这可能会导致扩展程序无法正常运行。如果您不希望用户进行此类更改,请设置 <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> 政策。
-
-      此政策的每个列表项都是一个字符串,其中包含一个扩展程序 ID 和一个可选的“更新”网址(这两者之间以英文分号 [;] 分隔)。扩展程序 ID 是一个由 32 个字母构成的字符串;若想查看该字符串,一种方法是在开发者模式下访问 chrome://extensions。“更新”网址(若指定)应指向一个更新清单 XML 文档 (https://developer.chrome.com/extensions/autoupdate)。默认情况下,系统会使用 Chrome 网上应用店的更新网址。此政策中设置的“更新”网址仅用于初次安装;相应扩展程序的后续更新将会使用该扩展程序的清单中的更新网址。
-
-       注意:此政策不适用于无痕模式。了解如何托管扩展程序 (https://developer.chrome.com/extensions/hosting)。</translation>
 <translation id="687046793986382807">此政策自35版<ph name="PRODUCT_NAME" />起已停止使用。
 
       无论选项值是什么,系统都会向网页报告内存信息,但出于安全考虑,系统会限制所报告的内存大小,并会限制更新率。要获取准确的实时数据,请使用遥测等工具。</translation>
@@ -4561,11 +4521,11 @@
 <translation id="7632724434767231364">GSSAPI 库名称</translation>
 <translation id="7642890175637942277">默认情况下,当 CCT/PWA 首次运行时,系统会显示服务条款。如果此政策已停用,服务条款对话框在首次运行体验或后续运行期间就不会出现。如果此政策已启用或未设置,则服务器条款对话框会在首次运行体验期间出现。其他注意事项:
 
-      - 此政策仅适用于可由统一端点管理供应商配置的完全托管 Android 设备。
+      - 此政策仅适用于可由统一端点管理供应商配置的全代管式 Android 设备。
 
       - 如果此政策已停用,BrowserSignin 政策则不会产生任何效力。
 
-      - 如果此政策已停用,系统就不会将指标发送给服务器。
+      - 如果此政策已停用,系统不会将指标发送给服务器。
 
       - 如果此政策已停用,浏览器的功能会受到限制。
 
@@ -5229,7 +5189,7 @@
 
       如果此政策已停用,系统会关闭 NTLMv2。
 
-      所有最新版本的 Samba 和 <ph name="MS_WIN_NAME" /> 服务器均支持 NTLMv2。只有为了实现向后兼容性时才应关闭它,因为它会降低身份验证的安全性。</translation>
+      所有最新版本的 Samba 和 <ph name="MS_WIN_NAME" /> 服务器均支持 NTLMv2。只有为了实现向后兼容性时才应关闭此功能,因为关闭此功能会降低身份验证的安全性。</translation>
 <translation id="8606263947930257189">控制 <ph name="PRODUCT_NAME" /> 可否冻结已在后台运行至少 5 分钟的标签页。
 
       如果此政策设为 true,系统可能会冻结已在后台运行至少 5 分钟的标签页。冻结标签页可以降低 CPU、电池和内存使用量。<ph name="PRODUCT_NAME" /> 会使用试探法来避免冻结在后台执行有用工作(例如显示通知、播放声音、流式传输视频)的标签页。网络开发者也可选择停用用于冻结网站标签页的功能 (https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/browser/performance_manager/docs/freezing_opt_out_opt_in.md)。
@@ -5252,7 +5212,7 @@
 
         如果未设置此政策,系统将会对所有网站使用全局默认值(不会自动授予访问权限)。</translation>
 <translation id="8631434304112909927">到版本 <ph name="UNTIL_VERSION" /> 为止</translation>
-<translation id="8631437968147930597">可在 <ph name="PRODUCT_OS_NAME" /> 锁定屏幕中显示的记事应用的列表。</translation>
+<translation id="8631437968147930597">可在 <ph name="PRODUCT_OS_NAME" />锁定屏幕中显示的笔记应用的列表。</translation>
 <translation id="8649763579836720255">Chrome 操作系统设备可使用远程凭证(经验证的访问凭证)来获取由 Chrome OS CA 颁发的证书,以证明该设备符合播放受保护内容的条件。此过程涉及向 Chrome OS CA 发送用于唯一标识设备的硬件背书信息。
 
           如果该设置为 False,设备将不使用远程凭证来保护内容,并且设备可能无法播放受保护内容。
@@ -5643,11 +5603,6 @@
       浏览器重新启动/设备重启后,将会恢复用户会话。</translation>
 <translation id="9160028464653564229">不允许任何网站请求通过 Serial API 使用串行端口</translation>
 <translation id="9167719789236691545">在 <ph name="PRODUCT_OS_NAME" />的“文件”应用中停用 Google 云端硬盘</translation>
-<translation id="917514578273777202">如果此政策已启用,当用户在地址栏中输入非网址的文字时,系统将会执行默认搜索。若要指定默认搜索服务提供商,请设置其余的默认搜索政策。如果您将这些政策留空,用户可自行选择默认提供商。如果此政策已停用,当用户在地址栏中输入非网址的文字时,系统将不会执行任何搜索。
-
-      如果您设置了此政策,用户便无法在 <ph name="PRODUCT_NAME" /> 中更改它。如果您不设置此政策,系统将启用默认的搜索服务提供商,而且用户可以设置搜索服务提供商列表。
-
-      注意:此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows® 实例,或者 Windows 10 专业版或 Chrome 企业版升级,以及通过 MDM 进行管理或通过 MCX 加入网域的 macOS 实例。</translation>
 <translation id="9185107612228451403">配置与扩展程序相关的政策。用户不能安装任何已被列入黑名单的扩展程序(除非它们已被加入白名单)。您也可以在 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> 中指定某些扩展程序,从而强制 <ph name="PRODUCT_NAME" /> 自动安装这些扩展程序。强制安装的扩展程序均会被安装(无论它们是否包含在黑名单内)。</translation>
 <translation id="9187743794267626640">禁止装载外部存储设备</translation>
 <translation id="9190456586252617675">此政策旨在控制 Google 助理新手入门体验的模式。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 9749e73..326bfd7 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -437,13 +437,6 @@
 
       如果將這項政策設為 False,使用者無法新增、移除或修改書籤,但仍可以使用現有書籤。</translation>
 <translation id="1715151459541210849">啟用語音輸入無障礙功能</translation>
-<translation id="1717817358640580294">如未設定這項政策,當 Chrome 清理功能偵測到垃圾軟體時,可能會根據 SafeBrowsingExtendedReportingEnabled 設定的政策,將掃描作業的相關中繼資料回報給 Google。回報完畢後,Chrome 清理功能會詢問使用者是否要將偵測到的垃圾軟體清除。使用者可以選擇將清理作業的執行結果分享給 Google,讓日後的垃圾軟體偵測作業更精確。分享的結果包括檔案中繼資料、自動安裝的擴充功能和登錄機碼,詳情請見《Chrome 隱私權白皮書》。
-
-      如果停用這項政策,當 Chrome 清理功能偵測到垃圾軟體時,就不會將掃描作業的相關中繼資料回報給 Google,且會覆寫 SafeBrowsingExtendedReportingEnabled 設定的政策。此外,Chrome 清理功能會詢問使用者是否要將偵測到的垃圾軟體清除。清理作業的執行結果不會回報給 Google,使用者也無法選擇回報。
-
-      如果啟用這項政策,當 Chrome 清理功能偵測到垃圾軟體時,可能會根據 SafeBrowsingExtendedReportingEnabled 設定的政策,將掃描作業的相關中繼資料回報給 Google。此外,Chrome 清理功能會詢問使用者是否要將偵測到的垃圾軟體清除。清理作業的執行結果將回報給 Google,且使用者無法選擇不回報。
-
-      這項政策僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的 Windows 執行個體,或是已註冊裝置管理服務的 Windows 10 專業版或企業版執行個體。</translation>
 <translation id="172374442286684480">允許所有網站設定本機資料</translation>
 <translation id="1736269219679256369">允許忽略 SSL 警告網頁,繼續前往原本指定的頁面</translation>
 <translation id="1745973235372964482">不允許受密碼保護的檔案</translation>
@@ -1338,15 +1331,6 @@
           停用這項設定等同於未設定。使用者仍可在 <ph name="PRODUCT_NAME" /> 中變更這項設定。
 
           這項政策僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的 Windows 執行個體、或是已註冊裝置管理服務的 Windows 10 專業版或企業版執行個體,以及已透過行動裝置管理 (MDM) 所管理或已透過 MCX 加入某個網域的 macOS 執行個體。</translation>
-<translation id="2982571648442031489">設定安全瀏覽功能信任的網域清單。這表示:
-      如果網路詐騙、惡意軟體或垃圾軟體等危險資源的網址與這些網域相符,安全瀏覽功能就不會進行檢查。
-      安全瀏覽功能的下載保護服務不會檢查由這些網域所代管的下載內容。
-      如果網頁的網址與這些網域相符,安全瀏覽功能的密碼保護服務就不會檢查密碼重複使用情形。
-
-      如果啟用這項設定,安全瀏覽功能將信任這些網域。
-      如果停用或不指定這項設定,則系統會對所有資源套用預設的安全瀏覽保護機制。
-
-      這項政策僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的 Windows 執行個體、或是已註冊裝置管理服務的 Windows 10 專業版或企業版執行個體,以及已透過行動裝置管理 (MDM) 所管理或已透過 MCX 加入某個網域的 macOS 執行個體。</translation>
 <translation id="2985927503455169394">使用 Google 助理入門使用體驗的預設模式</translation>
 <translation id="2987155890997901449">啟用 ARC</translation>
 <translation id="2987227569419001736">控制 Web Bluetooth API 使用權限</translation>
@@ -1463,11 +1447,6 @@
       如果未設定這項政策或將其設為 false,系統就不會在 TLS 中啟用 DHE 加密套件。如要啟用 DHE 加密套件並維持與過舊伺服器的相容性,您也可以將這項政策設為 true。這種方法是權宜之計,正確的做法是重新設定伺服器。
 
       建議您讓伺服器改用 ECDHE 加密套件。如果無法使用 ECDHE 加密套件,請確定啟用的加密套件會使用 RSA 金鑰交換機制。</translation>
-<translation id="3117706142826400449">如果停用這項政策,系統會禁止 Chrome 清理功能掃描系統中的垃圾軟體及執行清理作業。此外,使用者將無法透過 chrome://settings/cleanup 手動觸發 Chrome 清理功能。
-
-      如果啟用或未設定這項政策,Chrome 清理功能會定期掃描系統中的垃圾軟體,並且在找到垃圾軟體時詢問使用者是否要予以移除。此外,使用者將可透過 chrome://settings/cleanup 手動觸發 Chrome 清理功能。
-
-      這項政策僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的 Windows 執行個體,或是已註冊裝置管理服務的 Windows 10 專業版或企業版執行個體。</translation>
 <translation id="3119125876909100625">允許上傳受密碼保護的檔案</translation>
 <translation id="3122082892722698079">控管可使用不安全內容的例外網站</translation>
 <translation id="3143265893557969814">如果設定了這項政策,系統會將所有指定的資料類型從同步處理作業 (包含 Google Sync 和漫遊設定檔的同步處理作業) 中排除。這有助於縮減漫遊設定檔的大小,或限制上傳到 Google Sync 伺服器的資料類型。
@@ -2081,13 +2060,6 @@
 <translation id="4061590579642538878">回報當機報告相關資訊。</translation>
 <translation id="4075675819066819571">將檔案櫃放在畫面的左側</translation>
 <translation id="4075864623710596000">這份清單中指定的主機名稱會從 HTTP 嚴格傳輸安全性政策檢查作業中排除,該檢查可能會將要求從 HTTP 升級為 HTTPS。這項政策只允許單一標籤主機名稱。主機名稱必須標準化:任何 IDN 都必須轉換為單一標籤格式,且所有 ASCII 字母都必須使用小寫。這項政策只適用於指定的主機名稱,不適用於指定主機名稱的子網域。</translation>
-<translation id="4076584741592854827">指定下載後應自動開啟的檔案類型清單。列出檔案類型時,請勿加入開頭的分隔符,因此請列出「txt」,而非「.txt」。
-
-      在啟用安全瀏覽功能的情況下,即便使用者已指定要讓系統自動開啟某些類型的檔案,Chrome 還是會檢查這類檔案,如果未通過檢查,就不會開啟檔案。
-
-      如果不設定這項政策,只有使用者已指定要自動開啟的檔案類型會在下載後自動開啟。
-
-      這項政策僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的 Windows 執行個體、或是已註冊裝置管理服務的 Windows 10 專業版或企業版執行個體,以及已透過行動裝置管理 (MDM) 所管理或已透過 MCX 加入某個網域的 macOS 執行個體。</translation>
 <translation id="408029843066770167">允許向 Google 時間服務傳送查詢</translation>
 <translation id="408076456549153854">允許登入瀏覽器</translation>
 <translation id="4082498585300984671">啟用「點選通話」功能</translation>
@@ -4015,19 +3987,6 @@
 
       如果不設定這項政策,預設值是允許受企業管理以及未受管理的使用者執行這項功能。</translation>
 <translation id="6864244339257535116">允許使用者上傳及下載受密碼保護的檔案</translation>
-<translation id="6870295914868104867">你可以透過這項政策指定要以無訊息方式 (使用者無需操作) 安裝的應用程式和擴充功能清單;使用者無法解除安裝或停用這些應用程式和擴充功能。系統會直接授予 enterprise.deviceAttributes 和 enterprise.platformKeys 擴充功能 API 等權限。(非強制安裝的應用程式和擴充功能無法取得這 2 個 API 的權限。)
-
-      如果未設定這項政策,系統不會自動安裝任何應用程式或擴充功能,且使用者可以在 <ph name="PRODUCT_NAME" /> 中解除安裝任何應用程式或擴充功能。
-
-          這項政策會取代 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> 政策。如果從這份清單中移除先前強制安裝的應用程式或擴充功能,<ph name="PRODUCT_NAME" /> 會自動將其解除安裝。
-
-      如果 Windows® 執行個體未加入 <ph name="MS_AD_NAME" /> 網域,系統只會強制安裝 Chrome 線上應用程式商店中的應用程式和擴充功能。
-
-      使用者可透過開發人員工具變更任何擴充功能的原始碼 (這或許會造成擴充功能無法正常運作)。如果你對此有所顧慮,請設定 <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> 政策。
-
-      這項政策的每個清單項目都是一行字串,其中包含以分號 (;) 區隔的擴充功能 ID 和「更新」網址 (選用)。擴充功能 ID 為 32 個字母的字串,你可以在開發人員模式下前往 chrome://extensions 等位置查看這類字串。「更新」網址 (如有指定) 應指向更新資訊清單 XML 文件 ( https://developer.chrome.com/extensions/autoupdate )。根據預設,系統會使用 Chrome 線上應用程式商店的更新網址。這項政策設定的「更新」網址僅適用於初次安裝,後續的擴充功能更新將使用擴充功能資訊清單中的更新網址。
-
-       注意:這項政策不適用於無痕模式。請前往以下頁面,參閱有關代管擴充功能的資訊:https://developer.chrome.com/extensions/hosting。</translation>
 <translation id="687046793986382807">我們已於 <ph name="PRODUCT_NAME" /> 35 版中移除這項政策。
 
       無論其選項值為何,系統都會在網頁上回報記憶體資訊;但基於安全性考量,系統會限制回報的資料量以及更新頻率。如要取得即時準確資料,請使用 Telemetry 等工具。</translation>
@@ -5659,11 +5618,6 @@
       使用者的工作階段會在重新啟動後恢復。</translation>
 <translation id="9160028464653564229">不允許任何網站透過 Serial API 要求存取序列埠</translation>
 <translation id="9167719789236691545">禁止在 <ph name="PRODUCT_OS_NAME" />的「檔案」應用程式中使用 Google 雲端硬碟</translation>
-<translation id="917514578273777202">如果將這項政策設為啟用,當使用者在網址列中輸入非網址的文字時,系統會執行預設搜尋。如要指定預設搜尋引擎,請設定其餘的預設搜尋政策。如果將其餘的預設搜尋政策保留空白,使用者就可以選擇預設搜尋引擎。如果將這項政策設為停用,使用者在網址列中輸入非網址的文字時,系統不會執行任何搜尋。
-
-      如果設定這項政策,使用者將無法在 <ph name="PRODUCT_NAME" /> 中進行變更。如果未設定,系統會啟用預設搜尋引擎,且使用者可以設定搜尋引擎清單。
-
-      注意:這項政策僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的 Windows® 執行個體、Windows 10 專業版或 Chrome Enterprise 升級版,以及已透過行動裝置管理 (MDM) 所管理或已透過 MCX 加入某個網域的 macOS 執行個體。</translation>
 <translation id="9185107612228451403">這會設定擴充功能相關政策。使用者不得安裝黑名單上的擴充功能,只有將相關擴充功能加到許可清單後才能安裝。你也可以強制 <ph name="PRODUCT_NAME" /> 自動安裝某些擴充功能,只要在 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> 政策中指定這些擴充功能即可。如果強制安裝某些擴充功能,不論這些擴充功能是否列在黑名單上,系統一律會予以安裝。</translation>
 <translation id="9187743794267626640">停用外部儲存裝置掛載功能</translation>
 <translation id="9190456586252617675">這項政策可控管 Google 助理入門使用體驗的模式。
diff --git a/components/security_interstitials/core/metrics_helper.cc b/components/security_interstitials/core/metrics_helper.cc
index 0bbf58d..5bd3947d 100644
--- a/components/security_interstitials/core/metrics_helper.cc
+++ b/components/security_interstitials/core/metrics_helper.cc
@@ -9,6 +9,7 @@
 
 #include "base/bind.h"
 #include "base/metrics/histogram.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/metrics/user_metrics.h"
 #include "base/metrics/user_metrics_action.h"
 #include "components/history/core/browser/history_service.h"
@@ -21,25 +22,16 @@
 
 namespace {
 
-// Directly adds to the UMA histograms, using the same properties as
-// UMA_HISTOGRAM_ENUMERATION, because the macro doesn't allow non-constant
-// histogram names.
 void RecordSingleDecisionToMetrics(MetricsHelper::Decision decision,
                                    const std::string& histogram_name) {
-  base::HistogramBase* histogram = base::LinearHistogram::FactoryGet(
-      histogram_name, 1, MetricsHelper::MAX_DECISION,
-      MetricsHelper::MAX_DECISION + 1,
-      base::HistogramBase::kUmaTargetedHistogramFlag);
-  histogram->Add(decision);
+  base::UmaHistogramExactLinear(histogram_name, decision,
+                                MetricsHelper::MAX_DECISION);
 }
 
 void RecordSingleInteractionToMetrics(MetricsHelper::Interaction interaction,
                                       const std::string& histogram_name) {
-  base::HistogramBase* histogram = base::LinearHistogram::FactoryGet(
-      histogram_name, 1, MetricsHelper::MAX_INTERACTION,
-      MetricsHelper::MAX_INTERACTION + 1,
-      base::HistogramBase::kUmaTargetedHistogramFlag);
-  histogram->Add(interaction);
+  base::UmaHistogramExactLinear(histogram_name, interaction,
+                                MetricsHelper::MAX_INTERACTION);
 }
 
 void MaybeRecordDecisionAsAction(MetricsHelper::Decision decision,
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index a05bb84a..3ce1d6c 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -1485,6 +1485,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> kom nie sekuriteitstandaarde na nie.</translation>
 <translation id="7210993021468939304">Linux-aktiwiteit binne die houer, en kan Linux-programme binne die houer installeer en laat loop</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /> oor hierdie probleem.</translation>
+<translation id="7217745192097460130">Gebruik Raak-ID om jou aankoop te verifieer en te voltooi?</translation>
 <translation id="7219179957768738017">Die verbinding gebruik <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Verwerk tans</translation>
 <translation id="7221855153210829124">Wys kennisgewings</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 9f812fb..47aa4ea 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -840,7 +840,7 @@
 <translation id="4435702339979719576">የፖስታ ካርድ)</translation>
 <translation id="443673843213245140">የተኪ መጠቀም ተሰናክሏል ግን ግልጽ የሆነ የተኪ ውቅር ተገልጿል።</translation>
 <translation id="4466881336512663640">የቅጽ ለውጦች ይጠፋሉ። እርግጠኛ ነዎት መቀጠል ይፈልጋሉ?</translation>
-<translation id="4476953670630786061">ይህ ቅጽ ደህንነቱ የተጠበቀ አይደለም። ራስ-ሰር ሙላ ጠፍቷል።</translation>
+<translation id="4476953670630786061">ይህ ቅጽ ደህንነቱ የተጠበቀ አይደለም። ራስ-ሙላ ጠፍቷል።</translation>
 <translation id="4477350412780666475">ቀጣይ ትራክ</translation>
 <translation id="4482953324121162758">ይህ ጣቢያ አይተረጎምም።</translation>
 <translation id="4490717597759821841">A7</translation>
@@ -1475,6 +1475,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> የደህንነት መስፈርቶችን አያከብርም።</translation>
 <translation id="7210993021468939304">በመያዣው ውስጥ ያለ የLinux እንቅስቃሴ፣ እና በመያዣው ውስጥ የLinux መተግበሪያዎችን መጫንና ማሄድ ይችላል</translation>
 <translation id="721197778055552897">ስለዚህ ችግር <ph name="BEGIN_LINK" />ተጨማሪ ለመረዳት<ph name="END_LINK" /> ።</translation>
+<translation id="7217745192097460130">ግዢዎን ለማረጋገጥ እና ለማጠናቀቅ የንክኪ መታወቂያን ይጠቀሙ?</translation>
 <translation id="7219179957768738017">ግንኙነቱ <ph name="SSL_VERSION" />ን ይጠቀማል።</translation>
 <translation id="7220786058474068424">በማስሄድ ላይ</translation>
 <translation id="7221855153210829124">ማሳወቂያዎችን አሳይ</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index dcaa22fe..1937b05 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -1485,7 +1485,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> se ne pridržava sigurnosnih standarda.</translation>
 <translation id="7210993021468939304">Aktivnost Linuxa se nalazi u spremniku i moguće je instalirati i pokrenuti Linux aplikacije unutar spremnika</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /> o ovom problemu.</translation>
-<translation id="7217745192097460130">Upotrijebite značajku Touch ID i dovršite kupnju?</translation>
+<translation id="7217745192097460130">Koristiti Touch ID da potvrdite i završite kupovinu?</translation>
 <translation id="7219179957768738017">Veza koristi <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Obrada</translation>
 <translation id="7221855153210829124">Prikaži obavještenja</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index c7f21ae..70aff41 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -1474,6 +1474,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> no compleix la normativa de seguretat.</translation>
 <translation id="7210993021468939304">L'activitat de Linux al contenidor; i també pot instal·lar-hi i executar-hi aplicacions de Linux</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /> sobre aquest problema.</translation>
+<translation id="7217745192097460130">Vols fer servir Touch ID per verificar la teva identitat i completar la compra?</translation>
 <translation id="7219179957768738017">La connexió utilitza <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">S'està processant</translation>
 <translation id="7221855153210829124">Mostrar notificacions</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 56a877f..c249201a 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -1485,6 +1485,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> overholder ikke sikkerhedsstandarderne.</translation>
 <translation id="7210993021468939304">Linux-aktivitet i containeren. Kan også installere og køre Linux-apps i containeren.</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /> om dette problem.</translation>
+<translation id="7217745192097460130">Vil du bruge Touch ID til at bekræfte og gennemføre dit køb?</translation>
 <translation id="7219179957768738017">Forbindelsen bruger <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Behandler</translation>
 <translation id="7221855153210829124">Vise notifikationer</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 6e45a1f..1080572 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -1483,6 +1483,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> از استانداردهای امنیتی پیروی نمی‌کند.</translation>
 <translation id="7210993021468939304">‏فعالیت Linux در محتوی و می‌توانید برنامه‌های Linux را در محتوی نصب و اجرا کنید</translation>
 <translation id="721197778055552897">دربارهٔ این مشکل <ph name="BEGIN_LINK" />بیشتر بیاموزید<ph name="END_LINK" />.</translation>
+<translation id="7217745192097460130">از «شناسه لمسی» برای تأیید و تکمیل خرید استفاده شود؟</translation>
 <translation id="7219179957768738017">اتصال از <ph name="SSL_VERSION" /> استفاده می‌کند.</translation>
 <translation id="7220786058474068424">درحال پردازش</translation>
 <translation id="7221855153210829124">نمایش اعلان‌ها</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 17421c9..b6f363d 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -1482,6 +1482,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> non cumpre cos estándares de seguranza.</translation>
 <translation id="7210993021468939304">Actividade de Linux no contedor, e pode instalar e executar aplicacións de Linux no contedor.</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /> acerca deste problema.</translation>
+<translation id="7217745192097460130">Queres usar Touch ID para verificar e completar a compra?</translation>
 <translation id="7219179957768738017">A conexión utiliza <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Procesando</translation>
 <translation id="7221855153210829124">Mostrar notificacións</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 20e94b7..a276e41 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -1481,6 +1481,7 @@
 <translation id="7210863904660874423">A(z) <ph name="HOST_NAME" /> nem felel meg a biztonsági szabványoknak.</translation>
 <translation id="7210993021468939304">A tárolóban végzett linuxos tevékenység megtekintése, valamint Linux-alkalmazások telepítése és futtatása a tárolóban</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />További információ<ph name="END_LINK" /> erről a hibáról.</translation>
+<translation id="7217745192097460130">Szeretné Touch ID használatával igazolni és befejezni vásárlását?</translation>
 <translation id="7219179957768738017">A kapcsolat a következőt használja: <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Feldolgozás alatt</translation>
 <translation id="7221855153210829124">Értesítéseket megjeleníteni</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index b3bf907b..6032bc1 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -1486,6 +1486,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> uppfyllir ekki öryggiskröfur.</translation>
 <translation id="7210993021468939304">Virkni innan Linux-rammans og getur sett upp og keyrt Linux-forrit innan rammans</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /> um þetta vandamál.</translation>
+<translation id="7217745192097460130">Viltu nota Touch ID til að staðfesta og ljúka kaupunum?</translation>
 <translation id="7219179957768738017">Tengingin notar <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Í vinnslu</translation>
 <translation id="7221855153210829124">Sýna tilkynningar</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index d6e98a2..e8be48d 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -148,7 +148,7 @@
 <translation id="1531205177818805254">Exec</translation>
 <translation id="1532118530259321453">Questa pagina dice</translation>
 <translation id="153384715582417236">Per il momento è tutto</translation>
-<translation id="1536390784834419204">Traduci la pagina</translation>
+<translation id="1536390784834419204">Traduci pagina</translation>
 <translation id="154408704832528245">Scegli l'indirizzo di consegna</translation>
 <translation id="1549470594296187301">JavaScript deve essere attivato per utilizzare questa funzione.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -1813,7 +1813,7 @@
 <translation id="8503813439785031346">Nome utente</translation>
 <translation id="8508648098325802031">Icona Ricerca</translation>
 <translation id="8522552481199248698">Chrome può aiutarti a proteggere il tuo Account Google e a modificare la password.</translation>
-<translation id="8530813470445476232">Cancella la cronologia di navigazione, i cookie, svuota la cache e altro nelle impostazioni di Chrome</translation>
+<translation id="8530813470445476232">Cancella la cronologia di navigazione e i cookie, svuota la cache e altro ancora nelle impostazioni di Chrome</translation>
 <translation id="8541158209346794904">Dispositivo Bluetooth</translation>
 <translation id="8542014550340843547">Tripla pinzatura in basso</translation>
 <translation id="8543181531796978784">Puoi <ph name="BEGIN_ERROR_LINK" />segnalare un problema di rilevamento<ph name="END_ERROR_LINK" /> oppure, se sei consapevole dei rischi per la tua sicurezza, <ph name="BEGIN_LINK" />visita questo sito non sicuro<ph name="END_LINK" />.</translation>
@@ -1951,7 +1951,7 @@
 <translation id="9173282814238175921">Documento singolo/Nuovo foglio</translation>
 <translation id="917450738466192189">Il certificato del server non è valido.</translation>
 <translation id="9174917557437862841">Pulsante per passare alla scheda, premi INVIO per passare a questa scheda</translation>
-<translation id="9179703756951298733">Gestisci i pagamenti e le informazioni della tua carta di credito nelle impostazioni di Chrome</translation>
+<translation id="9179703756951298733">Gestisci i metodi di pagamento e le informazioni delle tue carte di credito nelle impostazioni di Chrome</translation>
 <translation id="9183302530794969518">Documenti Google</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> utilizza un protocollo non supportato.</translation>
 <translation id="9191834167571392248">Perforatura in basso a sinistra</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 3cfa294..e1d0e002 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -1472,6 +1472,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> ಭದ್ರತೆ ಮಾನದಂಡಗಳನ್ನು ಅನುಸರಿಸುತ್ತಿಲ್ಲ.</translation>
 <translation id="7210993021468939304">ಕಂಟೇನರ್‌ನಲ್ಲಿ Linux ಚಟುವಟಿಕೆ ಮತ್ತು ಕಂಟೇನರ್‌ನಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಬಹುದಾದ ಮತ್ತು ರನ್ ಮಾಡಬಹುದಾದ Linux ಆ್ಯಪ್‌ಗಳು</translation>
 <translation id="721197778055552897">ಈ ತೊಂದರೆಯ ಬಗ್ಗೆ <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" />.</translation>
+<translation id="7217745192097460130">ನಿಮ್ಮ ಖರೀದಿಯನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಪೂರ್ಣಗೊಳಿಸಲು ಸ್ಪರ್ಶದ ಐಡಿಯನ್ನು ಬಳಸಿ?</translation>
 <translation id="7219179957768738017">ಸಂಪರ್ಕವು <ph name="SSL_VERSION" /> ಅನ್ನು ಬಳಸುತ್ತದೆ.</translation>
 <translation id="7220786058474068424">ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="7221855153210829124">ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಿ</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index 4a339a41..c6f0af4b 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -1685,7 +1685,7 @@
 <translation id="7947285636476623132">Мөөнөтү аяктоочу жылды текшерип, кайталап көрүңүз</translation>
 <translation id="7951415247503192394">(32 бит)</translation>
 <translation id="7953569069500808819">Жогорку четин жамоо</translation>
-<translation id="7954523986259449736">Сайт коопту байланышты колдонуп жатканына байланыштуу маалыматыңыз башкаларга көрүнүп турат.</translation>
+<translation id="7954523986259449736">Сайт кооптуу байланышты колдонуп жаткандыктан, маалыматыңыз башкаларга көрүнүп турат.</translation>
 <translation id="7956713633345437162">Мобилдик кыстармалар</translation>
 <translation id="7961015016161918242">Эч качан</translation>
 <translation id="7966803981046576691">Тапшырманын түрү</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 317d600..d331e91 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -1486,6 +1486,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> nesilaikoma saugos standartų.</translation>
 <translation id="7210993021468939304">„Linux“ veikla sudėtiniame rodinyje; ir gali įdiegti ir paleisti „Linux“ programas sudėtiniame rodinyje</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /> apie šią problemą.</translation>
+<translation id="7217745192097460130">Naudoti „Touch ID“ pirkimo procesui patvirtinti ir užbaigti?</translation>
 <translation id="7219179957768738017">Ryšiui naudojama <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Apdorojama</translation>
 <translation id="7221855153210829124">Rodyti pranešimus</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index ff4bb6e..f562dcf 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -1482,6 +1482,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> neatbilst drošības standartiem.</translation>
 <translation id="7210993021468939304">Linux darbība konteinerā; var instalēt un palaist Linux lietotnes konteinerā</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" /> par šo problēmu.</translation>
+<translation id="7217745192097460130">Vai vēlaties izmantot Touch ID, lai verificētu un pabeigtu pirkumu?</translation>
 <translation id="7219179957768738017">Savienojums izmanto <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Notiek apstrāde</translation>
 <translation id="7221855153210829124">Rādīt paziņojumus</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 4a3c7cc6..3920c81 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -1485,6 +1485,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> не се придржува до стандардите за безбедност.</translation>
 <translation id="7210993021468939304">Активноста на Linux во рамките на контејнерот и може да инсталира и извршува апликации на Linux во рамките на контејнерот</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Дознај повеќе<ph name="END_LINK" /> за овој проблем.</translation>
+<translation id="7217745192097460130">Да се користи ID на допир за потврда и завршување на купувањето?</translation>
 <translation id="7219179957768738017">Оваа врска користи <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Се обработува</translation>
 <translation id="7221855153210829124">Прикажи известувања</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 0917716..3610194 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -1479,6 +1479,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" />, സുരക്ഷാ മാനദണ്ഡങ്ങൾ പാലിക്കുന്നില്ല.</translation>
 <translation id="7210993021468939304">കണ്ടെയ്‌നറിനുള്ളിലെ Linux ആക്‌റ്റിവിറ്റി, കൂടാതെ കണ്ടെയ്‌നറിനുള്ളിൽ Linux ആപ്പുകൾ ഇൻസ്‌റ്റാൾ ചെയ്യാനും റൺ ചെയ്യാനും കഴിയും</translation>
 <translation id="721197778055552897">ഈ പ്രശ്‌നത്തെക്കുറിച്ച് <ph name="BEGIN_LINK" />കൂടുതൽ‍ മനസിലാക്കുക<ph name="END_LINK" />.</translation>
+<translation id="7217745192097460130">പരിശോധിച്ചുറപ്പിക്കുന്നതിനും വാങ്ങൽ പൂർത്തിയാക്കുന്നതിനും ടച്ച് ഐഡി ഉപയോഗിക്കണോ?</translation>
 <translation id="7219179957768738017">കണക്ഷന്‍ <ph name="SSL_VERSION" /> ഉപയോഗിക്കുന്നു.</translation>
 <translation id="7220786058474068424">പ്രോസസ്സുചെയ്യുന്നു</translation>
 <translation id="7221855153210829124">അറിയിപ്പുകൾ കാണിക്കുക</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 6e3b9c5..4202108 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -1485,6 +1485,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> नी सुरक्षितता मानकांचे पालन केले नाही.</translation>
 <translation id="7210993021468939304">कंटेनरमधील Linux अ‍ॅक्टिव्हिटी आणि कंटेनरमध्ये Linux अ‍ॅप्स इंस्टॉल आणि रन करू शकते</translation>
 <translation id="721197778055552897">या समस्येबद्दल <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" />.</translation>
+<translation id="7217745192097460130">तुमची खरेदी पडताळण्यासाठी आणि पूर्ण करण्यासाठी टच आयडी वापरायचा का?</translation>
 <translation id="7219179957768738017">कनेक्शन <ph name="SSL_VERSION" /> वापरते.</translation>
 <translation id="7220786058474068424">प्रक्रिया करत आहे</translation>
 <translation id="7221855153210829124">सूचना दर्शवा</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index ef22b8a..6b9f37b 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -1484,6 +1484,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> သည်လုံခြုံရေး စံနှုန်းများကို လိုက်နာမှုမရှိပါ။</translation>
 <translation id="7210993021468939304">ကွန်တိန်နာအတွင်းရှိ Linux လုပ်ဆောင်ချက်ကို ကြည့်နိုင်ပြီး ကွန်တိန်နာအတွင်းတွင် Linux အက်ပ်များကို ထည့်သွင်းနိုင်၊ လုပ်ဆောင်နိုင်သည်</translation>
 <translation id="721197778055552897">ဒီပြဿနာ အကြောင်းကို <ph name="BEGIN_LINK" />ပိုမို လေ့လာရန်<ph name="END_LINK" />။</translation>
+<translation id="7217745192097460130">သင့်ဝယ်ယူမှုကို စိစစ်ရန်နှင့် အပြီးသတ်ရန် ထိတွေ့မှု ID ကို အသုံးပြုမလား။</translation>
 <translation id="7219179957768738017">ချိတ်ဆက်မှုက <ph name="SSL_VERSION" />ကို သုံးသည်။</translation>
 <translation id="7220786058474068424">ဆောင်ရွက်နေသည်</translation>
 <translation id="7221855153210829124">သတိပေးချက်များ ပြရန်</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 7426596..2e572094 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -1474,6 +1474,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> voldoet niet aan de beveiligingsnormen.</translation>
 <translation id="7210993021468939304">Linux-activiteit in de container, en kan Linux-apps in de container installeren en uitvoeren</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /> over dit probleem.</translation>
+<translation id="7217745192097460130">Touch ID gebruiken om je aankoop te verifiëren en te voltooien?</translation>
 <translation id="7219179957768738017">De verbinding maakt gebruik van <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Verwerken</translation>
 <translation id="7221855153210829124">Meldingen weergeven</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index abf9958..114d093 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -226,7 +226,7 @@
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Kortinnehaverens navn</translation>
 <translation id="1807528111851433570">Startark</translation>
-<translation id="1811804136210993241">Vis merknader</translation>
+<translation id="1811804136210993241">Vis kommentarer</translation>
 <translation id="1821930232296380041">Ugyldig forespørsel eller forespørselsparametere</translation>
 <translation id="1822540298136254167">Nettsteder du besøker, og hvor mye tid du bruker på dem</translation>
 <translation id="1826516787628120939">Kontrollerer</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index 844d5b5..cbe1744 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -1471,6 +1471,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> ਸੁਰੱਖਿਆ ਪੈਮਾਨਿਆਂ ਦੀ ਪਾਲਣਾ ਨਹੀਂ ਕਰਦਾ ਹੈ।</translation>
 <translation id="7210993021468939304">ਕੰਟੇਨਰ ਵਿੱਚ Linux ਸਰਗਰਮੀ, ਅਤੇ ਕੰਨਟੇਨਰ ਵਿੱਚ Linux ਐਪਾਂ ਨੂੰ ਸਥਾਪਤ ਕੀਤਾ ਅਤੇ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ</translation>
 <translation id="721197778055552897">ਇਸ ਸਮੱਸਿਆ ਬਾਰੇ <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" />।</translation>
+<translation id="7217745192097460130">ਕੀ ਤੁਸੀਂ ਤੁਹਾਡੀਆਂ ਖਰੀਦਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਆਈਡੀ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
 <translation id="7219179957768738017">ਕਨੈਕਸ਼ਨ <ph name="SSL_VERSION" /> ਵਰਤਦਾ ਹੈ।</translation>
 <translation id="7220786058474068424">ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ</translation>
 <translation id="7221855153210829124">ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ</translation>
@@ -1909,6 +1910,7 @@
 <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation>
 <translation id="9049981332609050619">ਤੁਸੀਂ <ph name="DOMAIN" /> ਤੱਕ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਪਰ ਸਰਵਰ ਨੇ ਇੱਕ ਅਵੈਧ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪੇਸ਼ ਕੀਤਾ।</translation>
 <translation id="9050666287014529139">ਪਾਸਫਰੇਜ਼</translation>
+<translation id="9056953843249698117">ਸਟੋਰ</translation>
 <translation id="9062620674789239642">ਸ਼ਾਇਦ ਇਸ ਨੂੰ ਬਾਹਰ ਲਿਜਾਇਆ, ਸੰਪਾਦਿਤ ਕੀਤਾ ਜਾਂ ਮਿਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।</translation>
 <translation id="9065203028668620118">ਸੰਪਾਦਿਤ ਕਰੋ</translation>
 <translation id="9065745800631924235">ਇਤਿਹਾਸ ਤੋਂ <ph name="TEXT" /> ਖੋਜ</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 8c3866f..b6ef1a1 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -1474,6 +1474,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> não adere aos padrões de segurança.</translation>
 <translation id="7210993021468939304">A atividade do Linux no contêiner, bem como instalar e executar apps do Linux no contêiner</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> sobre este problema.</translation>
+<translation id="7217745192097460130">Usar o Touch ID para verificar e concluir a compra?</translation>
 <translation id="7219179957768738017">A conexão usa a <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Processando</translation>
 <translation id="7221855153210829124">Mostrar notificações</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index c63aa280..fa7c362 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -1485,6 +1485,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> não respeita os padrões de segurança.</translation>
 <translation id="7210993021468939304">A atividade do Linux dentro do contentor, podendo instalar e executar apps para Linux no contentor.</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> sobre este problema.</translation>
+<translation id="7217745192097460130">Pretende utilizar o Touch ID para validar e concluir a sua compra?</translation>
 <translation id="7219179957768738017">A ligação utiliza <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">A processar</translation>
 <translation id="7221855153210829124">Mostrar notificações</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index a38b89b99..b61fbe9 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -1484,6 +1484,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> haizingatii viwango vya usalama.</translation>
 <translation id="7210993021468939304">Shughuli ya Linux ndani ya metadata inaweza kusakinisha na kutekeleza programu za Linux ndani ya metadata</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /> kuhusu tatizo hili.</translation>
+<translation id="7217745192097460130">Ungependa kutumia Touch ID ili uthibitishe na kukamilisha ununuzi wako?</translation>
 <translation id="7219179957768738017">Muunganisho unatumia <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Malipo yanashughulikiwa</translation>
 <translation id="7221855153210829124">Kuonyesha arifa</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 43ab698..9a681c6 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -226,6 +226,7 @@
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">கார்டு உரிமையாளரின் பெயர்</translation>
 <translation id="1807528111851433570">முதல் தாள்</translation>
+<translation id="1811804136210993241">சிறுகுறிப்புகளைக் காட்டு</translation>
 <translation id="1821930232296380041">தவறான கோரிக்கை அல்லது கோரிக்கை அளவுருக்கள்</translation>
 <translation id="1822540298136254167">நீங்கள் பார்வையிட்ட இணையதளங்களும் அவற்றில் செலவழித்த நேரமும்</translation>
 <translation id="1826516787628120939">சரிபார்க்கிறது</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 25c020f..42dde18 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -1483,6 +1483,7 @@
 <translation id="7210863904660874423">Хост <ph name="HOST_NAME" /> не відповідає стандартам безпеки.</translation>
 <translation id="7210993021468939304">Активність Linux у межах контейнера. Може встановлювати та запускати додатки Linux у межах контейнера</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /> про цю проблему.</translation>
+<translation id="7217745192097460130">Підтвердити й завершити покупку за допомогою Touch ID?</translation>
 <translation id="7219179957768738017">З'єднання використовує версію <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Обробка</translation>
 <translation id="7221855153210829124">показувати сповіщення</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index b9ba577..62f8246 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -1126,7 +1126,7 @@
 <translation id="5608165884683734521">‏یہ سائٹ جعلی یا پُر فریب ہو سکتی ہے۔ Chrome سائٹ ابھی چھوڑنے کی تجویز دیتا ہے۔</translation>
 <translation id="5610142619324316209">کنکشن چیک کیا جا رہا ہے</translation>
 <translation id="5610807607761827392">آپ <ph name="BEGIN_LINK" />ترتیبات<ph name="END_LINK" /> میں کارڈز اور پتوں کا نظم کر سکتے ہیں۔</translation>
-<translation id="561165882404867731">‏اس صفحہ کو Google ترجمہ کی مدد سے ترجمہ کریں</translation>
+<translation id="561165882404867731">‏اس صفحہ کو Google ترجمہ ایپ کی مدد سے ترجمہ کریں</translation>
 <translation id="5612720917913232150"><ph name="URL" /> آپ کے کمپیوٹر کا مقام استعمال کرنا چاہتا ہے</translation>
 <translation id="5617949217645503996"><ph name="HOST_NAME" /> نے کئی مرتبہ آپ کو ری ڈائریکٹ کیا۔</translation>
 <translation id="5624120631404540903">پاس ورڈز کا نظم کریں</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 3a28e33..20685458 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -1479,6 +1479,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> sayti xavfsizlik standartlariga muvofiq kelmadi.</translation>
 <translation id="7210993021468939304">Konteyner ichidagi Linux jarayonlari va Linux ilovalarining konteyner ichida oʻrnatilishi va ishga tushirilishi</translation>
 <translation id="721197778055552897">Bu muammo haqidagi <ph name="BEGIN_LINK" />tafsilotlar<ph name="END_LINK" />.</translation>
+<translation id="7217745192097460130">Xaridlarni tasdiqlash va yakunlashda Touch ID ishlatilsinmi?</translation>
 <translation id="7219179957768738017">Bu ulanishda <ph name="SSL_VERSION" /> protokoli ishlatilmoqda.</translation>
 <translation id="7220786058474068424">Amalga oshirilmoqda</translation>
 <translation id="7221855153210829124">Bildirishnomalarni ko‘rsatish</translation>
@@ -1917,6 +1918,7 @@
 <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation>
 <translation id="9049981332609050619">Siz <ph name="DOMAIN" /> domenini ochmoqchi bo‘ldingiz, lekin server taqdim qilgan sertifikat haqiqiy emas.</translation>
 <translation id="9050666287014529139">Kodli ibora</translation>
+<translation id="9056953843249698117">Doʻkon</translation>
 <translation id="9062620674789239642">Fayl boshqa joyga koʻchirilgan, tahrirlangan yoki oʻchirib yuborilgan boʻlishi mumkin.</translation>
 <translation id="9065203028668620118">O‘zgartirish</translation>
 <translation id="9065745800631924235">tarixdan <ph name="TEXT" /> deb qidiring</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index a3bde2e7..ae1cdd411 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -1482,6 +1482,7 @@
 <translation id="7210863904660874423">I-<ph name="HOST_NAME" /> ayithobeli amazinga ezokuvikela.</translation>
 <translation id="7210993021468939304">Umsebenzi we-Linux ungaphakathi kwesiqukathi, futhi ungafaka uphinde uqalise izinhlelo zokusebenza ze-Linux ngaphakathi kwesiqukathi</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /> mayelana nale nkinga.</translation>
+<translation id="7217745192097460130">Usebenzisa i-ID Yokuthinta ukuze uqinisekise futhi uqede ukuthenga kwakho?</translation>
 <translation id="7219179957768738017">Ukuxhumeka kusebenzisa i-<ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Iyacubungula</translation>
 <translation id="7221855153210829124">Bonisa izaziso</translation>
diff --git a/components/webapk/android/libs/client/src/org/chromium/components/webapk/lib/client/WebApkValidator.java b/components/webapk/android/libs/client/src/org/chromium/components/webapk/lib/client/WebApkValidator.java
index aa6e6c0..d73e493 100644
--- a/components/webapk/android/libs/client/src/org/chromium/components/webapk/lib/client/WebApkValidator.java
+++ b/components/webapk/android/libs/client/src/org/chromium/components/webapk/lib/client/WebApkValidator.java
@@ -407,11 +407,11 @@
     }
 
     /**
-     * Disables all validation performed by this class. This is meant only for development with
-     * unsigned WebApks and should never be enabled in a real build.
+     * Sets whether validation performed by this class should be disabled. This is meant only for
+     * development with unsigned WebApks and should never be enabled in a real build.
      */
-    public static void disableValidationForTesting() {
-        sOverrideValidationForTesting = true;
+    public static void setDisableValidationForTesting(boolean disable) {
+        sOverrideValidationForTesting = disable;
     }
 
     /**
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
index 5acde63..3223378 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -683,6 +683,12 @@
   scoped_refptr<SiteInstance> dest_site_instance =
       GetSiteInstanceForNavigationRequest(request);
 
+  // A subframe should always be in the same BrowsingInstance as the parent
+  // (see also https://crbug.com/1107269).
+  RenderFrameHostImpl* parent = frame_tree_node_->parent();
+  DCHECK(!parent ||
+         dest_site_instance->IsRelatedSiteInstance(parent->GetSiteInstance()));
+
   // The SiteInstance determines whether to switch RenderFrameHost or not.
   bool use_current_rfh = current_site_instance == dest_site_instance;
 
diff --git a/content/browser/renderer_host/input/web_input_event_builders_mac.mm b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
index 4dd7d7e..9590497 100644
--- a/content/browser/renderer_host/input/web_input_event_builders_mac.mm
+++ b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
@@ -423,7 +423,15 @@
     result.force = [event pressure];
     NSPoint tilt = [event tilt];
     result.tilt_x = lround(tilt.x * 90);
-    result.tilt_y = lround(tilt.y * 90);
+    // Pointer Events specification states that tiltY is positive when the
+    // pen is tilted towards the user.
+    // By default, in MacOS, the Y coordinate increases going up,
+    // while in Chromium the Y coordinate increases going down.
+    // https://developer.apple.com/library/archive/documentation/General/Conceptual/Devpedia-CocoaApp/CoordinateSystem.html
+    // In this case (if the coordinate system is not flipped) tiltY needs to
+    // be reversed to match Chromium's expectation that tiltY is positive
+    // towards the user
+    result.tilt_y = ([view isFlipped] ? 1 : (-1)) * lround(tilt.y * 90);
     result.tangential_pressure = [event tangentialPressure];
     // NSEvent spec doesn't specify the range of rotation, we make sure that
     // this value is in the range of [0,359].
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
index c3f43d2..f8bdc99c 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -54,6 +54,16 @@
 // of the border area, in percentage of the corresponding dimension.
 const int kMouseLockBorderPercentage = 15;
 
+// While the mouse is locked we want the invisible mouse to stay within the
+// confines of the screen so we keep it in a capture region the size of the
+// screen.  However, on windows when the mouse hits the edge of the screen some
+// events trigger and cause strange issues to occur. To stop those events from
+// occuring we add a small border around the edge of the capture region.
+// This constant controls how many pixels wide that border is.
+#if defined(OS_WIN)
+const int KMouseCaptureRegionBorder = 5;
+#endif
+
 #if defined(OS_WIN)
 // A callback function for EnumThreadWindows to enumerate and dismiss
 // any owned popup windows.
@@ -152,6 +162,10 @@
       display::Screen::GetScreen()
           ->DIPToScreenRectInWindow(window_, window_->GetBoundsInScreen())
           .ToRECT();
+  window_rect.left += KMouseCaptureRegionBorder;
+  window_rect.right -= KMouseCaptureRegionBorder;
+  window_rect.top += KMouseCaptureRegionBorder;
+  window_rect.bottom -= KMouseCaptureRegionBorder;
   ::ClipCursor(&window_rect);
 }
 #endif
diff --git a/content/browser/service_worker/service_worker_registry.cc b/content/browser/service_worker/service_worker_registry.cc
index 1272149..ef7d4f7 100644
--- a/content/browser/service_worker/service_worker_registry.cc
+++ b/content/browser/service_worker/service_worker_registry.cc
@@ -527,15 +527,6 @@
   DoomUncommittedResources(resource_ids);
 }
 
-void ServiceWorkerRegistry::DoomUncommittedResources(
-    const std::vector<int64_t>& resource_ids) {
-  DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
-  GetRemoteStorageControl()->DoomUncommittedResources(
-      resource_ids,
-      base::BindOnce(&ServiceWorkerRegistry::DidDoomUncommittedResourceIds,
-                     weak_factory_.GetWeakPtr(), resource_ids));
-}
-
 void ServiceWorkerRegistry::GetUserData(int64_t registration_id,
                                         const std::vector<std::string>& keys,
                                         GetUserDataCallback callback) {
@@ -888,6 +879,15 @@
   return base::nullopt;
 }
 
+void ServiceWorkerRegistry::DoomUncommittedResources(
+    const std::vector<int64_t>& resource_ids) {
+  DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
+  GetRemoteStorageControl()->DoomUncommittedResources(
+      resource_ids,
+      base::BindOnce(&ServiceWorkerRegistry::DidDoomUncommittedResourceIds,
+                     weak_factory_.GetWeakPtr(), resource_ids));
+}
+
 void ServiceWorkerRegistry::DidFindRegistrationForClientUrl(
     const GURL& client_url,
     int64_t trace_event_id,
@@ -1254,11 +1254,8 @@
 void ServiceWorkerRegistry::DidDoomUncommittedResourceIds(
     const std::vector<int64_t>& resource_ids,
     storage::mojom::ServiceWorkerDatabaseStatus status) {
-  if (status != storage::mojom::ServiceWorkerDatabaseStatus::kOk) {
+  if (status != storage::mojom::ServiceWorkerDatabaseStatus::kOk)
     ScheduleDeleteAndStartOver();
-    return;
-  }
-  storage()->PurgeResources(resource_ids);
 }
 
 void ServiceWorkerRegistry::DidGetUserData(
diff --git a/content/browser/service_worker/service_worker_registry.h b/content/browser/service_worker/service_worker_registry.h
index 992f53fd..f6afb1e 100644
--- a/content/browser/service_worker/service_worker_registry.h
+++ b/content/browser/service_worker/service_worker_registry.h
@@ -202,7 +202,6 @@
                                      StatusCallback callback);
   void StoreUncommittedResourceId(int64_t resource_id, const GURL& origin);
   void DoomUncommittedResource(int64_t resource_id);
-  void DoomUncommittedResources(const std::vector<int64_t>& resource_ids);
   void GetUserData(int64_t registration_id,
                    const std::vector<std::string>& keys,
                    GetUserDataCallback callback);
@@ -270,6 +269,8 @@
   base::Optional<scoped_refptr<ServiceWorkerRegistration>>
   FindFromLiveRegistrationsForId(int64_t registration_id);
 
+  void DoomUncommittedResources(const std::vector<int64_t>& resource_ids);
+
   void DidFindRegistrationForClientUrl(
       const GURL& client_url,
       int64_t trace_event_id,
diff --git a/content/browser/service_worker/service_worker_storage.cc b/content/browser/service_worker/service_worker_storage.cc
index ca4bba5a..c536cea 100644
--- a/content/browser/service_worker/service_worker_storage.cc
+++ b/content/browser/service_worker/service_worker_storage.cc
@@ -559,7 +559,9 @@
       database_task_runner_.get(), FROM_HERE,
       base::BindOnce(&ServiceWorkerDatabase::PurgeUncommittedResourceIds,
                      base::Unretained(database_.get()), resource_ids),
-      std::move(callback));
+      base::BindOnce(&ServiceWorkerStorage::DidDoomUncommittedResourceIds,
+                     weak_factory_.GetWeakPtr(), resource_ids,
+                     std::move(callback)));
 }
 
 void ServiceWorkerStorage::StoreUserData(
@@ -1154,6 +1156,15 @@
   std::move(callback).Run(status);
 }
 
+void ServiceWorkerStorage::DidDoomUncommittedResourceIds(
+    const std::vector<int64_t>& resource_ids,
+    DatabaseStatusCallback callback,
+    ServiceWorkerDatabase::Status status) {
+  if (status == ServiceWorkerDatabase::Status::kOk)
+    PurgeResources(resource_ids);
+  std::move(callback).Run(status);
+}
+
 void ServiceWorkerStorage::DidStoreUserData(
     DatabaseStatusCallback callback,
     const GURL& origin,
diff --git a/content/browser/service_worker/service_worker_storage.h b/content/browser/service_worker/service_worker_storage.h
index e55a6d7d..4e0541c 100644
--- a/content/browser/service_worker/service_worker_storage.h
+++ b/content/browser/service_worker/service_worker_storage.h
@@ -406,6 +406,9 @@
   void DidWriteUncommittedResourceIds(DatabaseStatusCallback callback,
                                       const GURL& origin,
                                       ServiceWorkerDatabase::Status status);
+  void DidDoomUncommittedResourceIds(const std::vector<int64_t>& resource_ids,
+                                     DatabaseStatusCallback callback,
+                                     ServiceWorkerDatabase::Status status);
   void DidStoreUserData(DatabaseStatusCallback callback,
                         const GURL& origin,
                         ServiceWorkerDatabase::Status status);
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
index 25cf1bc..5e13ae4 100644
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -281,6 +281,17 @@
   return rfh->GetJavaRenderFrameHost();
 }
 
+ScopedJavaLocalRef<jobject> WebContentsAndroid::GetRenderFrameHostFromId(
+    JNIEnv* env,
+    jint render_process_id,
+    jint render_frame_id) const {
+  RenderFrameHost* rfh =
+      RenderFrameHost::FromID(render_process_id, render_frame_id);
+  if (!rfh)
+    return nullptr;
+  return rfh->GetJavaRenderFrameHost();
+}
+
 ScopedJavaLocalRef<jstring> WebContentsAndroid::GetTitle(
     JNIEnv* env,
     const JavaParamRef<jobject>& obj) const {
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
index d8baeeef..b473f2a 100644
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
@@ -59,6 +59,10 @@
   base::android::ScopedJavaLocalRef<jobject> GetFocusedFrame(
       JNIEnv* env,
       const base::android::JavaParamRef<jobject>& obj) const;
+  base::android::ScopedJavaLocalRef<jobject> GetRenderFrameHostFromId(
+      JNIEnv* env,
+      jint render_process_id,
+      jint render_frame_id) const;
   base::android::ScopedJavaLocalRef<jstring> GetTitle(
       JNIEnv* env,
       const base::android::JavaParamRef<jobject>& obj) const;
diff --git a/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectInjector.java b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectInjector.java
index fbd5d87..db3188d 100644
--- a/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectInjector.java
+++ b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectInjector.java
@@ -51,11 +51,20 @@
 
     @Override
     public void renderFrameCreated(int renderProcessId, int renderFrameId) {
-        // TODO(crbug.com/1105935): replicate the necessary logic from
-        // GinJavaBridgeDispatcherHost::RenderFrameCreated().
+        if (mInjectedObjects.isEmpty()) return;
 
-        // TODO(crbug.com/1107555): get the RenderFrameHost
-        // from renderProcessId and renderFrameId.
+        WebContents webContents = mWebContents.get();
+        if (webContents == null) return;
+
+        RenderFrameHost frameHost =
+                webContents.getRenderFrameHostFromId(renderProcessId, renderFrameId);
+        if (frameHost == null) return;
+
+        for (Map.Entry<String, Pair<Object, Class<? extends Annotation>>> entry :
+                mInjectedObjects.entrySet()) {
+            addInterfaceForFrame(
+                    frameHost, entry.getKey(), entry.getValue().first, entry.getValue().second);
+        }
     }
 
     public void addInterface(Object object, String name) {
@@ -69,10 +78,10 @@
 
         // TODO(crbug.com/1105935): the objects need to be injected into all frames, not just the
         // main one.
-        addInterfaceForFrame(webContents.getMainFrame(), object, name, requiredAnnotation);
+        addInterfaceForFrame(webContents.getMainFrame(), name, object, requiredAnnotation);
     }
 
-    private void addInterfaceForFrame(RenderFrameHost frameHost, Object object, String name,
+    private void addInterfaceForFrame(RenderFrameHost frameHost, String name, Object object,
             Class<? extends Annotation> requiredAnnotation) {
         RemoteObjectGatewayHelper helper =
                 getRemoteObjectGatewayHelperForFrame(frameHost, requiredAnnotation);
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
index 2044f8cb..762c3afb 100644
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -385,6 +385,13 @@
     }
 
     @Override
+    public RenderFrameHost getRenderFrameHostFromId(int renderProcessId, int renderFrameId) {
+        checkNotDestroyed();
+        return WebContentsImplJni.get().getRenderFrameHostFromId(
+                mNativeWebContentsAndroid, renderProcessId, renderFrameId);
+    }
+
+    @Override
     public @Nullable RenderWidgetHostViewImpl getRenderWidgetHostView() {
         if (mNativeWebContentsAndroid == 0) return null;
         RenderWidgetHostViewImpl rwhvi = WebContentsImplJni.get().getRenderWidgetHostView(
@@ -1052,6 +1059,8 @@
                 long nativeWebContentsAndroid, WebContentsImpl caller, WindowAndroid windowAndroid);
         RenderFrameHost getMainFrame(long nativeWebContentsAndroid, WebContentsImpl caller);
         RenderFrameHost getFocusedFrame(long nativeWebContentsAndroid, WebContentsImpl caller);
+        RenderFrameHost getRenderFrameHostFromId(
+                long nativeWebContentsAndroid, int renderProcessId, int renderFrameId);
         RenderWidgetHostViewImpl getRenderWidgetHostView(
                 long nativeWebContentsAndroid, WebContentsImpl caller);
         WebContentsImpl[] getInnerWebContents(
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
index e2203b08..3c2fa54 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -149,6 +149,13 @@
     RenderFrameHost getFocusedFrame();
 
     /**
+     * @return The frame associated with renderProcessId and renderFrameId. Will be null if the IDs
+     *         do not correspond to a live RenderFrameHost.
+     */
+    @Nullable
+    RenderFrameHost getRenderFrameHostFromId(int renderProcessId, int renderFrameId);
+
+    /**
      * @return The root level view from the renderer, or {@code null} in some cases where there is
      *         none.
      */
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java
index d34dda5..ad3c9ed 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java
@@ -33,9 +33,8 @@
      * Called when a RenderFrame for renderFrameHost is created in the
      * renderer process.
      * To avoid creating a RenderFrameHost object without necessity, only process id and frame id
-     * are passed.
-     * TODO(crbug.com/1107555): expose a C++ method to get a Java RenderFrameHost by process id and
-     * frame id.
+     * are passed. Call WebContents#getRenderFrameHostFromId() to get the RenderFrameHostImpl object
+     * if needed.
      */
     public void renderFrameCreated(int renderProcessId, int renderFrameId) {}
 
diff --git a/content/public/common/web_preferences.cc b/content/public/common/web_preferences.cc
index 8a50eef5f..ee25c1b 100644
--- a/content/public/common/web_preferences.cc
+++ b/content/public/common/web_preferences.cc
@@ -7,6 +7,7 @@
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
+#include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/web/web_settings.h"
 #include "ui/base/ui_base_switches_util.h"
 
@@ -37,6 +38,8 @@
 STATIC_ASSERT_ENUM(EDITING_BEHAVIOR_UNIX, WebSettings::EditingBehavior::kUnix);
 STATIC_ASSERT_ENUM(EDITING_BEHAVIOR_ANDROID,
                    WebSettings::EditingBehavior::kAndroid);
+STATIC_ASSERT_ENUM(EDITING_BEHAVIOR_CHROMEOS,
+                   WebSettings::EditingBehavior::kChromeOS);
 
 STATIC_ASSERT_ENUM(blink::mojom::V8CacheOptions::kDefault,
                    WebSettings::V8CacheOptions::kDefault);
@@ -145,6 +148,11 @@
       editing_behavior(EDITING_BEHAVIOR_WIN),
 #elif defined(OS_ANDROID)
       editing_behavior(EDITING_BEHAVIOR_ANDROID),
+#elif defined(OS_CHROMEOS)
+      editing_behavior(
+          base::FeatureList::IsEnabled(blink::features::kCrOSAutoSelect)
+              ? EDITING_BEHAVIOR_CHROMEOS
+              : EDITING_BEHAVIOR_UNIX),
 #elif defined(OS_POSIX)
       editing_behavior(EDITING_BEHAVIOR_UNIX),
 #else
diff --git a/content/public/common/web_preferences.h b/content/public/common/web_preferences.h
index d4ba8636..5880505e 100644
--- a/content/public/common/web_preferences.h
+++ b/content/public/common/web_preferences.h
@@ -34,7 +34,8 @@
   EDITING_BEHAVIOR_WIN,
   EDITING_BEHAVIOR_UNIX,
   EDITING_BEHAVIOR_ANDROID,
-  EDITING_BEHAVIOR_LAST = EDITING_BEHAVIOR_ANDROID
+  EDITING_BEHAVIOR_CHROMEOS,
+  EDITING_BEHAVIOR_LAST = EDITING_BEHAVIOR_CHROMEOS
 };
 
 // ImageAnimationPolicy is used for controlling image animation
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
index e5878ae..f4aeb85d 100644
--- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
+++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
@@ -91,6 +91,11 @@
     }
 
     @Override
+    public RenderFrameHost getRenderFrameHostFromId(int renderProcessId, int renderFrameId) {
+        return null;
+    }
+
+    @Override
     @Nullable
     public RenderWidgetHostView getRenderWidgetHostView() {
         return null;
diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc
index 5ea8ee6..0c00628 100644
--- a/content/renderer/pepper/pepper_plugin_instance_impl.cc
+++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc
@@ -1281,7 +1281,9 @@
   if (desired_fullscreen_state_ || view_data_.is_fullscreen) {
     bool is_fullscreen_element = container_->IsFullscreenElement();
     if (!view_data_.is_fullscreen && desired_fullscreen_state_ &&
-        render_frame()->GetLocalRootRenderWidget()->is_fullscreen_granted() &&
+        render_frame()
+            ->GetLocalRootRenderWidget()
+            ->IsFullscreenGrantedForFrame() &&
         is_fullscreen_element) {
       // Entered fullscreen. Only possible via SetFullscreen().
       view_data_.is_fullscreen = true;
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 21f68f96..556caf9 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -475,16 +475,6 @@
     browser_controls_params_ = visual_properties.browser_controls_params;
   }
 
-  if (!AutoResizeMode()) {
-    if (visual_properties.is_fullscreen_granted != is_fullscreen_granted_) {
-      is_fullscreen_granted_ = visual_properties.is_fullscreen_granted;
-      if (is_fullscreen_granted_)
-        GetWebWidget()->DidEnterFullscreen();
-      else
-        GetWebWidget()->DidExitFullscreen();
-    }
-  }
-
   gfx::Size old_visible_viewport_size = visible_viewport_size_;
 
   if (device_emulator_) {
@@ -520,7 +510,8 @@
       // TODO(danakj): Does the browser actually change DSF inside a web test??
       // TODO(danakj): Isn't the display mode check redundant with the
       // fullscreen one?
-      if (visual_properties.is_fullscreen_granted != is_fullscreen_granted_ ||
+      if (visual_properties.is_fullscreen_granted !=
+              IsFullscreenGrantedForFrame() ||
           visual_properties.screen_info.device_scale_factor !=
               screen_info_.device_scale_factor)
         ignore_resize_ipc = false;
@@ -1798,4 +1789,10 @@
   return delegate_->AutoResizeMode();
 }
 
+bool RenderWidget::IsFullscreenGrantedForFrame() {
+  if (!for_frame())
+    return false;
+  return GetFrameWidget()->IsFullscreenGranted();
+}
+
 }  // namespace content
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h
index 9093dbb2..edf8b8e 100644
--- a/content/renderer/render_widget.h
+++ b/content/renderer/render_widget.h
@@ -221,7 +221,6 @@
   blink::WebInputMethodController* GetInputMethodController() const;
 
   const gfx::Size& size() const { return size_; }
-  bool is_fullscreen_granted() const { return is_fullscreen_granted_; }
   bool is_hidden() const { return is_hidden_; }
   const gfx::Size& visible_viewport_size() const {
     return visible_viewport_size_;
@@ -388,6 +387,9 @@
       base::OnceCallback<void(const gfx::PresentationFeedback&)>;
   virtual void RequestPresentation(PresentationTimeCallback callback);
 
+  // Determines if fullscreen is granted for the frame.
+  bool IsFullscreenGrantedForFrame();
+
  protected:
   // blink::WebWidgetClient
   void UpdateVisualProperties(
@@ -580,9 +582,6 @@
   // Indicates that we are never visible, so never produce graphical output.
   const bool never_composited_;
 
-  // Indicates whether tab-initiated fullscreen was granted.
-  bool is_fullscreen_granted_ = false;
-
   // True once Close() is called, during the self-destruction process, and to
   // verify destruction always goes through Close().
   bool closing_ = false;
diff --git a/device/gamepad/gamepad_blocklist.cc b/device/gamepad/gamepad_blocklist.cc
index 0aa46ab..944fd9b 100644
--- a/device/gamepad/gamepad_blocklist.cc
+++ b/device/gamepad/gamepad_blocklist.cc
@@ -66,6 +66,8 @@
     {kVendorMicrosoft, 0x07cd},
     // Surface Keyboard.
     {kVendorMicrosoft, 0x0922},
+    // Surface Type Cover.
+    {kVendorMicrosoft, 0x09c0},
 };
 
 // Devices from these vendors are always blocked.
diff --git a/gpu/config/BUILD.gn b/gpu/config/BUILD.gn
index 2f97b978..bac4500a6 100644
--- a/gpu/config/BUILD.gn
+++ b/gpu/config/BUILD.gn
@@ -7,6 +7,10 @@
 import("//build/config/ui.gni")
 import("//gpu/vulkan/features.gni")
 
+if (is_android) {
+  import("//build/config/android/rules.gni")
+}
+
 group("config") {
   if (is_component_build) {
     public_deps = [ "//gpu" ]
@@ -225,3 +229,18 @@
     ]
   }
 }
+
+if (is_android) {
+  java_cpp_strings("java_switches_srcjar") {
+    # External code should depend on ":config_java" instead.
+    visibility = [ ":*" ]
+    sources = [ "gpu_switches.cc" ]
+    template = "android/java/src/org/chromium/gpu/GpuSwitches.java.tmpl"
+  }
+
+  android_library("config_java") {
+    # Right now, this only includes the Java switches. But if we need more Java
+    # files, they should be added here as necessary.
+    srcjar_deps = [ ":java_switches_srcjar" ]
+  }
+}
diff --git a/gpu/config/android/java/src/org/chromium/gpu/GpuSwitches.java.tmpl b/gpu/config/android/java/src/org/chromium/gpu/GpuSwitches.java.tmpl
new file mode 100644
index 0000000..b6813f9
--- /dev/null
+++ b/gpu/config/android/java/src/org/chromium/gpu/GpuSwitches.java.tmpl
@@ -0,0 +1,16 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.gpu.config;
+
+/**
+ * Contains all of the command line switches that are specific to the gpu/ layer.
+ */
+public final class GpuSwitches {{
+
+{NATIVE_STRINGS}
+
+    // Prevent instantiation.
+    private GpuSwitches() {{}}
+}}
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg
index c7277a3..e95bafd 100644
--- a/infra/config/generated/commit-queue.cfg
+++ b/infra/config/generated/commit-queue.cfg
@@ -176,7 +176,7 @@
       builders {
         name: "chromium/try/android-binary-size"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android-cronet-arm-dbg"
@@ -184,7 +184,7 @@
         location_regexp: ".+/[+]/components/grpc_support/.+"
         location_regexp: ".+/[+]/build/android/.+"
         location_regexp: ".+/[+]/build/config/android/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
         location_regexp_exclude: ".+/[+]/components/cronet/ios/.+"
       }
       builders {
@@ -198,12 +198,12 @@
       builders {
         name: "chromium/try/android-lollipop-arm-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android-marshmallow-arm64-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android-marshmallow-x86-fyi-rel"
@@ -213,7 +213,7 @@
         name: "chromium/try/android-marshmallow-x86-rel"
         experiment_percentage: 5
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android-nougat-arm64-rel"
@@ -251,7 +251,7 @@
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
         location_regexp: ".+/[+]/third_party/arcore-android-sdk/.+"
         location_regexp: ".+/[+]/third_party/arcore-android-sdk-client/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android-pie-arm64-rel"
@@ -336,7 +336,7 @@
       builders {
         name: "chromium/try/android_compile_dbg"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android_compile_x64_dbg"
@@ -348,7 +348,7 @@
         location_regexp: ".+/[+]/sandbox/linux/system_headers/.+"
         location_regexp: ".+/[+]/sandbox/linux/tests/.+"
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android_compile_x86_dbg"
@@ -360,12 +360,12 @@
         location_regexp: ".+/[+]/sandbox/linux/system_headers/.+"
         location_regexp: ".+/[+]/sandbox/linux/tests/.+"
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android_cronet"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android_mojo"
@@ -392,7 +392,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/android_unswarmed_pixel_aosp"
@@ -401,7 +401,7 @@
       builders {
         name: "chromium/try/cast_shell_android"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/cast_shell_audio_linux"
@@ -410,7 +410,7 @@
       builders {
         name: "chromium/try/cast_shell_linux"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/chromeos-amd64-generic-cfi-thin-lto-rel"
@@ -420,12 +420,12 @@
         name: "chromium/try/chromeos-amd64-generic-dbg"
         location_regexp: ".+/[+]/content/gpu/.+"
         location_regexp: ".+/[+]/media/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/chromeos-amd64-generic-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/chromeos-arm-generic-dbg"
@@ -434,7 +434,7 @@
       builders {
         name: "chromium/try/chromeos-arm-generic-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/chromeos-kevin-compile-rel"
@@ -445,7 +445,7 @@
         location_regexp: ".+/[+]/build/chromeos/.+"
         location_regexp: ".+/[+]/build/config/chromeos/.*"
         location_regexp: ".+/[+]/chromeos/CHROMEOS_LKGM"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/chromium_presubmit"
@@ -454,7 +454,7 @@
       builders {
         name: "chromium/try/closure_compilation"
         location_regexp: ".+/[+]/third_party/closure_compiler/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/dawn-linux-x64-deps-rel"
@@ -467,7 +467,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/dawn-mac-x64-deps-rel"
@@ -480,7 +480,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/dawn-try-win10-x64-asan-rel"
@@ -501,7 +501,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/dawn-win10-x86-deps-rel"
@@ -514,7 +514,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/fuchsia-angle-rel"
@@ -523,13 +523,13 @@
       builders {
         name: "chromium/try/fuchsia-arm64-cast"
         location_regexp: ".+/[+]/chromecast/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/fuchsia-compile-x64-dbg"
         experiment_percentage: 50
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/fuchsia-fyi-arm64-dbg"
@@ -554,17 +554,17 @@
       builders {
         name: "chromium/try/fuchsia-x64-cast"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/fuchsia_arm64"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/fuchsia_x64"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/gpu-fyi-try-android-l-nexus-5-32"
@@ -829,13 +829,13 @@
       builders {
         name: "chromium/try/ios-simulator"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/ios-simulator-code-coverage"
         experiment_percentage: 3
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/ios-simulator-cr-recipe"
@@ -846,7 +846,7 @@
         location_regexp: ".+/[+]/components/cronet/.+"
         location_regexp: ".+/[+]/components/grpc_support/.+"
         location_regexp: ".+/[+]/ios/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
         location_regexp_exclude: ".+/[+]/components/cronet/android/.+"
       }
       builders {
@@ -856,7 +856,7 @@
       builders {
         name: "chromium/try/ios-simulator-full-configs"
         location_regexp: ".+/[+]/ios/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/ios-simulator-multi-window"
@@ -924,12 +924,12 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-chromeos-compile-dbg"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-chromeos-dbg"
@@ -939,7 +939,7 @@
         name: "chromium/try/linux-chromeos-rel"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-clang-tidy-dbg"
@@ -964,7 +964,7 @@
       builders {
         name: "chromium/try/linux-lacros-compile-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-lacros-fyi-rel"
@@ -981,7 +981,7 @@
       builders {
         name: "chromium/try/linux-libfuzzer-asan-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-official"
@@ -990,7 +990,7 @@
       builders {
         name: "chromium/try/linux-ozone-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-perfetto-rel"
@@ -1000,12 +1000,12 @@
         location_regexp: ".+/[+]/components/tracing/.+"
         location_regexp: ".+/[+]/content/browser/tracing/.+"
         location_regexp: ".+/[+]/services/tracing/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux-swangle-chromium-try-x64"
@@ -1074,7 +1074,7 @@
       builders {
         name: "chromium/try/linux_chromium_asan_rel_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux_chromium_cfi_rel_ng"
@@ -1103,7 +1103,7 @@
       builders {
         name: "chromium/try/linux_chromium_compile_dbg_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux_chromium_compile_rel_ng"
@@ -1112,7 +1112,7 @@
       builders {
         name: "chromium/try/linux_chromium_dbg_ng"
         location_regexp: ".+/[+]/build/.*check_gn_headers.*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux_chromium_msan_rel_ng"
@@ -1121,7 +1121,7 @@
       builders {
         name: "chromium/try/linux_chromium_tsan_rel_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux_chromium_ubsan_rel_ng"
@@ -1133,7 +1133,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
         location_regexp: ".+/[+]/third_party/blink/web_tests/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux_layout_tests_layout_ng_disabled"
@@ -1145,7 +1145,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
         location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/disable-layout-ng"
         location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/disable-layout-ng/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux_mojo"
@@ -1170,7 +1170,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/linux_upload_clang"
@@ -1180,7 +1180,7 @@
         name: "chromium/try/linux_vr"
         location_regexp: ".+/[+]/chrome/browser/vr/.+"
         location_regexp: ".+/[+]/content/browser/xr/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/mac-angle-rel"
@@ -1194,7 +1194,7 @@
         name: "chromium/try/mac-coverage-rel"
         experiment_percentage: 3
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/mac-dawn-rel"
@@ -1207,7 +1207,7 @@
       builders {
         name: "chromium/try/mac-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/mac-swangle-chromium-try-x64"
@@ -1260,7 +1260,7 @@
       builders {
         name: "chromium/try/mac_chromium_compile_dbg_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/mac_chromium_compile_rel_ng"
@@ -1286,7 +1286,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/mac_upload_clang"
@@ -1340,7 +1340,7 @@
         name: "chromium/try/win-libfuzzer-asan-rel"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/win-official"
@@ -1386,7 +1386,7 @@
         name: "chromium/try/win10_chromium_x64_rel_ng"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/win10_chromium_x64_rel_ng_exp"
@@ -1403,7 +1403,7 @@
       builders {
         name: "chromium/try/win7-rel"
         location_regexp: ".+/[+]/sandbox/win/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/win_archive"
@@ -1413,7 +1413,7 @@
         name: "chromium/try/win_chromium_compile_dbg_ng"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/win_chromium_compile_rel_ng"
@@ -1449,7 +1449,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try/win_upload_clang"
@@ -1523,7 +1523,7 @@
       builders {
         name: "chromium/try-m84/android-binary-size"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android-cronet-arm-dbg"
@@ -1531,18 +1531,18 @@
         location_regexp: ".+/[+]/components/grpc_support/.+"
         location_regexp: ".+/[+]/build/android/.+"
         location_regexp: ".+/[+]/build/config/android/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
         location_regexp_exclude: ".+/[+]/components/cronet/ios/.+"
       }
       builders {
         name: "chromium/try-m84/android-lollipop-arm-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android-marshmallow-arm64-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android-pie-arm64-dbg"
@@ -1554,7 +1554,7 @@
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
         location_regexp: ".+/[+]/third_party/arcore-android-sdk/.+"
         location_regexp: ".+/[+]/third_party/arcore-android-sdk-client/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android-pie-arm64-rel"
@@ -1563,7 +1563,7 @@
       builders {
         name: "chromium/try-m84/android_compile_dbg"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android_compile_x64_dbg"
@@ -1575,7 +1575,7 @@
         location_regexp: ".+/[+]/sandbox/linux/system_headers/.+"
         location_regexp: ".+/[+]/sandbox/linux/tests/.+"
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android_compile_x86_dbg"
@@ -1587,12 +1587,12 @@
         location_regexp: ".+/[+]/sandbox/linux/system_headers/.+"
         location_regexp: ".+/[+]/sandbox/linux/tests/.+"
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android_cronet"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/android_optional_gpu_tests_rel"
@@ -1611,33 +1611,33 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/cast_shell_android"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/cast_shell_linux"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/chromeos-amd64-generic-dbg"
         location_regexp: ".+/[+]/content/gpu/.+"
         location_regexp: ".+/[+]/media/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/chromeos-amd64-generic-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/chromeos-arm-generic-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/chromium_presubmit"
@@ -1646,7 +1646,7 @@
       builders {
         name: "chromium/try-m84/closure_compilation"
         location_regexp: ".+/[+]/third_party/closure_compiler/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/dawn-linux-x64-deps-rel"
@@ -1659,7 +1659,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/dawn-mac-x64-deps-rel"
@@ -1672,7 +1672,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/dawn-win10-x64-deps-rel"
@@ -1685,7 +1685,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/dawn-win10-x86-deps-rel"
@@ -1698,45 +1698,45 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/fuchsia-arm64-cast"
         location_regexp: ".+/[+]/chromecast/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/fuchsia-x64-cast"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/fuchsia_arm64"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/fuchsia_x64"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/ios-simulator"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/ios-simulator-cronet"
         location_regexp: ".+/[+]/components/cronet/.+"
         location_regexp: ".+/[+]/components/grpc_support/.+"
         location_regexp: ".+/[+]/ios/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
         location_regexp_exclude: ".+/[+]/components/cronet/android/.+"
       }
       builders {
         name: "chromium/try-m84/ios-simulator-full-configs"
         location_regexp: ".+/[+]/ios/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux-blink-rel"
@@ -1744,53 +1744,53 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux-chromeos-compile-dbg"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux-chromeos-rel"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux-libfuzzer-asan-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux-ozone-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_chromium_asan_rel_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_chromium_compile_dbg_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_chromium_dbg_ng"
         location_regexp: ".+/[+]/build/.*check_gn_headers.*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_chromium_tsan_rel_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_layout_tests_composite_after_paint"
@@ -1798,7 +1798,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
         location_regexp: ".+/[+]/third_party/blink/web_tests/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_layout_tests_layout_ng_disabled"
@@ -1810,7 +1810,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
         location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/disable-layout-ng"
         location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/disable-layout-ng/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_optional_gpu_tests_rel"
@@ -1827,23 +1827,23 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/linux_vr"
         location_regexp: ".+/[+]/chrome/browser/vr/.+"
         location_regexp: ".+/[+]/content/browser/xr/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/mac-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/mac_chromium_compile_dbg_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/mac_optional_gpu_tests_rel"
@@ -1861,25 +1861,25 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/win-libfuzzer-asan-rel"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/win10_chromium_x64_rel_ng"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/win_chromium_compile_dbg_ng"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m84/win_optional_gpu_tests_rel"
@@ -1899,7 +1899,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       retry_config {
         single_quota: 1
@@ -1965,7 +1965,7 @@
       builders {
         name: "chromium/try-m85/android-binary-size"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android-cronet-arm-dbg"
@@ -1973,18 +1973,18 @@
         location_regexp: ".+/[+]/components/grpc_support/.+"
         location_regexp: ".+/[+]/build/android/.+"
         location_regexp: ".+/[+]/build/config/android/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
         location_regexp_exclude: ".+/[+]/components/cronet/ios/.+"
       }
       builders {
         name: "chromium/try-m85/android-lollipop-arm-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android-marshmallow-arm64-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android-marshmallow-x86-rel"
@@ -2008,7 +2008,7 @@
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
         location_regexp: ".+/[+]/third_party/arcore-android-sdk/.+"
         location_regexp: ".+/[+]/third_party/arcore-android-sdk-client/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android-pie-arm64-rel"
@@ -2017,7 +2017,7 @@
       builders {
         name: "chromium/try-m85/android_compile_dbg"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android_compile_x64_dbg"
@@ -2029,7 +2029,7 @@
         location_regexp: ".+/[+]/sandbox/linux/system_headers/.+"
         location_regexp: ".+/[+]/sandbox/linux/tests/.+"
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android_compile_x86_dbg"
@@ -2041,12 +2041,12 @@
         location_regexp: ".+/[+]/sandbox/linux/system_headers/.+"
         location_regexp: ".+/[+]/sandbox/linux/tests/.+"
         location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android_cronet"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/android_optional_gpu_tests_rel"
@@ -2065,33 +2065,33 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/cast_shell_android"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/cast_shell_linux"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/chromeos-amd64-generic-dbg"
         location_regexp: ".+/[+]/content/gpu/.+"
         location_regexp: ".+/[+]/media/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/chromeos-amd64-generic-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/chromeos-arm-generic-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/chromium_presubmit"
@@ -2100,7 +2100,7 @@
       builders {
         name: "chromium/try-m85/closure_compilation"
         location_regexp: ".+/[+]/third_party/closure_compiler/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/dawn-linux-x64-deps-rel"
@@ -2113,7 +2113,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/dawn-mac-x64-deps-rel"
@@ -2126,7 +2126,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/dawn-win10-x64-deps-rel"
@@ -2139,7 +2139,7 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/dawn-win10-x86-deps-rel"
@@ -2152,12 +2152,12 @@
         location_regexp: ".+/[+]/third_party/dawn/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/features.gni"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/fuchsia-arm64-cast"
         location_regexp: ".+/[+]/chromecast/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/fuchsia-official"
@@ -2166,36 +2166,36 @@
       builders {
         name: "chromium/try-m85/fuchsia-x64-cast"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/fuchsia_arm64"
         experiment_percentage: 50
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/fuchsia_x64"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/ios-simulator"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/ios-simulator-cronet"
         location_regexp: ".+/[+]/components/cronet/.+"
         location_regexp: ".+/[+]/components/grpc_support/.+"
         location_regexp: ".+/[+]/ios/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
         location_regexp_exclude: ".+/[+]/components/cronet/android/.+"
       }
       builders {
         name: "chromium/try-m85/ios-simulator-full-configs"
         location_regexp: ".+/[+]/ios/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux-blink-rel"
@@ -2203,23 +2203,23 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux-chromeos-compile-dbg"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux-chromeos-rel"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux-libfuzzer-asan-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux-official"
@@ -2228,32 +2228,32 @@
       builders {
         name: "chromium/try-m85/linux-ozone-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_chromium_asan_rel_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_chromium_compile_dbg_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_chromium_dbg_ng"
         location_regexp: ".+/[+]/build/.*check_gn_headers.*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_chromium_tsan_rel_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_layout_tests_composite_after_paint"
@@ -2261,7 +2261,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+"
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
         location_regexp: ".+/[+]/third_party/blink/web_tests/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_layout_tests_layout_ng_disabled"
@@ -2273,7 +2273,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+"
         location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/disable-layout-ng"
         location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/disable-layout-ng/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_optional_gpu_tests_rel"
@@ -2290,23 +2290,23 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/linux_vr"
         location_regexp: ".+/[+]/chrome/browser/vr/.+"
         location_regexp: ".+/[+]/content/browser/xr/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/mac-rel"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/mac_chromium_compile_dbg_ng"
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/mac_optional_gpu_tests_rel"
@@ -2324,25 +2324,25 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/win-libfuzzer-asan-rel"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/win10_chromium_x64_rel_ng"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/win_chromium_compile_dbg_ng"
         cancel_stale: NO
         location_regexp: ".*"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
         name: "chromium/try-m85/win_optional_gpu_tests_rel"
@@ -2362,7 +2362,7 @@
         location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+"
         location_regexp: ".+/[+]/tools/clang/scripts/update.py"
         location_regexp: ".+/[+]/ui/gl/.+"
-        location_regexp_exclude: "infra/config/.+"
+        location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       retry_config {
         single_quota: 1
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index 115368b..dc5b3c1 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -26831,7 +26831,7 @@
       swarming_tags: "vpython:native-python-wrapper"
       dimensions: "builderless:1"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Mac-10.13"
+      dimensions: "os:Mac-10.15"
       dimensions: "pool:luci.chromium.try"
       dimensions: "ssd:1"
       exe {
diff --git a/infra/config/lib/try.star b/infra/config/lib/try.star
index b323fef..c839d84 100644
--- a/infra/config/lib/try.star
+++ b/infra/config/lib/try.star
@@ -22,7 +22,7 @@
 load("./builders.star", "builders")
 load("./args.star", "args")
 
-INFRA_CONFIG_LOCATION_REGEXP = "infra/config/.+"
+INFRA_CONFIG_LOCATION_REGEXP = ".+/[+]/infra/config/.+"
 
 defaults = args.defaults(
     extends = builders.defaults,
diff --git a/infra/config/subprojects/chromium/try.star b/infra/config/subprojects/chromium/try.star
index 38406ed..fff037b 100644
--- a/infra/config/subprojects/chromium/try.star
+++ b/infra/config/subprojects/chromium/try.star
@@ -479,7 +479,7 @@
 try_.chromium_mac_builder(
     name = "mac-arm64-rel",
     goma_jobs = goma.jobs.J150,
-    os = os.MAC_10_13,
+    os = os.MAC_10_15,
 )
 
 try_.chromium_mac_builder(
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index cf40f29c..cd89652 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Stoor wagwoord?</translation>
 <translation id="5626245204502895507">Die lêer kon nie nou afgelaai word nie.</translation>
 <translation id="5631164295104953411">Voeg betaalmetode by</translation>
+<translation id="5653058065071344726">Bestuur deur jou organisasie. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">E-pos</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Weergawe <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Opstelling is besig …</translation>
 <translation id="6119050551270742952">Huidige webbladsy is op incognito</translation>
 <translation id="6122191549521593678">Aanlyn</translation>
+<translation id="6125339936101702016">Bestuur deur <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Item is verwyder</translation>
 <translation id="6136914049981179737">Sekondes gelede</translation>
 <translation id="616831107264507309">Lees later</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index eba9d8fc..321b2ae1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">የይለፍ ቃል ይቀመጥ?</translation>
 <translation id="5626245204502895507">ፋይሉ በዚህ ጊዜ ሊወርድ አልቻለም።</translation>
 <translation id="5631164295104953411">የመክፈያ ዘዴ ያክሉ</translation>
+<translation id="5653058065071344726">በእርስዎ ድርጅት የሚተዳደር። <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">ኢሜይል</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">ስሪት <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">ማዋቀር በሂደት ላይ…</translation>
 <translation id="6119050551270742952">የአሁኑ ድረ-ገጽ ማንነት በማያሳውቅ ላይ ነው</translation>
 <translation id="6122191549521593678">መስመር ላይ</translation>
+<translation id="6125339936101702016"><ph name="COMPANY" /> በ የሚተዳደር ነው። <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">ንጥል ተወግዷል</translation>
 <translation id="6136914049981179737">ከሰከንዶች በፊት</translation>
 <translation id="616831107264507309">በኋላ ላይ ያንብቡ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index aa698ff..aae6b3e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -393,7 +393,7 @@
 <translation id="5614553682702429503">Sačuvati lozinku?</translation>
 <translation id="5626245204502895507">Ovaj put nismo uspjeli preuzeti fajl.</translation>
 <translation id="5631164295104953411">Dodajte način plaćanja</translation>
-<translation id="5653058065071344726">Pod upravljanjem vaše organizacije. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
+<translation id="5653058065071344726">Upravlja vaša organizacija. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">E-pošta</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Verzija <ph name="PRODUCT_VERSION" /></translation>
@@ -438,7 +438,7 @@
 <translation id="6108923351542677676">U toku je postavljanje…</translation>
 <translation id="6119050551270742952">Trenutna web stranica je u Anonimnom načinu</translation>
 <translation id="6122191549521593678">Na mreži</translation>
-<translation id="6125339936101702016">Uređajem upravlja <ph name="COMPANY" /> <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
+<translation id="6125339936101702016">Preglednikom upravlja <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Stavka je uklonjena</translation>
 <translation id="6136914049981179737">Prije nekoliko sekundi</translation>
 <translation id="616831107264507309">Pročitajte kasnije</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index 91c3241..906e6a9a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Vols desar la contrasenya?</translation>
 <translation id="5626245204502895507">No s'ha pogut baixar el fitxer en aquest moment.</translation>
 <translation id="5631164295104953411">Afegeix una forma de pagament</translation>
+<translation id="5653058065071344726">Gestionat per la teva organització. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Adreça electrònica</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versió <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Configuració en curs...</translation>
 <translation id="6119050551270742952">La pàgina web actual està en mode d'incògnit</translation>
 <translation id="6122191549521593678">En línia</translation>
+<translation id="6125339936101702016">Gestionat per <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">S'ha suprimit l'element</translation>
 <translation id="6136914049981179737">Fa segons</translation>
 <translation id="616831107264507309">Ho vull llegir més tard</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index 203a41f..b3fa1bf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -614,7 +614,7 @@
 <translation id="8027581147000338959">Otevřít v novém okně</translation>
 <translation id="804427445359061970">Zde najdete své karty z jiných zařízení</translation>
 <translation id="8059533439631660104">Sbalí sekci.</translation>
-<translation id="8065292699993359127">Otevřít adresy URL v Chromu v anonymním režimu</translation>
+<translation id="8065292699993359127">Otevírat adresy URL v Chromu v anonymním režimu</translation>
 <translation id="806745655614357130">Uchovat má data samostatně.</translation>
 <translation id="8073670137947914548">Stahování bylo dokončeno</translation>
 <translation id="8073872304774253879">Vylepšit vyhledávání a procházení</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index 498c9c7..99a808f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Vil du gemme adgangskoden?</translation>
 <translation id="5626245204502895507">Filen kunne ikke downloades på nuværende tidspunkt.</translation>
 <translation id="5631164295104953411">Tilføj betalingsmetode</translation>
+<translation id="5653058065071344726">Administreret af din organisation. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Mail</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Version <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Konfigurationen er i gang...</translation>
 <translation id="6119050551270742952">Den aktuelle webside er i inkognitotilstand</translation>
 <translation id="6122191549521593678">Online</translation>
+<translation id="6125339936101702016">Administreres af <ph name="COMPANY" /> <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Elementet blev fjernet</translation>
 <translation id="6136914049981179737">Sek. siden</translation>
 <translation id="616831107264507309">Læs senere</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 4c20e90..ee435af6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -244,7 +244,7 @@
 <translation id="3638472932233958418">Precargar pág. web</translation>
 <translation id="3670030362669914947">Número</translation>
 <translation id="3691593122358196899">Se agregó a favoritos en <ph name="FOLDER_TITLE" /></translation>
-<translation id="3740397331642243698">Abre las URL ingresadas en Google Chrome, en modo Incógnito.</translation>
+<translation id="3740397331642243698">Abre las URL ingresadas en Google Chrome en modo Incógnito.</translation>
 <translation id="3771033907050503522">Pestañas de incógnito</translation>
 <translation id="3775743491439407556">La sincronización no funciona</translation>
 <translation id="3779810277399252432">Sin conexión a Internet</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index 9612bacd..68ca153 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">گذرواژه ذخیره شود؟</translation>
 <translation id="5626245204502895507">فایل در حال حاضر قابل بارگیری نیست.</translation>
 <translation id="5631164295104953411">افزودن روش پرداخت</translation>
+<translation id="5653058065071344726">توسط سازمانتان مدیریت می‌شود. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">ایمیل</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">نسخه <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">تنظیم در حال انجام است...</translation>
 <translation id="6119050551270742952">صفحه وب کنونی در حالت ناشناس است</translation>
 <translation id="6122191549521593678">آنلاین</translation>
+<translation id="6125339936101702016">توسط <ph name="COMPANY" /> مدیریت می‌شود. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">مورد برداشته شد</translation>
 <translation id="6136914049981179737">ثانیه‌هایی قبل</translation>
 <translation id="616831107264507309">خواندن در فرصتی دیگر</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index df96c6e..d71f722 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Queres gardar o contrasinal?</translation>
 <translation id="5626245204502895507">Non se puido descargar o ficheiro neste momento.</translation>
 <translation id="5631164295104953411">Engadir método de pago</translation>
+<translation id="5653058065071344726">Xestionado pola túa organización. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Correo electrónico</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versión <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Configuración en curso…</translation>
 <translation id="6119050551270742952">O sitio web actual está no modo de incógnito</translation>
 <translation id="6122191549521593678">Online</translation>
+<translation id="6125339936101702016">Xestionado por <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Eliminouse o elemento</translation>
 <translation id="6136914049981179737">Seg. antes</translation>
 <translation id="616831107264507309">Ler máis tarde</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index badefdbd..3081aff 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Szeretné elmenteni a jelszót?</translation>
 <translation id="5626245204502895507">A fájlt jelenleg nem lehet letölteni.</translation>
 <translation id="5631164295104953411">Fizetési mód hozzáadása</translation>
+<translation id="5653058065071344726">Az Ön szervezete kezeli. <ph name="BEGIN_LINK" />További információ.<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Verzió: <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">A telepítés folyamatban...</translation>
 <translation id="6119050551270742952">Ez a weboldal inkognitó módban van megnyitva</translation>
 <translation id="6122191549521593678">Online</translation>
+<translation id="6125339936101702016">Kezelő: <ph name="COMPANY" />. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" />.</translation>
 <translation id="6127379762771434464">Elem eltávolítva</translation>
 <translation id="6136914049981179737">Néhány másodperce</translation>
 <translation id="616831107264507309">Olvasás később</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index da4cbc6..3bf7ea08 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Vista aðgangsorð?</translation>
 <translation id="5626245204502895507">Ekki var hægt að sækja skrána.</translation>
 <translation id="5631164295104953411">Bæta við greiðslumáta</translation>
+<translation id="5653058065071344726">Stjórnað af fyrirtækinu þínu. <ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Netfang</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Útgáfa <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Uppsetning fer fram…</translation>
 <translation id="6119050551270742952">Opin vefsíða er í huliðsstillingu</translation>
 <translation id="6122191549521593678">Á netinu</translation>
+<translation id="6125339936101702016">Stjórnað af <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Atriði fjarlægt</translation>
 <translation id="6136914049981179737">sekúndur síðan</translation>
 <translation id="616831107264507309">Lesa síðar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index bc7880c..2084864 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">ಪಾಸ್‌ವರ್ಡ್ ಉಳಿಸುವುದೇ?</translation>
 <translation id="5626245204502895507">ಈ ಸಮಯದಲ್ಲಿ ಫೈಲ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="5631164295104953411">ಪಾವತಿ ವಿಧಾನವನ್ನು ಸೇರಿಸಿ</translation>
+<translation id="5653058065071344726">ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">ಇಮೇಲ್</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">ಆವೃತ್ತಿ <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">ಸೆಟಪ್ ಪ್ರಗತಿಯಲ್ಲಿದೆ...</translation>
 <translation id="6119050551270742952">ಪ್ರಸ್ತುತ ವೆಬ್ ಪುಟವು ಅಜ್ಞಾತ ಮೋಡ್‌ನಲ್ಲಿದೆ</translation>
 <translation id="6122191549521593678">ಆನ್‌ಲೈನ್</translation>
+<translation id="6125339936101702016"><ph name="COMPANY" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">ಐಟಂ ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation>
 <translation id="6136914049981179737">ಸೆಕೆಂಡ್ ಹಿಂದೆ</translation>
 <translation id="616831107264507309">ನಂತರ ಓದಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 17d77cf..4ca6ab0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Išsaugoti slaptažodį?</translation>
 <translation id="5626245204502895507">Šiuo metu negalima atsisiųsti programos.</translation>
 <translation id="5631164295104953411">Pridėti mokėjimo metodą</translation>
+<translation id="5653058065071344726">Valdo jūsų organizacija. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">El. paštas</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783"><ph name="PRODUCT_VERSION" /> versija</translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Nustatoma…</translation>
 <translation id="6119050551270742952">Dabartinė svetainė atidaryta inkognito režimu</translation>
 <translation id="6122191549521593678">Prisijungęs</translation>
+<translation id="6125339936101702016">Valdo „<ph name="COMPANY" />“. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Elementas pašalintas</translation>
 <translation id="6136914049981179737">Prieš sek.</translation>
 <translation id="616831107264507309">Skaityti vėliau</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 59069bc2..85a7c7fd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Vai saglabāt paroli?</translation>
 <translation id="5626245204502895507">Pašlaik failu nevar lejupielādēt.</translation>
 <translation id="5631164295104953411">Pievienot maksājuma veidu</translation>
+<translation id="5653058065071344726">Pārvalda jūsu organizācija. <ph name="BEGIN_LINK" />Uzzināt vairāk<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">E-pasts</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versija <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Notiek iestatīšana...</translation>
 <translation id="6119050551270742952">Šajā lapā esat inkognito</translation>
 <translation id="6122191549521593678">Tiešsaistē</translation>
+<translation id="6125339936101702016">Pārvalda organizācija <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Uzzināt vairāk<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Vienums ir noņemts</translation>
 <translation id="6136914049981179737">Pirms sek.</translation>
 <translation id="616831107264507309">Lasīt vēlāk</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index d325e064..1594eb80 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Дали да се зачува лозинката?</translation>
 <translation id="5626245204502895507">Датотеката не можеше да се преземе во моментов.</translation>
 <translation id="5631164295104953411">Додајте начин на плаќање</translation>
+<translation id="5653058065071344726">Управувано од вашата организација. <ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Е-пошта</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Верзија <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Поставувањето е во тек…</translation>
 <translation id="6119050551270742952">Веб-страницата е во режим инкогнито</translation>
 <translation id="6122191549521593678">Онлајн</translation>
+<translation id="6125339936101702016">Управувано од <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Ставката е отстранета</translation>
 <translation id="6136914049981179737">Пред секунди</translation>
 <translation id="616831107264507309">Прочитајте подоцна</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 2ee6d52..a5d5027 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">പാസ്‌വേഡ് സംരക്ഷിക്കണോ?</translation>
 <translation id="5626245204502895507">ഫയൽ ഇപ്പോൾ ഡൗൺലോഡുചെയ്യാൻ കഴിയില്ല.</translation>
 <translation id="5631164295104953411">പേയ്‌മെന്‍റ് രീതി ചേർക്കുക</translation>
+<translation id="5653058065071344726">നിങ്ങളുടെ സ്ഥാപനം മാനേജ് ചെയ്യുന്നത്. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">ഇമെയില്‍</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">പതിപ്പ് <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">സജ്ജീകരണം പുരോഗതിയിലാണ്...</translation>
 <translation id="6119050551270742952">നിലവിലെ വെബ്‌പേജ് അദൃശ്യ മോഡിലാണ്</translation>
 <translation id="6122191549521593678">ഓൺലൈൻ</translation>
+<translation id="6125339936101702016"><ph name="COMPANY" /> മാനേജ് ചെയ്യുന്നത്. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">ഇനം നീക്കംചെയ്‌തു</translation>
 <translation id="6136914049981179737">സെക്കൻഡ് മുമ്പ്</translation>
 <translation id="616831107264507309">പിന്നീട് വായിക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index b4bb9bd..87c7839 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -394,6 +394,7 @@
 <translation id="5614553682702429503">पासवर्ड सेव्ह करायचा आहे का?</translation>
 <translation id="5626245204502895507">यावेळी फाईल डाऊनलोड केली जाऊ शकली नाही.</translation>
 <translation id="5631164295104953411">पेमेंट पद्धत जोडा</translation>
+<translation id="5653058065071344726">तुमच्या संस्थेने व्यवस्थापित केलेले. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">ई-मेल</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">आवृत्ती <ph name="PRODUCT_VERSION" /></translation>
@@ -438,6 +439,7 @@
 <translation id="6108923351542677676">सेटअप प्रगती पथावर आहे...</translation>
 <translation id="6119050551270742952">सध्याचे वेबपेज गुप्त मोडमध्ये सुरू आहे</translation>
 <translation id="6122191549521593678">ऑनलाइन</translation>
+<translation id="6125339936101702016"><ph name="COMPANY" /> ने व्यवस्थापित केलेले. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">आयटम काढला</translation>
 <translation id="6136914049981179737">सेकंदांपूर्वी</translation>
 <translation id="616831107264507309">नंतर वाचा</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index fa24352d..a465eea 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -392,6 +392,7 @@
 <translation id="5614553682702429503">စကားဝှက်ကို သိမ်းလိုပါသလား။</translation>
 <translation id="5626245204502895507">ဤဖိုင်ကို ယခုအချိန်တွင် ဒေါင်းလုဒ် လုပ်၍မရနိုင်ပါ။</translation>
 <translation id="5631164295104953411">ငွေပေးချေနည်းလမ်း ထည့်ရန်</translation>
+<translation id="5653058065071344726">သင်၏ 'အဖွဲ့အစည်း' က စီမံခန့်ခွဲထားသည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">အီးမေးလ်</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">ဗားရှင်း <ph name="PRODUCT_VERSION" /></translation>
@@ -436,6 +437,7 @@
 <translation id="6108923351542677676">စဖွင့် သတ်မှတ်မှု လုပ်ကိုင်…</translation>
 <translation id="6119050551270742952">လက်ရှိဝဘ်စာမျက်နှာကို ရုပ်ဖျက်မုဒ်တွင် ဖွင့်ထားသည်</translation>
 <translation id="6122191549521593678">အွန်လိုင်း</translation>
+<translation id="6125339936101702016"><ph name="COMPANY" /> က စီမံခန့်ခွဲထားသည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">အကြောင်းအရာကို ဖယ်ရှားလိုက်ပါပြီ</translation>
 <translation id="6136914049981179737">ပြီးခဲ့သော စက္ကန့်</translation>
 <translation id="616831107264507309">နောက်မှဖတ်ရန်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 3c0bde1c..0537e3b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Wachtwoord opslaan?</translation>
 <translation id="5626245204502895507">Het bestand kan momenteel niet worden gedownload.</translation>
 <translation id="5631164295104953411">Betaalmethode toevoegen</translation>
+<translation id="5653058065071344726">Beheerd door je organisatie. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versie <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Instellen wordt uitgevoerd...</translation>
 <translation id="6119050551270742952">De huidige webpagina is in de incognitomodus</translation>
 <translation id="6122191549521593678">Online</translation>
+<translation id="6125339936101702016">Beheerd door <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Item verwijderd</translation>
 <translation id="6136914049981179737">Sec. geleden</translation>
 <translation id="616831107264507309">Later lezen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index c3e6c80..2759d32 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">ਕੀ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨਾ ਹੈ?</translation>
 <translation id="5626245204502895507">ਇਸ ਵੇਲੇ ਫਾਈਲ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।</translation>
 <translation id="5631164295104953411">ਭੁਗਤਾਨ ਵਿਧੀ ਸ਼ਾਮਲ ਕਰੋ</translation>
+<translation id="5653058065071344726">ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">ਈਮੇਲ</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">ਵਰਜਨ <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">ਸੈਟਅਪ ਚਾਲੂ ਹੈ...</translation>
 <translation id="6119050551270742952">ਵਰਤਮਾਨ ਵੈੱਬਪੰਨਾ ਇਨਕੋਗਨਿਟੋ 'ਤੇ</translation>
 <translation id="6122191549521593678">ਆਨਲਾਈਨ</translation>
+<translation id="6125339936101702016"><ph name="COMPANY" /> ਵੱਲੋਂ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">ਆਈਟਮ ਹਟਾਈ ਗਈ</translation>
 <translation id="6136914049981179737">ਸਕਿੰਟ ਪਹਿਲਾਂ</translation>
 <translation id="616831107264507309">ਬਾਅਦ ਵਿੱਚ ਪੜ੍ਹੋ</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 52f8a43..47753309 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Salvar senha?</translation>
 <translation id="5626245204502895507">Não foi possível fazer download do arquivo neste momento.</translation>
 <translation id="5631164295104953411">Adicionar forma de pagamento.</translation>
+<translation id="5653058065071344726">Gerenciado pela sua organização. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versão <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Configuração em andamento...</translation>
 <translation id="6119050551270742952">Esta pág. está no modo anônimo</translation>
 <translation id="6122191549521593678">On-line</translation>
+<translation id="6125339936101702016">Gerenciado por <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Item removido</translation>
 <translation id="6136914049981179737">Segundos atrás</translation>
 <translation id="616831107264507309">Ler mais tarde</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 e667d10c..d1691689 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Pretende guardar a palavra-passe?</translation>
 <translation id="5626245204502895507">De momento não é possível transferir o ficheiro.</translation>
 <translation id="5631164295104953411">Adicionar método de pagamento</translation>
+<translation id="5653058065071344726">Gerido pela sua entidade. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Email</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versão <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Configuração em curso…</translation>
 <translation id="6119050551270742952">Página Web atual – Nav. anónima</translation>
 <translation id="6122191549521593678">Online</translation>
+<translation id="6125339936101702016">Gerido por <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Item removido</translation>
 <translation id="6136914049981179737">Há segundos</translation>
 <translation id="616831107264507309">Ler mais tarde</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index d8e5815..083d51f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Ungependa kuhifadhi nenosiri?</translation>
 <translation id="5626245204502895507">Faili haikuweza kupakuliwa wakati huu.</translation>
 <translation id="5631164295104953411">Ongeza Njia ya Kulipa</translation>
+<translation id="5653058065071344726">Inadhibitiwa na shirika lako. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Barua pepe</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Toleo <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Usanidi unaendelea...</translation>
 <translation id="6119050551270742952">Ukurasa wa sasa wa Wavuti uko katika Hali Fiche</translation>
 <translation id="6122191549521593678">Mtandaoni</translation>
+<translation id="6125339936101702016">Inadhibitiwa na <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Kipengee kimeondolewa</translation>
 <translation id="6136914049981179737">Sekunde chache</translation>
 <translation id="616831107264507309">Soma baadaye</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 9bed112..d1fa157 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -16,6 +16,7 @@
 <translation id="1104948393051856124">ஏற்று தொடரவும்</translation>
 <translation id="1112015203684611006">அச்சிட முடியவில்லை.</translation>
 <translation id="1125564390852150847">புதிய தாவலை உருவாக்கு</translation>
+<translation id="1134509371063488162">${urls} ஆகிய இணைப்புகளை மறைநிலையில் திற</translation>
 <translation id="1145536944570833626">ஏற்கனவே உள்ள தரவை நீக்கு.</translation>
 <translation id="1165039591588034296">பிழை</translation>
 <translation id="1172898394251786223">அடுத்த புலம்</translation>
@@ -243,6 +244,7 @@
 <translation id="3638472932233958418">வலைப்பக்கங்களை முன்னதாக ஏற்று</translation>
 <translation id="3670030362669914947">எண்</translation>
 <translation id="3691593122358196899"><ph name="FOLDER_TITLE" /> இல் புத்தகக்குறியைச் சேர்த்தது</translation>
+<translation id="3740397331642243698">Google Chrome உலாவியில் உள்ளிட்ட URLகளை மறைநிலையில் திறக்கும்.</translation>
 <translation id="3771033907050503522">மறைநிலைத் தாவல்கள்</translation>
 <translation id="3775743491439407556">ஒத்திசைவு வேலை செய்யவில்லை</translation>
 <translation id="3779810277399252432">இணைய இணைப்பு இல்லை.</translation>
@@ -612,6 +614,7 @@
 <translation id="8027581147000338959">புதிய சாளரத்தில் திற</translation>
 <translation id="804427445359061970">பிற சாதனங்களில் உள்ள உங்கள் தாவல்களை இங்கே பார்ப்பீர்கள்</translation>
 <translation id="8059533439631660104">பிரிவைச் சுருக்கும்.</translation>
+<translation id="8065292699993359127">URLகளை Chrome உலாவியில் மறைநிலையில் திற</translation>
 <translation id="806745655614357130">எனது தரவைத் தனியாக வை</translation>
 <translation id="8073670137947914548">பதிவிறக்கம் முடிவடைந்தது</translation>
 <translation id="8073872304774253879">தேடல்களையும் உலாவுதலையும் மேம்படுத்துங்கள்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 78618d3..5d84d79 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Зберегти пароль?</translation>
 <translation id="5626245204502895507">Зараз неможливо завантажити цей файл.</translation>
 <translation id="5631164295104953411">Додати спосіб оплати</translation>
+<translation id="5653058065071344726">Веб-переглядачем керує ваша організація. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Ел. пошта</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Версія <ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Виконується налаштування…</translation>
 <translation id="6119050551270742952">Поточна сторінка в анонімному режимі</translation>
 <translation id="6122191549521593678">Онлайн</translation>
+<translation id="6125339936101702016">Веб-переглядачем керує компанія <ph name="COMPANY" />. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Веб-сайт видалено</translation>
 <translation id="6136914049981179737">Мить тому</translation>
 <translation id="616831107264507309">Читати пізніше</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index ead79a7..4599730 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Parol saqlansinmi?</translation>
 <translation id="5626245204502895507">Faylni yuklab olishda xatolik yuz berdi.</translation>
 <translation id="5631164295104953411">To‘lov usulini qo‘shing</translation>
+<translation id="5653058065071344726">Tashkilotingiz tomonidan boshqariladi. <ph name="BEGIN_LINK" />Batafsil<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">Email</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783"><ph name="PRODUCT_VERSION" />-versiya</translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Sozlanmoqda...</translation>
 <translation id="6119050551270742952">Bu sahifa inkognito rejimida</translation>
 <translation id="6122191549521593678">Onlayn</translation>
+<translation id="6125339936101702016"><ph name="COMPANY" /> tomonidan boshqariladi. <ph name="BEGIN_LINK" />Batafsil<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Havola o‘chirildi</translation>
 <translation id="6136914049981179737">Yaqinda</translation>
 <translation id="616831107264507309">Keyinroq o‘qish</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index 0c31ca5..a6709bf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -393,6 +393,7 @@
 <translation id="5614553682702429503">Londoloza iphasiwedi?</translation>
 <translation id="5626245204502895507">Ifayela alikwazanga ukulandwa ngalesi sikhathi.</translation>
 <translation id="5631164295104953411">Engeza indlela yokukhokha</translation>
+<translation id="5653058065071344726">Kuphethwe inhlangano yakho. <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation>
 <translation id="5659593005791499971">I-imeyili</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Inguqulo engu-<ph name="PRODUCT_VERSION" /></translation>
@@ -437,6 +438,7 @@
 <translation id="6108923351542677676">Ukusetha kuyaqhubeka…</translation>
 <translation id="6119050551270742952">Ikhasi lewebhu lamanje liku-Incognito</translation>
 <translation id="6122191549521593678">Ku-inthanethi</translation>
+<translation id="6125339936101702016">Iphethwe i-<ph name="COMPANY" />. <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation>
 <translation id="6127379762771434464">Into isusiwe</translation>
 <translation id="6136914049981179737">Amasekhondi adlule</translation>
 <translation id="616831107264507309">Funda ngemuva kwesikhathi</translation>
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index 454aa05..7924e9dc 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -125,16 +125,6 @@
 };
 
 const FeatureEntry::FeatureVariation
-    kOmniboxOnDeviceHeadSuggestIncognitoExperimentVariations[] = {{
-        "relevance-1000",
-        (FeatureEntry::FeatureParam[]){
-            {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput,
-             "1000"}},
-        1,
-        nullptr,
-    }};
-
-const FeatureEntry::FeatureVariation
     kOmniboxOnDeviceHeadSuggestNonIncognitoExperimentVariations[] = {
         {
             "relevance-1000",
@@ -396,10 +386,7 @@
      flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoName,
      flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoDescription,
      flags_ui::kOsIos,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(
-         omnibox::kOnDeviceHeadProviderIncognito,
-         kOmniboxOnDeviceHeadSuggestIncognitoExperimentVariations,
-         "OmniboxOnDeviceHeadSuggestIncognitoIOS")},
+     FEATURE_VALUE_TYPE(omnibox::kOnDeviceHeadProviderIncognito)},
     {"omnibox-on-device-head-suggestions-non-incognito",
      flag_descriptions::kOmniboxOnDeviceHeadSuggestionsNonIncognitoName,
      flag_descriptions::kOmniboxOnDeviceHeadSuggestionsNonIncognitoDescription,
diff --git a/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm b/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm
index 7d9017b..ee1ae18 100644
--- a/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm
+++ b/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm
@@ -67,6 +67,17 @@
                      network_context_client_.BindNewPipeAndPassReceiver(),
                      safe_browsing_data_path));
 
+  auto url_loader_factory_params =
+      network::mojom::URLLoaderFactoryParams::New();
+  url_loader_factory_params->process_id = network::mojom::kBrowserProcessId;
+  url_loader_factory_params->is_corb_enabled = false;
+  network_context_client_->CreateURLLoaderFactory(
+      url_loader_factory_.BindNewPipeAndPassReceiver(),
+      std::move(url_loader_factory_params));
+  shared_url_loader_factory_ =
+      base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
+          url_loader_factory_.get());
+
   // Watch for changes to the Safe Browsing opt-out preference.
   pref_change_registrar_ = std::make_unique<PrefChangeRegistrar>();
   pref_change_registrar_->Init(prefs);
@@ -133,17 +144,7 @@
 void SafeBrowsingServiceImpl::SetUpURLLoaderFactory(
     mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver) {
   DCHECK_CURRENTLY_ON(web::WebThread::UI);
-  auto url_loader_factory_params =
-      network::mojom::URLLoaderFactoryParams::New();
-  url_loader_factory_params->process_id = network::mojom::kBrowserProcessId;
-  url_loader_factory_params->is_corb_enabled = false;
-  network_context_client_->CreateURLLoaderFactory(
-      url_loader_factory_.BindNewPipeAndPassReceiver(),
-      std::move(url_loader_factory_params));
   url_loader_factory_->Clone(std::move(receiver));
-  shared_url_loader_factory_ =
-      base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
-          url_loader_factory_.get());
 }
 
 void SafeBrowsingServiceImpl::UpdateSafeBrowsingEnabledState() {
diff --git a/ios/chrome/browser/safe_browsing/safe_browsing_service_unittest.mm b/ios/chrome/browser/safe_browsing/safe_browsing_service_unittest.mm
index 2bf8bcd..132daac 100644
--- a/ios/chrome/browser/safe_browsing/safe_browsing_service_unittest.mm
+++ b/ios/chrome/browser/safe_browsing/safe_browsing_service_unittest.mm
@@ -416,3 +416,27 @@
       }));
   run_loop5.Run();
 }
+
+using SafeBrowsingServiceInitializationTest = PlatformTest;
+
+// Verifies that GetURLLoaderFactory() has a non-null return value when called
+// immediately after initialization.
+TEST_F(SafeBrowsingServiceInitializationTest, GetURLLoaderFactory) {
+  web::WebTaskEnvironment task_environment;
+
+  TestChromeBrowserState::Builder builder;
+  std::unique_ptr<TestChromeBrowserState> browser_state = builder.Build();
+
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+
+  scoped_refptr<SafeBrowsingService> safe_browsing_service =
+      base::MakeRefCounted<SafeBrowsingServiceImpl>();
+  safe_browsing_service->Initialize(browser_state->GetPrefs(),
+                                    temp_dir.GetPath());
+
+  EXPECT_TRUE(safe_browsing_service->GetURLLoaderFactory());
+
+  safe_browsing_service->ShutDown();
+  base::RunLoop().RunUntilIdle();
+}
diff --git a/ios/chrome/browser/ui/activity_services/BUILD.gn b/ios/chrome/browser/ui/activity_services/BUILD.gn
index 14548397..a0fcee9b 100644
--- a/ios/chrome/browser/ui/activity_services/BUILD.gn
+++ b/ios/chrome/browser/ui/activity_services/BUILD.gn
@@ -35,7 +35,6 @@
     "//ios/chrome/browser/ui/activity_services/activities",
     "//ios/chrome/browser/ui/activity_services/data",
     "//ios/chrome/browser/ui/activity_services/requirements",
-    "//ios/chrome/browser/ui/bookmarks",
     "//ios/chrome/browser/ui/commands",
     "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
     "//ios/chrome/browser/ui/util",
diff --git a/ios/chrome/browser/ui/activity_services/activity_scenario.h b/ios/chrome/browser/ui/activity_services/activity_scenario.h
index 8a5055d8..56702da 100644
--- a/ios/chrome/browser/ui/activity_services/activity_scenario.h
+++ b/ios/chrome/browser/ui/activity_services/activity_scenario.h
@@ -13,8 +13,9 @@
   QRCodeImage = 1,
   HistoryEntry = 2,
   ReadingListEntry = 3,
+  BookmarkEntry = 4,
   // Highest enumerator. Recommended by Histogram metrics best practices.
-  kMaxValue = ReadingListEntry
+  kMaxValue = BookmarkEntry
 };
 
 #endif  // IOS_CHROME_BROWSER_UI_ACTIVITY_SERVICES_ACTIVITY_SCENARIO_H_
diff --git a/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm b/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm
index 28ac899..d8bd253c 100644
--- a/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm
+++ b/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm
@@ -24,6 +24,8 @@
     "Mobile.Share.HistoryEntry.Actions";
 const char kShareReadingListEntryActionsHistogram[] =
     "Mobile.Share.ReadingListEntry.Actions";
+const char kShareBookmarkEntryActionsHistogram[] =
+    "Mobile.Share.BookmarkEntry.Actions";
 
 // Enum representing an aggregation of the |ActivityType| enum values in a way
 // that is relevant for metric collection. Current values should not
@@ -138,6 +140,9 @@
     case ActivityScenario::ReadingListEntry:
       histogramName = kShareReadingListEntryActionsHistogram;
       break;
+    case ActivityScenario::BookmarkEntry:
+      histogramName = kShareBookmarkEntryActionsHistogram;
+      break;
   }
   base::UmaHistogramEnumeration(histogramName, actionType);
 }
diff --git a/ios/chrome/browser/ui/bookmarks/BUILD.gn b/ios/chrome/browser/ui/bookmarks/BUILD.gn
index 430b1bc..58d06083 100644
--- a/ios/chrome/browser/ui/bookmarks/BUILD.gn
+++ b/ios/chrome/browser/ui/bookmarks/BUILD.gn
@@ -83,6 +83,7 @@
     "//ios/chrome/browser/sync",
     "//ios/chrome/browser/tabs",
     "//ios/chrome/browser/ui:feature_flags",
+    "//ios/chrome/browser/ui/activity_services",
     "//ios/chrome/browser/ui/alert_coordinator",
     "//ios/chrome/browser/ui/authentication",
     "//ios/chrome/browser/ui/authentication/cells",
@@ -97,6 +98,7 @@
     "//ios/chrome/browser/ui/material_components",
     "//ios/chrome/browser/ui/menu",
     "//ios/chrome/browser/ui/ntp",
+    "//ios/chrome/browser/ui/sharing",
     "//ios/chrome/browser/ui/table_view",
     "//ios/chrome/browser/ui/table_view:feature_flags",
     "//ios/chrome/browser/ui/table_view:presentation",
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm b/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm
index 69066cc6..5c1247a0 100644
--- a/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm
+++ b/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm
@@ -25,6 +25,7 @@
 #import "ios/chrome/browser/main/browser.h"
 #import "ios/chrome/browser/metrics/new_tab_page_uma.h"
 #include "ios/chrome/browser/policy/policy_features.h"
+#import "ios/chrome/browser/ui/activity_services/activity_params.h"
 #import "ios/chrome/browser/ui/alert_coordinator/action_sheet_coordinator.h"
 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
 #import "ios/chrome/browser/ui/authentication/cells/signin_promo_view_configurator.h"
@@ -54,6 +55,7 @@
 #import "ios/chrome/browser/ui/material_components/utils.h"
 #import "ios/chrome/browser/ui/menu/action_factory.h"
 #import "ios/chrome/browser/ui/menu/menu_histograms.h"
+#import "ios/chrome/browser/ui/sharing/sharing_coordinator.h"
 #import "ios/chrome/browser/ui/table_view/cells/table_view_url_item.h"
 #import "ios/chrome/browser/ui/table_view/chrome_table_view_styler.h"
 #import "ios/chrome/browser/ui/table_view/table_view_illustrated_empty_view.h"
@@ -222,6 +224,9 @@
 // Handler for URL drag and drop interactions.
 @property(nonatomic, strong) TableViewURLDragDropHandler* dragDropHandler;
 
+// Coordinator in charge of handling sharing use cases.
+@property(nonatomic, strong) SharingCoordinator* sharingCoordinator;
+
 @end
 
 @implementation BookmarkHomeViewController
@@ -1402,6 +1407,24 @@
   return self.scrimView.superview ? YES : NO;
 }
 
+// Triggers the URL sharing flow for the given |URL| and |title|, with the
+// |indexPath| for the cell representing the UI component for that URL.
+- (void)shareURL:(const GURL&)URL
+           title:(NSString*)title
+       indexPath:(NSIndexPath*)indexPath {
+  UIView* cellView = [self.tableView cellForRowAtIndexPath:indexPath];
+  ActivityParams* params =
+      [[ActivityParams alloc] initWithURL:URL
+                                    title:title
+                                 scenario:ActivityScenario::BookmarkEntry];
+  self.sharingCoordinator =
+      [[SharingCoordinator alloc] initWithBaseViewController:self
+                                                     browser:self.browser
+                                                      params:params
+                                                  originView:cellView];
+  [self.sharingCoordinator start];
+}
+
 #pragma mark - Loading and Empty States
 
 // Shows loading spinner background view.
@@ -2171,6 +2194,11 @@
     return nil;
   }
 
+  if (self.sharedState.currentlyInEditMode) {
+    // Don't show the context menu when currently in editing mode.
+    return nil;
+  }
+
   if (![self canShowContextMenuFor:indexPath]) {
     return nil;
   }
@@ -2222,6 +2250,13 @@
                       [self editNode:node];
                     }]];
 
+      [menuElements
+          addObject:[actionFactory actionToShareWithBlock:^{
+            [self shareURL:node->url()
+                     title:bookmark_utils_ios::TitleForBookmarkNode(node)
+                 indexPath:indexPath];
+          }]];
+
       [menuElements addObject:[actionFactory actionToDeleteWithBlock:^{
                       std::set<const BookmarkNode*> nodes;
                       nodes.insert(node);
diff --git a/ios/chrome/browser/ui/history/history_table_view_controller.mm b/ios/chrome/browser/ui/history/history_table_view_controller.mm
index e184e09a..2dee9a5 100644
--- a/ios/chrome/browser/ui/history/history_table_view_controller.mm
+++ b/ios/chrome/browser/ui/history/history_table_view_controller.mm
@@ -625,6 +625,11 @@
     return nil;
   }
 
+  if (self.isEditing) {
+    // Don't show the context menu when currently in editing mode.
+    return nil;
+  }
+
   HistoryEntryItem* entry = base::mac::ObjCCastStrict<HistoryEntryItem>(
       [self.tableViewModel itemAtIndexPath:indexPath]);
   UIView* cell = [self.tableView cellForRowAtIndexPath:indexPath];
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_table_view_controller.mm b/ios/chrome/browser/ui/reading_list/reading_list_table_view_controller.mm
index 2e4092a..f26854b9 100644
--- a/ios/chrome/browser/ui/reading_list/reading_list_table_view_controller.mm
+++ b/ios/chrome/browser/ui/reading_list/reading_list_table_view_controller.mm
@@ -316,6 +316,11 @@
     return nil;
   }
 
+  if (self.isEditing) {
+    // Don't show the context menu when currently in editing mode.
+    return nil;
+  }
+
   return [self.menuProvider
       contextMenuConfigurationForItem:[self.tableViewModel
                                           itemAtIndexPath:indexPath]
diff --git a/media/audio/audio_features.cc b/media/audio/audio_features.cc
index 8a57ff46..94ebf72 100644
--- a/media/audio/audio_features.cc
+++ b/media/audio/audio_features.cc
@@ -27,7 +27,7 @@
 // Enables loading and using AAudio instead of OpenSLES on compatible devices,
 // for audio output streams.
 const base::Feature kUseAAudioDriver{"UseAAudioDriver",
-                                     base::FEATURE_DISABLED_BY_DEFAULT};
+                                     base::FEATURE_ENABLED_BY_DEFAULT};
 #endif
 
 #if defined(OS_CHROMEOS)
diff --git a/media/base/media.cc b/media/base/media.cc
index c282ee4..11e99c2 100644
--- a/media/base/media.cc
+++ b/media/base/media.cc
@@ -4,6 +4,9 @@
 
 #include "media/base/media.h"
 
+#include <stdint.h>
+#include <limits>
+
 #include "base/allocator/buildflags.h"
 #include "base/command_line.h"
 #include "base/macros.h"
@@ -41,7 +44,7 @@
 
 #if BUILDFLAG(USE_ALLOCATOR_SHIM)
     // Remove allocation limit from ffmpeg, so calls go down to shim layer.
-    av_max_alloc(0);
+    av_max_alloc(std::numeric_limits<size_t>::max());
 #endif  // BUILDFLAG(USE_ALLOCATOR_SHIM)
 
 #endif  // BUILDFLAG(ENABLE_FFMPEG)
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
index 6f85849..004644b5 100644
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -761,6 +761,9 @@
 const base::Feature kKaleidoscope{"Kaleidoscope",
                                   base::FEATURE_ENABLED_BY_DEFAULT};
 
+const base::Feature kKaleidoscopeModule{"KaleidoscopeModule",
+                                        base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kUseFakeDeviceForMediaStream{
     "use-fake-device-for-media-stream", base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
index 7cdefcd8..905240b7 100644
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -133,6 +133,7 @@
 MEDIA_EXPORT extern const base::Feature kHardwareSecureDecryption;
 MEDIA_EXPORT extern const base::Feature kInternalMediaSession;
 MEDIA_EXPORT extern const base::Feature kKaleidoscope;
+MEDIA_EXPORT extern const base::Feature kKaleidoscopeModule;
 MEDIA_EXPORT extern const base::Feature kLiveCaption;
 MEDIA_EXPORT extern const base::Feature kLowDelayVideoRenderingOnLiveStream;
 MEDIA_EXPORT extern const base::Feature kMediaCapabilitiesQueryGpuFactories;
diff --git a/media/cast/common/clock_drift_smoother.cc b/media/cast/common/clock_drift_smoother.cc
index dd8c39e61..1187b66 100644
--- a/media/cast/common/clock_drift_smoother.cc
+++ b/media/cast/common/clock_drift_smoother.cc
@@ -8,6 +8,7 @@
 
 #include "base/check.h"
 #include "base/notreached.h"
+#include "base/numerics/safe_conversions.h"
 
 namespace media {
 namespace cast {
@@ -22,8 +23,8 @@
 
 base::TimeDelta ClockDriftSmoother::Current() const {
   DCHECK(!last_update_time_.is_null());
-  return base::TimeDelta::FromMicroseconds(static_cast<int64_t>(
-      estimate_us_ + 0.5));  // Round to nearest microsecond.
+  return base::TimeDelta::FromMicroseconds(
+      base::ClampRound<int64_t>(estimate_us_));
 }
 
 void ClockDriftSmoother::Reset(base::TimeTicks now,
diff --git a/media/filters/audio_clock.cc b/media/filters/audio_clock.cc
index 017e1c9..5ec89796 100644
--- a/media/filters/audio_clock.cc
+++ b/media/filters/audio_clock.cc
@@ -11,6 +11,7 @@
 #include <cmath>
 
 #include "base/check_op.h"
+#include "base/numerics/safe_conversions.h"
 
 namespace media {
 
@@ -68,8 +69,8 @@
 
 void AudioClock::CompensateForSuspendedWrites(base::TimeDelta elapsed,
                                               int delay_frames) {
-  const int64_t frames_elapsed =
-      elapsed.InMicroseconds() / microseconds_per_frame_ + 0.5;
+  const int64_t frames_elapsed = base::ClampRound<int64_t>(
+      elapsed.InMicrosecondsF() / microseconds_per_frame_);
 
   // No need to do anything if we're within the limits of our played out audio
   // or there are no delay frames, the next WroteAudio() call will expire
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
index b671907b..a70a075 100644
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -191,7 +191,7 @@
 }
 
 int AudioFileReader::GetNumberOfFrames() const {
-  return static_cast<int>(ceil(GetDuration().InSecondsF() * sample_rate()));
+  return base::ClampCeil(GetDuration().InSecondsF() * sample_rate());
 }
 
 bool AudioFileReader::OpenDemuxerForTesting() {
diff --git a/media/gpu/chromeos/image_processor_factory.cc b/media/gpu/chromeos/image_processor_factory.cc
index ccdfcf4..e3b664c 100644
--- a/media/gpu/chromeos/image_processor_factory.cc
+++ b/media/gpu/chromeos/image_processor_factory.cc
@@ -14,10 +14,6 @@
 #include "media/gpu/chromeos/libyuv_image_processor_backend.h"
 #include "media/gpu/macros.h"
 
-#if BUILDFLAG(USE_VAAPI)
-#include "media/gpu/vaapi/vaapi_image_processor_backend.h"
-#endif  // BUILDFLAG(USE_VAAPI)
-
 #if BUILDFLAG(USE_V4L2_CODEC)
 #include "media/gpu/v4l2/v4l2_device.h"
 #include "media/gpu/v4l2/v4l2_image_processor_backend.h"
@@ -102,8 +98,7 @@
     ImageProcessor::ErrorCB error_cb) {
   std::vector<ImageProcessor::CreateBackendCB> create_funcs;
 #if BUILDFLAG(USE_VAAPI)
-  create_funcs.push_back(
-      base::BindRepeating(&VaapiImageProcessorBackend::Create));
+  NOTIMPLEMENTED();
 #endif  // BUILDFLAG(USE_VAAPI)
 #if BUILDFLAG(USE_V4L2_CODEC)
   create_funcs.push_back(base::BindRepeating(
diff --git a/media/gpu/chromeos/mailbox_video_frame_converter.cc b/media/gpu/chromeos/mailbox_video_frame_converter.cc
index bbe7619..b941310d 100644
--- a/media/gpu/chromeos/mailbox_video_frame_converter.cc
+++ b/media/gpu/chromeos/mailbox_video_frame_converter.cc
@@ -19,6 +19,7 @@
 #include "gpu/ipc/service/shared_image_stub.h"
 #include "media/base/format_utils.h"
 #include "media/base/video_frame.h"
+#include "media/base/video_util.h"
 #include "media/gpu/chromeos/platform_video_frame_utils.h"
 #include "media/gpu/macros.h"
 #include "ui/gfx/gpu_memory_buffer.h"
@@ -44,18 +45,18 @@
   ~ScopedSharedImage() { Destroy(); }
 
   void Reset(const gpu::Mailbox& mailbox,
-             const gfx::Rect& rect,
+             const gfx::Size& size,
              DestroySharedImageCB destroy_shared_image_cb) {
     Destroy();
     DCHECK(!mailbox.IsZero());
     mailbox_ = mailbox;
-    rect_ = rect;
+    size_ = size;
     destroy_shared_image_cb_ = std::move(destroy_shared_image_cb);
   }
 
   bool HasData() const { return !mailbox_.IsZero(); }
   const gpu::Mailbox& mailbox() const { return mailbox_; }
-  const gfx::Rect& rect() const { return rect_; }
+  const gfx::Size& size() const { return size_; }
 
  private:
   void Destroy() {
@@ -71,7 +72,7 @@
   }
 
   gpu::Mailbox mailbox_;
-  gfx::Rect rect_;
+  gfx::Size size_;
   DestroySharedImageCB destroy_shared_image_cb_;
   const scoped_refptr<base::SequencedTaskRunner> destruction_task_runner_;
 
@@ -222,10 +223,19 @@
       },
       gpu_task_runner_, gpu_weak_this_, frame);
 
+  // Note the use of GetRectSizeFromOrigin() as the coded size. The reason is
+  // that the coded_size() of the outgoing VideoFrame tells the client what the
+  // "usable area" of the frame's buffer is so that it issues rendering commands
+  // correctly. For most videos, this usable area is simply
+  // frame->visible_rect().size(). However, some H.264 videos define a visible
+  // rectangle that doesn't start at (0, 0). For these frames, the usable area
+  // includes the non-visible area on the left and on top of the visible area
+  // (so that the client can calculate the UV coordinates correctly). Hence the
+  // use of GetRectSizeFromOrigin().
   scoped_refptr<VideoFrame> mailbox_frame = VideoFrame::WrapNativeTextures(
       frame->format(), mailbox_holders, std::move(release_mailbox_cb),
-      frame->coded_size(), frame->visible_rect(), frame->natural_size(),
-      frame->timestamp());
+      GetRectSizeFromOrigin(frame->visible_rect()), frame->visible_rect(),
+      frame->natural_size(), frame->timestamp());
   mailbox_frame->set_color_space(frame->ColorSpace());
   mailbox_frame->set_metadata(*(frame->metadata()));
   mailbox_frame->metadata()->read_lock_fences_enabled = true;
@@ -253,11 +263,11 @@
   if (stored_shared_image) {
     DCHECK(!stored_shared_image->mailbox().IsZero());
     bool res;
-    if (stored_shared_image->rect() == visible_rect) {
+    if (stored_shared_image->size() == GetRectSizeFromOrigin(visible_rect)) {
       res = UpdateSharedImageOnGPUThread(stored_shared_image->mailbox());
     } else {
-      // The visible rectangle changed, so we need to recreate the SharedImage
-      // with the new rectangle.
+      // The existing shared image's size is no longer good enough, so let's
+      // create a new one.
       res = GenerateSharedImageOnGPUThread(origin_frame, visible_rect,
                                            stored_shared_image);
     }
@@ -328,9 +338,15 @@
   gpu::SharedImageStub* shared_image_stub = gpu_channel_->shared_image_stub();
   DCHECK(shared_image_stub);
 
-  // Destination VideoFrames should have visible rectangles stating at the
-  // origin.
-  DCHECK(destination_visible_rect.origin().IsOrigin());
+  // The SharedImage size ultimately must correspond to the size used to import
+  // the decoded frame into a graphics API (e.g., the EGL image size when using
+  // OpenGL). For most videos, this is simply |destination_visible_rect|.size().
+  // However, some H.264 videos specify a visible rectangle that doesn't start
+  // at (0, 0). Since clients are expected to calculate UV coordinates to handle
+  // these exotic visible rectangles, we must include the area on the left and
+  // on the top of the frames when computing the SharedImage size.
+  const gfx::Size shared_image_size =
+      GetRectSizeFromOrigin(destination_visible_rect);
 
   // The allocated SharedImages should be usable for the (Display) compositor
   // and, potentially, for overlays (Scanout).
@@ -339,9 +355,8 @@
   const bool success = shared_image_stub->CreateSharedImage(
       mailbox, gpu::kPlatformVideoFramePoolClientId,
       std::move(gpu_memory_buffer_handle), *buffer_format,
-      gpu::kNullSurfaceHandle, destination_visible_rect.size(),
-      video_frame->ColorSpace(), kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType,
-      shared_image_usage);
+      gpu::kNullSurfaceHandle, shared_image_size, video_frame->ColorSpace(),
+      kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType, shared_image_usage);
   if (!success) {
     OnError(FROM_HERE, "Failed to create shared image.");
     return false;
@@ -349,7 +364,7 @@
   // There's no need to UpdateSharedImage() after CreateSharedImage().
 
   shared_image->Reset(
-      mailbox, destination_visible_rect,
+      mailbox, shared_image_size,
       shared_image_stub->GetSharedImageDestructionCallback(mailbox));
   return true;
 }
diff --git a/media/gpu/mac/vt_config_util.mm b/media/gpu/mac/vt_config_util.mm
index 20b9344..590bdf1 100644
--- a/media/gpu/mac/vt_config_util.mm
+++ b/media/gpu/mac/vt_config_util.mm
@@ -415,6 +415,49 @@
   return matrix_id;
 }
 
+void SetVp9CodecConfigurationBox(
+    media::VideoCodecProfile codec_profile,
+    const media::VideoColorSpace& color_space,
+    NSMutableDictionary<NSString*, id>* extensions) {
+  // Synthesize a 'vpcC' box. See
+  // https://www.webmproject.org/vp9/mp4/#vp-codec-configuration-box.
+  uint8_t version = 1;
+  uint8_t profile = 0;
+  uint8_t level = 51;
+  uint8_t bit_depth = 8;
+  uint8_t chroma_subsampling = 1;  // 4:2:0 colocated with luma (0, 0).
+  uint8_t primaries = 1;           // BT.709.
+  uint8_t transfer = 1;            // BT.709.
+  uint8_t matrix = 1;              // BT.709.
+
+  if (color_space.IsSpecified()) {
+    primaries = static_cast<uint8_t>(color_space.primaries);
+    transfer = static_cast<uint8_t>(color_space.transfer);
+    matrix = static_cast<uint8_t>(color_space.matrix);
+  }
+
+  if (codec_profile == media::VP9PROFILE_PROFILE2) {
+    profile = 2;
+    bit_depth = 10;
+  }
+
+  uint8_t vpcc[12] = {0};
+  vpcc[0] = version;
+  vpcc[4] = profile;
+  vpcc[5] = level;
+  vpcc[6] |= bit_depth << 4;
+  vpcc[6] |= chroma_subsampling << 1;
+  vpcc[7] = primaries;
+  vpcc[8] = transfer;
+  vpcc[9] = matrix;
+  SetDictionaryValue(
+      extensions, kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms,
+      @{
+        @"vpcC" : [NSData dataWithBytes:&vpcc length:sizeof(vpcc)],
+      });
+  SetDictionaryValue(extensions, CFSTR("BitsPerComponent"), @(bit_depth));
+}
+
 }  // namespace
 
 namespace media {
@@ -460,6 +503,9 @@
     SetMasteringMetadata(*hdr_metadata, extensions);
   }
 
+  if (profile >= VP9PROFILE_MIN && profile <= VP9PROFILE_MAX)
+    SetVp9CodecConfigurationBox(profile, color_space, extensions);
+
   return base::mac::NSToCFCast(extensions);
 }
 
diff --git a/media/gpu/mac/vt_config_util_unittest.cc b/media/gpu/mac/vt_config_util_unittest.cc
index d9458557..43aff8a3 100644
--- a/media/gpu/mac/vt_config_util_unittest.cc
+++ b/media/gpu/mac/vt_config_util_unittest.cc
@@ -4,38 +4,40 @@
 
 #include "media/gpu/mac/vt_config_util.h"
 
+#include <CoreMedia/CoreMedia.h>
+
 #include "base/containers/span.h"
 #include "base/mac/foundation_util.h"
 #include "base/mac/mac_util.h"
+#include "base/mac/sdk_forward_declarations.h"
 #include "base/strings/sys_string_conversions.h"
 #include "media/formats/mp4/box_definitions.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
 
-std::string GetStrValue(CFMutableDictionaryRef dict, CFStringRef key) {
+std::string GetStrValue(CFDictionaryRef dict, CFStringRef key) {
   return base::SysCFStringRefToUTF8(
       base::mac::CFCastStrict<CFStringRef>(CFDictionaryGetValue(dict, key)));
 }
 
-CFStringRef GetCFStrValue(CFMutableDictionaryRef dict, CFStringRef key) {
+CFStringRef GetCFStrValue(CFDictionaryRef dict, CFStringRef key) {
   return base::mac::CFCastStrict<CFStringRef>(CFDictionaryGetValue(dict, key));
 }
 
-int GetIntValue(CFMutableDictionaryRef dict, CFStringRef key) {
+int GetIntValue(CFDictionaryRef dict, CFStringRef key) {
   CFNumberRef value =
       base::mac::CFCastStrict<CFNumberRef>(CFDictionaryGetValue(dict, key));
   int result;
   return CFNumberGetValue(value, kCFNumberIntType, &result) ? result : -1;
 }
 
-bool GetBoolValue(CFMutableDictionaryRef dict, CFStringRef key) {
+bool GetBoolValue(CFDictionaryRef dict, CFStringRef key) {
   return CFBooleanGetValue(
       base::mac::CFCastStrict<CFBooleanRef>(CFDictionaryGetValue(dict, key)));
 }
 
-base::span<const uint8_t> GetDataValue(CFMutableDictionaryRef dict,
-                                       CFStringRef key) {
+base::span<const uint8_t> GetDataValue(CFDictionaryRef dict, CFStringRef key) {
   CFDataRef data =
       base::mac::CFCastStrict<CFDataRef>(CFDictionaryGetValue(dict, key));
   return data ? base::span<const uint8_t>(
@@ -44,9 +46,17 @@
               : base::span<const uint8_t>();
 }
 
+base::span<const uint8_t> GetNestedDataValue(CFDictionaryRef dict,
+                                             CFStringRef key1,
+                                             CFStringRef key2) {
+  CFDictionaryRef nested_dict = base::mac::CFCastStrict<CFDictionaryRef>(
+      CFDictionaryGetValue(dict, key1));
+  return GetDataValue(nested_dict, key2);
+}
+
 base::ScopedCFTypeRef<CVImageBufferRef> CreateCVImageBuffer(
     media::VideoColorSpace cs) {
-  base::ScopedCFTypeRef<CFMutableDictionaryRef> fmt(
+  base::ScopedCFTypeRef<CFDictionaryRef> fmt(
       CreateFormatExtensions(kCMVideoCodecType_H264, media::H264PROFILE_MAIN,
                              cs, media::HDRMetadata()));
 
@@ -71,7 +81,7 @@
                          cs.GetMatrixID(), cs.GetRangeID());
 }
 
-void AssertHasEmptyHDRMetadata(CFMutableDictionaryRef fmt) {
+void AssertHasEmptyHDRMetadata(CFDictionaryRef fmt) {
   if (__builtin_available(macos 10.13, *)) {
     // We constructed with an empty HDRMetadata, so all values should be zero.
     auto mdcv = GetDataValue(
@@ -88,12 +98,15 @@
   }
 }
 
+constexpr char kBitDepthKey[] = "BitsPerComponent";
+constexpr char kVpccKey[] = "vpcC";
+
 }  // namespace
 
 namespace media {
 
 TEST(VTConfigUtil, CreateFormatExtensions_H264_BT709) {
-  base::ScopedCFTypeRef<CFMutableDictionaryRef> fmt(
+  base::ScopedCFTypeRef<CFDictionaryRef> fmt(
       CreateFormatExtensions(kCMVideoCodecType_H264, H264PROFILE_MAIN,
                              VideoColorSpace::REC709(), base::nullopt));
   EXPECT_EQ("avc1", GetStrValue(fmt, kCMFormatDescriptionExtension_FormatName));
@@ -118,7 +131,7 @@
 }
 
 TEST(VTConfigUtil, CreateFormatExtensions_H264_BT2020_PQ) {
-  base::ScopedCFTypeRef<CFMutableDictionaryRef> fmt(CreateFormatExtensions(
+  base::ScopedCFTypeRef<CFDictionaryRef> fmt(CreateFormatExtensions(
       kCMVideoCodecType_H264, H264PROFILE_MAIN,
       VideoColorSpace(VideoColorSpace::PrimaryID::BT2020,
                       VideoColorSpace::TransferID::SMPTEST2084,
@@ -142,7 +155,7 @@
 }
 
 TEST(VTConfigUtil, CreateFormatExtensions_H264_BT2020_HLG) {
-  base::ScopedCFTypeRef<CFMutableDictionaryRef> fmt(CreateFormatExtensions(
+  base::ScopedCFTypeRef<CFDictionaryRef> fmt(CreateFormatExtensions(
       kCMVideoCodecType_H264, H264PROFILE_MAIN,
       VideoColorSpace(VideoColorSpace::PrimaryID::BT2020,
                       VideoColorSpace::TransferID::ARIB_STD_B67,
@@ -178,7 +191,7 @@
   mastering.primary_b = gfx::PointF(0.15, 0.06);
   mastering.white_point = gfx::PointF(0.3127, 0.3290);
 
-  base::ScopedCFTypeRef<CFMutableDictionaryRef> fmt(CreateFormatExtensions(
+  base::ScopedCFTypeRef<CFDictionaryRef> fmt(CreateFormatExtensions(
       kCMVideoCodecType_H264, H264PROFILE_MAIN,
       VideoColorSpace(VideoColorSpace::PrimaryID::BT2020,
                       VideoColorSpace::TransferID::SMPTEST2084,
@@ -226,6 +239,47 @@
   }
 }
 
+TEST(VTConfigUtil, CreateFormatExtensions_VP9Profile0) {
+  constexpr VideoCodecProfile kTestProfile = VP9PROFILE_PROFILE0;
+  const auto kTestColorSpace = VideoColorSpace::REC709();
+  base::ScopedCFTypeRef<CFDictionaryRef> fmt(CreateFormatExtensions(
+      kCMVideoCodecType_VP9, kTestProfile, kTestColorSpace, base::nullopt));
+  EXPECT_EQ(8, GetIntValue(fmt, base::SysUTF8ToCFStringRef(kBitDepthKey)));
+
+  auto vpcc = GetNestedDataValue(
+      fmt, kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms,
+      base::SysUTF8ToCFStringRef(kVpccKey));
+  std::unique_ptr<mp4::BoxReader> box_reader(
+      mp4::BoxReader::ReadConcatentatedBoxes(vpcc.data(), vpcc.size(),
+                                             nullptr));
+  mp4::VPCodecConfigurationRecord vpcc_box;
+  ASSERT_TRUE(vpcc_box.Parse(box_reader.get()));
+  ASSERT_EQ(kTestProfile, vpcc_box.profile);
+  ASSERT_EQ(kTestColorSpace, vpcc_box.color_space);
+}
+
+TEST(VTConfigUtil, CreateFormatExtensions_VP9Profile2) {
+  constexpr VideoCodecProfile kTestProfile = VP9PROFILE_PROFILE2;
+  const VideoColorSpace kTestColorSpace(
+      VideoColorSpace::PrimaryID::BT2020,
+      VideoColorSpace::TransferID::SMPTEST2084,
+      VideoColorSpace::MatrixID::BT2020_NCL, gfx::ColorSpace::RangeID::LIMITED);
+  base::ScopedCFTypeRef<CFDictionaryRef> fmt(CreateFormatExtensions(
+      kCMVideoCodecType_VP9, kTestProfile, kTestColorSpace, base::nullopt));
+  EXPECT_EQ(10, GetIntValue(fmt, base::SysUTF8ToCFStringRef(kBitDepthKey)));
+
+  auto vpcc = GetNestedDataValue(
+      fmt, kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms,
+      base::SysUTF8ToCFStringRef(kVpccKey));
+  std::unique_ptr<mp4::BoxReader> box_reader(
+      mp4::BoxReader::ReadConcatentatedBoxes(vpcc.data(), vpcc.size(),
+                                             nullptr));
+  mp4::VPCodecConfigurationRecord vpcc_box;
+  ASSERT_TRUE(vpcc_box.Parse(box_reader.get()));
+  ASSERT_EQ(kTestProfile, vpcc_box.profile);
+  ASSERT_EQ(kTestColorSpace, vpcc_box.color_space);
+}
+
 TEST(VTConfigUtil, GetImageBufferColorSpace_BT601) {
   auto cs = VideoColorSpace::REC601();
   auto image_buffer = CreateCVImageBuffer(cs);
diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
index 5ec2c41..1d372daa 100644
--- a/media/gpu/vaapi/BUILD.gn
+++ b/media/gpu/vaapi/BUILD.gn
@@ -40,8 +40,6 @@
     "vaapi_image_decode_accelerator_worker.h",
     "vaapi_image_decoder.cc",
     "vaapi_image_decoder.h",
-    "vaapi_image_processor_backend.cc",
-    "vaapi_image_processor_backend.h",
     "vaapi_jpeg_decoder.cc",
     "vaapi_jpeg_decoder.h",
     "vaapi_jpeg_encoder.cc",
diff --git a/media/gpu/vaapi/vaapi_image_processor_backend.cc b/media/gpu/vaapi/vaapi_image_processor_backend.cc
deleted file mode 100644
index 3c72d13..0000000
--- a/media/gpu/vaapi/vaapi_image_processor_backend.cc
+++ /dev/null
@@ -1,230 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/gpu/vaapi/vaapi_image_processor_backend.h"
-
-#include <stdint.h>
-
-#include <va/va.h>
-
-#include "base/bind.h"
-#include "base/callback.h"
-#include "base/memory/ptr_util.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/stl_util.h"
-#include "base/task/post_task.h"
-#include "media/gpu/chromeos/fourcc.h"
-#include "media/gpu/chromeos/platform_video_frame_utils.h"
-#include "media/gpu/macros.h"
-#include "media/gpu/vaapi/va_surface.h"
-#include "media/gpu/vaapi/vaapi_utils.h"
-#include "media/gpu/vaapi/vaapi_wrapper.h"
-#include "ui/gfx/native_pixmap.h"
-
-namespace media {
-
-#if defined(OS_CHROMEOS)
-namespace {
-// UMA errors that the VaapiImageProcessorBackend class reports.
-enum class VaIPFailure {
-  kVaapiVppError = 0,
-  kMaxValue = kVaapiVppError,
-};
-
-void ReportToUMA(base::RepeatingClosure error_cb, VaIPFailure failure) {
-  base::UmaHistogramEnumeration("Media.VAIP.VppFailure", failure);
-  error_cb.Run();
-}
-
-bool IsSupported(uint32_t input_va_fourcc,
-                 uint32_t output_va_fourcc,
-                 const gfx::Size& input_size,
-                 const gfx::Size& output_size) {
-  if (!VaapiWrapper::IsVppFormatSupported(input_va_fourcc)) {
-    VLOGF(2) << "Unsupported input format: VA_FOURCC_"
-             << FourccToString(input_va_fourcc);
-    return false;
-  }
-
-  if (!VaapiWrapper::IsVppFormatSupported(output_va_fourcc)) {
-    VLOGF(2) << "Unsupported output format: VA_FOURCC_"
-             << FourccToString(output_va_fourcc);
-    return false;
-  }
-
-  if (!VaapiWrapper::IsVppResolutionAllowed(input_size)) {
-    VLOGF(2) << "Unsupported input size: " << input_size.ToString();
-    return false;
-  }
-
-  if (!VaapiWrapper::IsVppResolutionAllowed(output_size)) {
-    VLOGF(2) << "Unsupported output size: " << output_size.ToString();
-    return false;
-  }
-
-  return true;
-}
-
-}  // namespace
-#endif
-
-// static
-std::unique_ptr<ImageProcessorBackend> VaapiImageProcessorBackend::Create(
-    const PortConfig& input_config,
-    const PortConfig& output_config,
-    const std::vector<OutputMode>& preferred_output_modes,
-    VideoRotation relative_rotation,
-    ErrorCB error_cb,
-    scoped_refptr<base::SequencedTaskRunner> backend_task_runner) {
-// VaapiImageProcessorBackend supports ChromeOS only.
-#if !defined(OS_CHROMEOS)
-  return nullptr;
-#else
-  auto input_vafourcc = input_config.fourcc.ToVAFourCC();
-  if (!input_vafourcc) {
-    VLOGF(2) << "Input fourcc " << input_config.fourcc.ToString()
-             << " not compatible with VAAPI.";
-    return nullptr;
-  }
-
-  auto output_vafourcc = output_config.fourcc.ToVAFourCC();
-  if (!output_vafourcc) {
-    VLOGF(2) << "Output fourcc " << output_config.fourcc.ToString()
-             << " not compatible with VAAPI.";
-    return nullptr;
-  }
-
-  if (!IsSupported(*input_vafourcc, *output_vafourcc, input_config.size,
-                   output_config.size)) {
-    return nullptr;
-  }
-
-  if (!base::Contains(input_config.preferred_storage_types,
-                      VideoFrame::STORAGE_DMABUFS) &&
-      !base::Contains(input_config.preferred_storage_types,
-                      VideoFrame::STORAGE_GPU_MEMORY_BUFFER)) {
-    VLOGF(2) << "VaapiImageProcessorBackend supports Dmabuf-backed or "
-                "GpuMemoryBuffer based VideoFrame only for input";
-    return nullptr;
-  }
-  if (!base::Contains(output_config.preferred_storage_types,
-                      VideoFrame::STORAGE_DMABUFS) &&
-      !base::Contains(output_config.preferred_storage_types,
-                      VideoFrame::STORAGE_GPU_MEMORY_BUFFER)) {
-    VLOGF(2) << "VaapiImageProcessorBackend supports Dmabuf-backed or "
-                "GpuMemoryBuffer based VideoFrame only for output";
-    return nullptr;
-  }
-
-  if (!base::Contains(preferred_output_modes, OutputMode::IMPORT)) {
-    VLOGF(2) << "VaapiImageProcessorBackend only supports IMPORT mode.";
-    return nullptr;
-  }
-
-  auto vaapi_wrapper = VaapiWrapper::Create(
-      VaapiWrapper::kVideoProcess, VAProfileNone,
-      base::BindRepeating(&ReportToUMA, error_cb, VaIPFailure::kVaapiVppError));
-  if (!vaapi_wrapper) {
-    VLOGF(1) << "Failed to create VaapiWrapper";
-    return nullptr;
-  }
-
-  // Size is irrelevant for a VPP context.
-  if (!vaapi_wrapper->CreateContext(gfx::Size())) {
-    VLOGF(1) << "Failed to create context for VPP";
-    return nullptr;
-  }
-
-  // Checks if VA-API driver supports rotation.
-  if (relative_rotation != VIDEO_ROTATION_0 &&
-      !vaapi_wrapper->IsRotationSupported()) {
-    VLOGF(1) << "VaapiIP doesn't support rotation";
-    return nullptr;
-  }
-
-  // We should restrict the acceptable PortConfig for input and output both to
-  // the one returned by GetPlatformVideoFrameLayout(). However,
-  // ImageProcessorFactory interface doesn't provide information about what
-  // ImageProcessor will be used for. (e.g. format conversion after decoding and
-  // scaling before encoding). Thus we cannot execute
-  // GetPlatformVideoFrameLayout() with a proper gfx::BufferUsage.
-  // TODO(crbug.com/898423): Adjust layout once ImageProcessor provide the use
-  // scenario.
-  return base::WrapUnique<ImageProcessorBackend>(new VaapiImageProcessorBackend(
-      std::move(vaapi_wrapper), input_config, output_config, OutputMode::IMPORT,
-      relative_rotation, std::move(error_cb), std::move(backend_task_runner)));
-#endif
-}
-
-VaapiImageProcessorBackend::VaapiImageProcessorBackend(
-    scoped_refptr<VaapiWrapper> vaapi_wrapper,
-    const PortConfig& input_config,
-    const PortConfig& output_config,
-    OutputMode output_mode,
-    VideoRotation relative_rotation,
-    ErrorCB error_cb,
-    scoped_refptr<base::SequencedTaskRunner> backend_task_runner)
-    : ImageProcessorBackend(input_config,
-                            output_config,
-                            output_mode,
-                            relative_rotation,
-                            std::move(error_cb),
-                            std::move(backend_task_runner)),
-      vaapi_wrapper_(std::move(vaapi_wrapper)) {}
-
-VaapiImageProcessorBackend::~VaapiImageProcessorBackend() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(backend_sequence_checker_);
-}
-
-void VaapiImageProcessorBackend::Process(scoped_refptr<VideoFrame> input_frame,
-                                         scoped_refptr<VideoFrame> output_frame,
-                                         FrameReadyCB cb) {
-  DVLOGF(4);
-  DCHECK_CALLED_ON_VALID_SEQUENCE(backend_sequence_checker_);
-
-  DCHECK(input_frame);
-  DCHECK(output_frame);
-  scoped_refptr<gfx::NativePixmap> input_pixmap =
-      CreateNativePixmapDmaBuf(input_frame.get());
-  if (!input_pixmap) {
-    VLOGF(1) << "Failed to create NativePixmap from VideoFrame";
-    error_cb_.Run();
-    return;
-  }
-
-  auto src_va_surface =
-      vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(input_pixmap));
-
-  if (!src_va_surface)
-    return;
-
-  scoped_refptr<gfx::NativePixmap> output_pixmap =
-      CreateNativePixmapDmaBuf(output_frame.get());
-  if (!output_pixmap) {
-    VLOGF(1) << "Failed to create NativePixmap from VideoFrame";
-    error_cb_.Run();
-    return;
-  }
-
-  auto dst_va_surface =
-      vaapi_wrapper_->CreateVASurfaceForPixmap(std::move(output_pixmap));
-
-  // Failed to create VASurface for frames. |cb| isn't executed in the case.
-  if (!dst_va_surface)
-    return;
-
-  // VA-API performs pixel format conversion and scaling without any filters.
-  if (!vaapi_wrapper_->BlitSurface(
-          *src_va_surface, *dst_va_surface, input_frame->visible_rect(),
-          output_frame->visible_rect(), relative_rotation_)) {
-    // Failed to execute BlitSurface(). Since VaapiWrapper has invoked
-    // ReportToUMA(), calling error_cb_ here is not needed.
-    return;
-  }
-
-  std::move(cb).Run(std::move(output_frame));
-}
-
-}  // namespace media
diff --git a/media/gpu/vaapi/vaapi_image_processor_backend.h b/media/gpu/vaapi/vaapi_image_processor_backend.h
deleted file mode 100644
index 8d5da7512..0000000
--- a/media/gpu/vaapi/vaapi_image_processor_backend.h
+++ /dev/null
@@ -1,58 +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.
-
-#ifndef MEDIA_GPU_VAAPI_VAAPI_IMAGE_PROCESSOR_BACKEND_H_
-#define MEDIA_GPU_VAAPI_VAAPI_IMAGE_PROCESSOR_BACKEND_H_
-
-#include <memory>
-
-#include "base/macros.h"
-#include "media/gpu/chromeos/image_processor_backend.h"
-#include "media/gpu/media_gpu_export.h"
-
-namespace media {
-
-class VaapiWrapper;
-
-// ImageProcessor that is hardware accelerated with VA-API. This ImageProcessor
-// supports DmaBuf only for both input and output.
-class VaapiImageProcessorBackend : public ImageProcessorBackend {
- public:
-  // Factory method to create VaapiImageProcessorBackend for a buffer conversion
-  // specified by |input_config| and |output_config|. Provided |error_cb| will
-  // be posted to the same thread that executes Create(), if an error occurs
-  // after initialization.
-  // Returns nullptr if it fails to create VaapiImageProcessorBackend.
-  static std::unique_ptr<ImageProcessorBackend> Create(
-      const PortConfig& input_config,
-      const PortConfig& output_config,
-      const std::vector<OutputMode>& preferred_output_modes,
-      VideoRotation relative_rotation,
-      ErrorCB error_cb,
-      scoped_refptr<base::SequencedTaskRunner> backend_task_runner);
-
-  // ImageProcessor implementation.
-  void Process(scoped_refptr<VideoFrame> input_frame,
-               scoped_refptr<VideoFrame> output_frame,
-               FrameReadyCB cb) override;
-
- private:
-  VaapiImageProcessorBackend(
-      scoped_refptr<VaapiWrapper> vaapi_wrapper,
-      const PortConfig& input_config,
-      const PortConfig& output_config,
-      OutputMode output_mode,
-      VideoRotation relative_rotation,
-      ErrorCB error_cb,
-      scoped_refptr<base::SequencedTaskRunner> backend_task_runner);
-  ~VaapiImageProcessorBackend() override;
-
-  const scoped_refptr<VaapiWrapper> vaapi_wrapper_;
-
-  DISALLOW_COPY_AND_ASSIGN(VaapiImageProcessorBackend);
-};
-
-}  // namespace media
-
-#endif  // MEDIA_GPU_VAAPI_VAAPI_IMAGE_PROCESSOR_BACKEND_H_
diff --git a/media/renderers/video_renderer_impl.cc b/media/renderers/video_renderer_impl.cc
index ef8dccf..84935d2 100644
--- a/media/renderers/video_renderer_impl.cc
+++ b/media/renderers/video_renderer_impl.cc
@@ -13,6 +13,7 @@
 #include "base/feature_list.h"
 #include "base/location.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/numerics/safe_conversions.h"
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string_util.h"
 #include "base/time/default_tick_clock.h"
@@ -517,8 +518,8 @@
     return;
 
   int latency_hint_frames =
-      std::round(latency_hint_->InMicrosecondsF() /
-                 average_frame_duration.InMicrosecondsF());
+      base::ClampRound(latency_hint_->InMicrosecondsF() /
+                       average_frame_duration.InMicrosecondsF());
 
   std::string clamp_string;
   if (latency_hint_frames > kAbsoluteMaxFrames) {
diff --git a/mojo/public/tools/bindings/generators/mojolpm_templates/mojolpm_to_proto_macros.tmpl b/mojo/public/tools/bindings/generators/mojolpm_templates/mojolpm_to_proto_macros.tmpl
index 635eeec..38c68ea2 100644
--- a/mojo/public/tools/bindings/generators/mojolpm_templates/mojolpm_to_proto_macros.tmpl
+++ b/mojo/public/tools/bindings/generators/mojolpm_templates/mojolpm_to_proto_macros.tmpl
@@ -357,7 +357,7 @@
   mojolpm_result &= ToProto(std::move(input->get_{{raw_name}}()), tmp_{{name}});
   new_instance->set_m_{{name}}(tmp_{{name}});
 {%-       elif kind|is_nullable_kind %}
-  if ({{util.not_null(kind, 'input->' ~ raw_name)}}) {
+  if ({{util.not_null(kind, 'input->get_' ~ raw_name ~ '()')}}) {
 {%-         if kind|is_move_only_kind %}
     mojolpm_result &= ToProto(std::move({{util.value(kind, 'input->get_' ~ raw_name ~ '()')}}), *new_instance->mutable_m_{{name}}());
 {%-         else %}
diff --git a/net/base/network_change_notifier_fuchsia.cc b/net/base/network_change_notifier_fuchsia.cc
index f1578ddd..5687e24 100644
--- a/net/base/network_change_notifier_fuchsia.cc
+++ b/net/base/network_change_notifier_fuchsia.cc
@@ -103,12 +103,15 @@
     if ((internal::ConvertConnectionType(interface) ==
          NetworkChangeNotifier::CONNECTION_NONE) ||
         (interface.features &
-         fuchsia::hardware::ethernet::INFO_FEATURE_LOOPBACK)) {
+         static_cast<decltype(interface.features)>(
+             fuchsia::hardware::ethernet::INFO_FEATURE_LOOPBACK))) {
       continue;
     }
 
     // Filter out interfaces that do not meet the |required_features_|.
-    if ((interface.features & required_features_) != required_features_) {
+    auto required_features =
+        static_cast<decltype(interface.features)>(required_features_);
+    if ((interface.features & required_features) != required_features) {
       continue;
     }
 
diff --git a/net/base/network_change_notifier_fuchsia_unittest.cc b/net/base/network_change_notifier_fuchsia_unittest.cc
index cf18b3c..e7522d8 100644
--- a/net/base/network_change_notifier_fuchsia_unittest.cc
+++ b/net/base/network_change_notifier_fuchsia_unittest.cc
@@ -69,7 +69,7 @@
   fuchsia::netstack::NetInterface interface;
   interface.id = kDefaultInterfaceId;
   interface.flags = fuchsia::netstack::NetInterfaceFlagUp;
-  interface.features = 0;
+  interface.features = {};
   interface.addr = IpAddressFrom(kDefaultIPv4Address);
   interface.netmask = IpAddressFrom(kDefaultIPv4Netmask);
   interface.broadaddr = IpAddressFrom(kDefaultIPv4Address);
@@ -82,7 +82,7 @@
   fuchsia::netstack::NetInterface interface;
   interface.id = kSecondaryInterfaceId;
   interface.flags = fuchsia::netstack::NetInterfaceFlagUp;
-  interface.features = 0;
+  interface.features = {};
   interface.addr = IpAddressFrom(kSecondaryIPv4Address);
   interface.netmask = IpAddressFrom(kSecondaryIPv4Netmask);
   interface.broadaddr = IpAddressFrom(kSecondaryIPv4Address);
@@ -355,7 +355,7 @@
   // Set a live interface with an IP address and create the notifier.
   std::vector<fuchsia::netstack::NetInterface> interfaces(1);
   interfaces[0] = DefaultNetInterface();
-  interfaces[0].features = fuchsia::hardware::ethernet::INFO_FEATURE_WLAN;
+  interfaces[0].features = {fuchsia::hardware::ethernet::INFO_FEATURE_WLAN};
 
   netstack_.SetInterfaces(interfaces);
   CreateNotifier();
@@ -556,7 +556,7 @@
 
   std::vector<fuchsia::netstack::NetInterface> interfaces(1);
   interfaces[0] = DefaultNetInterface();
-  interfaces[0].features = fuchsia::hardware::ethernet::INFO_FEATURE_WLAN;
+  interfaces[0].features = {fuchsia::hardware::ethernet::INFO_FEATURE_WLAN};
 
   netstack_.SetInterfaces(interfaces);
 
@@ -591,7 +591,7 @@
 TEST_F(NetworkChangeNotifierFuchsiaTest, FoundWiFi) {
   std::vector<fuchsia::netstack::NetInterface> interfaces(1);
   interfaces[0] = DefaultNetInterface();
-  interfaces[0].features = fuchsia::hardware::ethernet::INFO_FEATURE_WLAN;
+  interfaces[0].features = {fuchsia::hardware::ethernet::INFO_FEATURE_WLAN};
 
   netstack_.SetInterfaces(interfaces);
   CreateNotifier();
@@ -602,7 +602,7 @@
 TEST_F(NetworkChangeNotifierFuchsiaTest, FindsInterfaceWithRequiredFeature) {
   std::vector<fuchsia::netstack::NetInterface> interfaces(1);
   interfaces[0] = DefaultNetInterface();
-  interfaces[0].features = fuchsia::hardware::ethernet::INFO_FEATURE_WLAN;
+  interfaces[0].features = {fuchsia::hardware::ethernet::INFO_FEATURE_WLAN};
 
   netstack_.SetInterfaces(interfaces);
   CreateNotifier(fuchsia::hardware::ethernet::INFO_FEATURE_WLAN);
diff --git a/net/base/network_interfaces_fuchsia.cc b/net/base/network_interfaces_fuchsia.cc
index 864f68ab..af4c0de 100644
--- a/net/base/network_interfaces_fuchsia.cc
+++ b/net/base/network_interfaces_fuchsia.cc
@@ -62,7 +62,9 @@
     const fuchsia::netstack::NetInterface& iface) {
   if (!(iface.flags & fuchsia::netstack::NetInterfaceFlagUp)) {
     return NetworkChangeNotifier::CONNECTION_NONE;
-  } else if (iface.features & fuchsia::hardware::ethernet::INFO_FEATURE_WLAN) {
+  } else if (iface.features &
+             static_cast<decltype(iface.features)>(
+                 fuchsia::hardware::ethernet::INFO_FEATURE_WLAN)) {
     return NetworkChangeNotifier::CONNECTION_WIFI;
   }
   return NetworkChangeNotifier::CONNECTION_UNKNOWN;
@@ -121,7 +123,8 @@
     if ((internal::ConvertConnectionType(interface) ==
          NetworkChangeNotifier::CONNECTION_NONE) ||
         (interface.features &
-         fuchsia::hardware::ethernet::INFO_FEATURE_LOOPBACK)) {
+         static_cast<decltype(interface.features)>(
+             fuchsia::hardware::ethernet::INFO_FEATURE_LOOPBACK))) {
       continue;
     }
 
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json
index 0f95fdc..1c18aae5 100644
--- a/net/http/transport_security_state_static.json
+++ b/net/http/transport_security_state_static.json
@@ -32306,7 +32306,6 @@
     { "name": "austinheap.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "auszeit-lanzarote.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "autoinsurancehavasu.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "automatic.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "auvious.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ava-software.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aventurische-allianz.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
diff --git a/printing/printer_query_result.h b/printing/printer_query_result.h
index 8dfe86a..86b4a343 100644
--- a/printing/printer_query_result.h
+++ b/printing/printer_query_result.h
@@ -10,10 +10,10 @@
 namespace printing {
 
 // Specifies query status codes.
-enum PRINTING_EXPORT PrinterQueryResult {
-  UNKNOWN_FAILURE,  // catchall error
-  SUCCESS,          // successful
-  UNREACHABLE,      // failed to reach the host
+enum class PRINTING_EXPORT PrinterQueryResult {
+  UNKNOWN_FAILURE = 0,  // catchall error
+  SUCCESS = 1,          // successful
+  UNREACHABLE = 2,      // failed to reach the host
 };
 
 }  // namespace printing
diff --git a/printing/printer_status.h b/printing/printer_status.h
index 929300b0..bc518d31e 100644
--- a/printing/printer_status.h
+++ b/printing/printer_status.h
@@ -19,45 +19,50 @@
 struct PRINTING_EXPORT PrinterStatus {
   struct PrinterReason {
     // Standardized reasons from RFC2911.
-    enum Reason {
-      UNKNOWN_REASON,
-      NONE,
-      MEDIA_NEEDED,
-      MEDIA_JAM,
-      MOVING_TO_PAUSED,
-      PAUSED,
-      SHUTDOWN,
-      CONNECTING_TO_DEVICE,
-      TIMED_OUT,
-      STOPPING,
-      STOPPED_PARTLY,
-      TONER_LOW,
-      TONER_EMPTY,
-      SPOOL_AREA_FULL,
-      COVER_OPEN,
-      INTERLOCK_OPEN,
-      DOOR_OPEN,
-      INPUT_TRAY_MISSING,
-      MEDIA_LOW,
-      MEDIA_EMPTY,
-      OUTPUT_TRAY_MISSING,
-      OUTPUT_AREA_ALMOST_FULL,
-      OUTPUT_AREA_FULL,
-      MARKER_SUPPLY_LOW,
-      MARKER_SUPPLY_EMPTY,
-      MARKER_WASTE_ALMOST_FULL,
-      MARKER_WASTE_FULL,
-      FUSER_OVER_TEMP,
-      FUSER_UNDER_TEMP,
-      OPC_NEAR_EOL,
-      OPC_LIFE_OVER,
-      DEVELOPER_LOW,
-      DEVELOPER_EMPTY,
-      INTERPRETER_RESOURCE_UNAVAILABLE
+    enum class Reason {
+      UNKNOWN_REASON = 0,
+      NONE = 1,
+      MEDIA_NEEDED = 2,
+      MEDIA_JAM = 3,
+      MOVING_TO_PAUSED = 4,
+      PAUSED = 5,
+      SHUTDOWN = 6,
+      CONNECTING_TO_DEVICE = 7,
+      TIMED_OUT = 8,
+      STOPPING = 9,
+      STOPPED_PARTLY = 10,
+      TONER_LOW = 11,
+      TONER_EMPTY = 12,
+      SPOOL_AREA_FULL = 13,
+      COVER_OPEN = 14,
+      INTERLOCK_OPEN = 15,
+      DOOR_OPEN = 16,
+      INPUT_TRAY_MISSING = 17,
+      MEDIA_LOW = 18,
+      MEDIA_EMPTY = 19,
+      OUTPUT_TRAY_MISSING = 20,
+      OUTPUT_AREA_ALMOST_FULL = 21,
+      OUTPUT_AREA_FULL = 22,
+      MARKER_SUPPLY_LOW = 23,
+      MARKER_SUPPLY_EMPTY = 24,
+      MARKER_WASTE_ALMOST_FULL = 25,
+      MARKER_WASTE_FULL = 26,
+      FUSER_OVER_TEMP = 27,
+      FUSER_UNDER_TEMP = 28,
+      OPC_NEAR_EOL = 29,
+      OPC_LIFE_OVER = 30,
+      DEVELOPER_LOW = 31,
+      DEVELOPER_EMPTY = 32,
+      INTERPRETER_RESOURCE_UNAVAILABLE = 33
     };
 
     // Severity of the state-reason.
-    enum Severity { UNKNOWN_SEVERITY, REPORT, WARNING, ERROR };
+    enum class Severity {
+      UNKNOWN_SEVERITY = 0,
+      REPORT = 1,
+      WARNING = 2,
+      ERROR = 3,
+    };
 
     Reason reason;
     Severity severity;
diff --git a/services/resource_coordinator/BUILD.gn b/services/resource_coordinator/BUILD.gn
index cc38677..fb47a3d 100644
--- a/services/resource_coordinator/BUILD.gn
+++ b/services/resource_coordinator/BUILD.gn
@@ -15,6 +15,8 @@
     "memory_instrumentation/graph.h",
     "memory_instrumentation/graph_processor.cc",
     "memory_instrumentation/graph_processor.h",
+    "memory_instrumentation/memory_dump_map_converter.cc",
+    "memory_instrumentation/memory_dump_map_converter.h",
     "memory_instrumentation/queued_request.cc",
     "memory_instrumentation/queued_request.h",
     "memory_instrumentation/queued_request_dispatcher.cc",
@@ -44,6 +46,7 @@
     "memory_instrumentation/coordinator_impl_unittest.cc",
     "memory_instrumentation/graph_processor_unittest.cc",
     "memory_instrumentation/graph_unittest.cc",
+    "memory_instrumentation/memory_dump_map_converter_unittest.cc",
     "public/cpp/memory_instrumentation/memory_instrumentation_mojom_traits_unittest.cc",
     "public/cpp/memory_instrumentation/os_metrics_unittest.cc",
     "public/cpp/memory_instrumentation/tracing_integration_unittest.cc",
diff --git a/services/resource_coordinator/DEPS b/services/resource_coordinator/DEPS
index 9765ce49..7e714d0 100644
--- a/services/resource_coordinator/DEPS
+++ b/services/resource_coordinator/DEPS
@@ -1,5 +1,6 @@
 include_rules = [
   "+components/ukm/test_ukm_recorder.h",
+  "+third_party/perfetto",
   "+third_party/smhasher",
   "+services/metrics/public",
 ]
diff --git a/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.cc b/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.cc
new file mode 100644
index 0000000..e6c09f7a
--- /dev/null
+++ b/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.cc
@@ -0,0 +1,151 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.h"
+
+#include <list>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/trace_event/process_memory_dump.h"
+#include "third_party/perfetto/include/perfetto/ext/trace_processor/importers/memory_tracker/graph_processor.h"
+
+namespace memory_instrumentation {
+
+MemoryDumpMapConverter::MemoryDumpMapConverter() = default;
+MemoryDumpMapConverter::~MemoryDumpMapConverter() = default;
+
+perfetto::trace_processor::GraphProcessor::RawMemoryNodeMap
+MemoryDumpMapConverter::Convert(const MemoryDumpMap& input) {
+  perfetto::trace_processor::GraphProcessor::RawMemoryNodeMap output;
+
+  for (const auto& entry : input) {
+    const base::ProcessId process_id = entry.first;
+    const base::trace_event::ProcessMemoryDump* process_dump = entry.second;
+
+    if (process_dump == nullptr)
+      continue;
+
+    output.emplace(process_id, ConvertProcessMemoryDump(*process_dump));
+  }
+
+  return output;
+}
+
+std::unique_ptr<MemoryDumpMapConverter::PerfettoProcessMemoryNode>
+MemoryDumpMapConverter::ConvertProcessMemoryDump(
+    const base::trace_event::ProcessMemoryDump& input) {
+  const perfetto::trace_processor::LevelOfDetail level_of_detail =
+      ConvertLevelOfDetail(input.dump_args().level_of_detail);
+
+  MemoryDumpMapConverter::PerfettoProcessMemoryNode::MemoryNodesMap nodes_map =
+      ConvertAllocatorDumps(input);
+  MemoryDumpMapConverter::PerfettoProcessMemoryNode::AllocatorNodeEdgesMap
+      edges_map = ConvertAllocatorDumpEdges(input);
+
+  return std::make_unique<PerfettoProcessMemoryNode>(
+      level_of_detail, std::move(edges_map), std::move(nodes_map));
+}
+
+perfetto::trace_processor::LevelOfDetail
+MemoryDumpMapConverter::ConvertLevelOfDetail(
+    const base::trace_event::MemoryDumpLevelOfDetail& input) const {
+  switch (input) {
+    case base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND:
+      return perfetto::trace_processor::LevelOfDetail::kBackground;
+    case base::trace_event::MemoryDumpLevelOfDetail::LIGHT:
+      return perfetto::trace_processor::LevelOfDetail::kLight;
+    case base::trace_event::MemoryDumpLevelOfDetail::DETAILED:
+      return perfetto::trace_processor::LevelOfDetail::kDetailed;
+  }
+  return perfetto::trace_processor::LevelOfDetail::kDetailed;
+}
+
+std::vector<perfetto::trace_processor::RawMemoryGraphNode::MemoryNodeEntry>
+MemoryDumpMapConverter::ConvertAllocatorDumpEntries(
+    const base::trace_event::MemoryAllocatorDump& input) const {
+  std::vector<perfetto::trace_processor::RawMemoryGraphNode::MemoryNodeEntry>
+      output;
+
+  for (const auto& entry : input.entries()) {
+    if (entry.entry_type ==
+        base::trace_event::MemoryAllocatorDump::Entry::kUint64) {
+      output.emplace_back(entry.name, entry.units, entry.value_uint64);
+    } else {
+      output.emplace_back(entry.name, entry.units, entry.value_string);
+    }
+  }
+  return output;
+}
+
+std::unique_ptr<perfetto::trace_processor::RawMemoryGraphNode>
+MemoryDumpMapConverter::ConvertMemoryAllocatorDump(
+    const base::trace_event::MemoryAllocatorDump& input) const {
+  auto output = std::make_unique<perfetto::trace_processor::RawMemoryGraphNode>(
+      input.absolute_name(), ConvertLevelOfDetail(input.level_of_detail()),
+      ConvertMemoryAllocatorDumpGuid(input.guid()),
+      ConvertAllocatorDumpEntries(input));
+
+  CopyAndConvertAllocatorDumpFlags(input, output.get());
+
+  return output;
+}
+
+void MemoryDumpMapConverter::CopyAndConvertAllocatorDumpFlags(
+    const base::trace_event::MemoryAllocatorDump& input,
+    perfetto::trace_processor::RawMemoryGraphNode* output) const {
+  output->clear_flags(output->flags());
+  output->set_flags(
+      input.flags() & base::trace_event::MemoryAllocatorDump::WEAK
+          ? perfetto::trace_processor::RawMemoryGraphNode::kWeak
+          : perfetto::trace_processor::RawMemoryGraphNode::kDefault);
+}
+
+MemoryDumpMapConverter::PerfettoProcessMemoryNode::MemoryNodesMap
+MemoryDumpMapConverter::ConvertAllocatorDumps(
+    const base::trace_event::ProcessMemoryDump& input) const {
+  MemoryDumpMapConverter::PerfettoProcessMemoryNode::MemoryNodesMap output;
+  for (const auto& entry : input.allocator_dumps()) {
+    const std::unique_ptr<base::trace_event::MemoryAllocatorDump>& dump =
+        entry.second;
+
+    output.emplace(entry.first, ConvertMemoryAllocatorDump(*dump));
+  }
+  return output;
+}
+
+MemoryDumpMapConverter::PerfettoProcessMemoryNode::AllocatorNodeEdgesMap
+MemoryDumpMapConverter::ConvertAllocatorDumpEdges(
+    const base::trace_event::ProcessMemoryDump& input) const {
+  MemoryDumpMapConverter::PerfettoProcessMemoryNode::AllocatorNodeEdgesMap
+      output;
+  for (const auto& entry : input.allocator_dumps_edges()) {
+    std::unique_ptr<perfetto::trace_processor::MemoryGraphEdge> edge =
+        ConvertAllocatorDumpEdge(entry.second);
+    const perfetto::trace_processor::MemoryAllocatorNodeId source =
+        edge->source;
+    output.emplace(source, std::move(edge));
+  }
+  return output;
+}
+
+std::unique_ptr<perfetto::trace_processor::MemoryGraphEdge>
+MemoryDumpMapConverter::ConvertAllocatorDumpEdge(
+    const base::trace_event::ProcessMemoryDump::MemoryAllocatorDumpEdge& input)
+    const {
+  return std::make_unique<perfetto::trace_processor::MemoryGraphEdge>(
+      ConvertMemoryAllocatorDumpGuid(input.source),
+      ConvertMemoryAllocatorDumpGuid(input.target), input.importance,
+      input.overridable);
+}
+
+perfetto::trace_processor::MemoryAllocatorNodeId
+MemoryDumpMapConverter::ConvertMemoryAllocatorDumpGuid(
+    const base::trace_event::MemoryAllocatorDumpGuid& input) const {
+  return perfetto::trace_processor::MemoryAllocatorNodeId(input.ToUint64());
+}
+
+}  // namespace memory_instrumentation
diff --git a/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.h b/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.h
new file mode 100644
index 0000000..f01fa30
--- /dev/null
+++ b/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.h
@@ -0,0 +1,83 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SERVICES_RESOURCE_COORDINATOR_MEMORY_INSTRUMENTATION_MEMORY_DUMP_MAP_CONVERTER_H_
+#define SERVICES_RESOURCE_COORDINATOR_MEMORY_INSTRUMENTATION_MEMORY_DUMP_MAP_CONVERTER_H_
+
+#include <list>
+#include <map>
+#include <memory>
+#include <vector>
+
+#include "base/trace_event/process_memory_dump.h"
+#include "third_party/perfetto/include/perfetto/ext/trace_processor/importers/memory_tracker/graph_processor.h"
+
+namespace memory_instrumentation {
+
+// Converts the Chromium MemoryDumpMap to the corresponding defined in Perfetto
+// type RawMemoryNodeMap.
+//
+// Example usage:
+//
+// {
+//   base::trace_event::ProcessMemoryDump pmd;
+//
+//   MemoryDumpMapConverter converter;
+//   perfetto::trace_processor::GraphProcessor::RawMemoryNodeMap
+//       perfettoNodeMap = converter.Convert(pmd);
+// }
+class MemoryDumpMapConverter {
+ public:
+  using MemoryDumpMap =
+      std::map<base::ProcessId, const base::trace_event::ProcessMemoryDump*>;
+
+  using PerfettoProcessMemoryNode =
+      perfetto::trace_processor::RawProcessMemoryNode;
+
+  MemoryDumpMapConverter();
+  ~MemoryDumpMapConverter();
+  MemoryDumpMapConverter(const MemoryDumpMapConverter&) = delete;
+  void operator=(const MemoryDumpMapConverter&) = delete;
+
+  perfetto::trace_processor::GraphProcessor::RawMemoryNodeMap Convert(
+      const MemoryDumpMap& input);
+
+ private:
+  std::unique_ptr<MemoryDumpMapConverter::PerfettoProcessMemoryNode>
+  ConvertProcessMemoryDump(const base::trace_event::ProcessMemoryDump& input);
+
+  perfetto::trace_processor::LevelOfDetail ConvertLevelOfDetail(
+      const base::trace_event::MemoryDumpLevelOfDetail& input) const;
+
+  PerfettoProcessMemoryNode::MemoryNodesMap ConvertAllocatorDumps(
+      const base::trace_event::ProcessMemoryDump& input) const;
+
+  std::unique_ptr<perfetto::trace_processor::RawMemoryGraphNode>
+  ConvertMemoryAllocatorDump(
+      const base::trace_event::MemoryAllocatorDump& input) const;
+
+  void CopyAndConvertAllocatorDumpFlags(
+      const base::trace_event::MemoryAllocatorDump& input,
+      perfetto::trace_processor::RawMemoryGraphNode* output) const;
+
+  std::vector<perfetto::trace_processor::RawMemoryGraphNode::MemoryNodeEntry>
+  ConvertAllocatorDumpEntries(
+      const base::trace_event::MemoryAllocatorDump& input) const;
+
+  PerfettoProcessMemoryNode::AllocatorNodeEdgesMap ConvertAllocatorDumpEdges(
+      const base::trace_event::ProcessMemoryDump& input) const;
+
+  std::unique_ptr<perfetto::trace_processor::MemoryGraphEdge>
+  ConvertAllocatorDumpEdge(
+      const base::trace_event::ProcessMemoryDump::MemoryAllocatorDumpEdge&
+          input) const;
+
+  perfetto::trace_processor::MemoryAllocatorNodeId
+  ConvertMemoryAllocatorDumpGuid(
+      const base::trace_event::MemoryAllocatorDumpGuid& input) const;
+};
+
+}  // namespace memory_instrumentation
+
+#endif  // SERVICES_RESOURCE_COORDINATOR_MEMORY_INSTRUMENTATION_MEMORY_DUMP_MAP_CONVERTER_H_
diff --git a/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter_unittest.cc b/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter_unittest.cc
new file mode 100644
index 0000000..bce58c22
--- /dev/null
+++ b/services/resource_coordinator/memory_instrumentation/memory_dump_map_converter_unittest.cc
@@ -0,0 +1,86 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/resource_coordinator/memory_instrumentation/memory_dump_map_converter.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace memory_instrumentation {
+
+using base::trace_event::MemoryAllocatorDump;
+using base::trace_event::MemoryAllocatorDumpGuid;
+using base::trace_event::MemoryDumpArgs;
+using base::trace_event::MemoryDumpLevelOfDetail;
+using base::trace_event::ProcessMemoryDump;
+
+TEST(MemoryDumpMapConverter, Convert) {
+  MemoryDumpMapConverter::MemoryDumpMap process_dumps;
+
+  MemoryDumpArgs dump_args1 = {MemoryDumpLevelOfDetail::DETAILED};
+  ProcessMemoryDump pmd1(dump_args1);
+
+  auto* source1 = pmd1.CreateAllocatorDump("test1/test2/test3");
+  source1->AddScalar(MemoryAllocatorDump::kNameSize,
+                     MemoryAllocatorDump::kUnitsBytes, 10);
+
+  auto* target1 = pmd1.CreateAllocatorDump("target1");
+  pmd1.AddOwnershipEdge(source1->guid(), target1->guid(), 10);
+
+  pmd1.CreateWeakSharedGlobalAllocatorDump(MemoryAllocatorDumpGuid(1));
+
+  process_dumps.emplace(1, &pmd1);
+
+  MemoryDumpArgs dump_args2 = {MemoryDumpLevelOfDetail::LIGHT};
+  ProcessMemoryDump pmd2(dump_args2);
+
+  auto* source2 = pmd2.CreateAllocatorDump("test1/test4/test5");
+  source2->AddScalar(MemoryAllocatorDump::kNameSize,
+                     MemoryAllocatorDump::kUnitsObjects, 1);
+
+  process_dumps.emplace(2, &pmd2);
+
+  MemoryDumpMapConverter converter;
+  auto output_dump_map = converter.Convert(process_dumps);
+
+  ASSERT_EQ(output_dump_map.size(), 2uL);
+  ASSERT_NE(output_dump_map.find(1), output_dump_map.end());
+  ASSERT_EQ(output_dump_map[1]->allocator_nodes().size(), 3uL);
+  ASSERT_NE(output_dump_map[1]->allocator_nodes().find("test1/test2/test3"),
+            output_dump_map[1]->allocator_nodes().end());
+  {
+    const auto& dump =
+        *output_dump_map[1]->allocator_nodes().at("test1/test2/test3");
+
+    ASSERT_EQ(dump.entries().size(), 1uL);
+    const auto& entry = dump.entries()[0];
+    ASSERT_EQ(entry.entry_type, perfetto::trace_processor::RawMemoryGraphNode::
+                                    MemoryNodeEntry::kUint64);
+    ASSERT_EQ(entry.units, "bytes");
+    ASSERT_EQ(entry.value_uint64, 10uL);
+  }
+
+  ASSERT_NE(output_dump_map[1]->allocator_nodes().find("target1"),
+            output_dump_map[1]->allocator_nodes().end());
+  ASSERT_NE(output_dump_map[1]->allocator_nodes().find("global/1"),
+            output_dump_map[1]->allocator_nodes().end());
+
+  ASSERT_NE(output_dump_map.find(2), output_dump_map.end());
+  ASSERT_EQ(output_dump_map[2]->allocator_nodes().size(), 1uL);
+  ASSERT_NE(output_dump_map[2]->allocator_nodes().find("test1/test4/test5"),
+            output_dump_map[2]->allocator_nodes().end());
+
+  {
+    const auto& dump =
+        *output_dump_map[2]->allocator_nodes().at("test1/test4/test5");
+
+    ASSERT_EQ(dump.entries().size(), 1uL);
+    const auto& entry = dump.entries()[0];
+    ASSERT_EQ(entry.entry_type, perfetto::trace_processor::RawMemoryGraphNode::
+                                    MemoryNodeEntry::kUint64);
+    ASSERT_EQ(entry.units, "objects");
+    ASSERT_EQ(entry.value_uint64, 1uL);
+  }
+}
+
+}  // namespace memory_instrumentation
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index ae5566f..07d34ad 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -4235,6 +4235,30 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "app_shell_unittests",
+        "test_id_prefix": "ninja://extensions/shell:app_shell_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "aura_unittests",
+        "test_id_prefix": "ninja://ui/aura:aura_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "base_unittests",
         "test_id_prefix": "ninja://base:base_unittests/"
       },
@@ -4424,6 +4448,82 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "components_browsertests",
+        "test_id_prefix": "ninja://components:components_browsertests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-NetExportFileWriterTest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "components_unittests",
+        "test_id_prefix": "ninja://components:components_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "compositor_unittests",
+        "test_id_prefix": "ninja://ui/compositor:compositor_unittests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-OutOfProcessPPAPITest.TrueTypeFont"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 6
+        },
+        "test": "content_browsertests",
+        "test_id_prefix": "ninja://content/test:content_browsertests/"
+      },
+      {
+        "args": [
+          "--enable-features=StorageServiceOutOfProcess",
+          "--gtest_filter=-OutOfProcessPPAPITest.TrueTypeFont"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "storage_service_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
+        },
+        "test": "content_browsertests",
+        "test_id_prefix": "ninja://content/test:content_browsertests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "content_unittests",
         "test_id_prefix": "ninja://content/test:content_unittests/"
       },
@@ -4448,6 +4548,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "dbus_unittests",
+        "test_id_prefix": "ninja://dbus:dbus_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "device_unittests",
         "test_id_prefix": "ninja://device:device_unittests/"
       },
@@ -4476,6 +4588,56 @@
         "test_id_prefix": "ninja://ui/events:events_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "extensions_browsertests",
+        "test_id_prefix": "ninja://extensions:extensions_browsertests/"
+      },
+      {
+        "args": [
+          "--enable-features=StorageServiceOutOfProcess",
+          "--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "storage_service_extensions_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "extensions_browsertests",
+        "test_id_prefix": "ninja://extensions:extensions_browsertests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-NativeExtensionBindingsSystemUnittest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "extensions_unittests",
+        "test_id_prefix": "ninja://extensions:extensions_unittests/"
+      },
+      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -4640,6 +4802,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "message_center_unittests",
+        "test_id_prefix": "ninja://ui/message_center:message_center_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "midi_unittests",
         "test_id_prefix": "ninja://media/midi:midi_unittests/"
       },
@@ -4844,6 +5018,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "snapshot_unittests",
+        "test_id_prefix": "ninja://ui/snapshot:snapshot_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "sql_unittests",
         "test_id_prefix": "ninja://sql:sql_unittests/"
       },
@@ -4860,6 +5046,22 @@
         "test_id_prefix": "ninja://storage:storage_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-SingleClientSessionsSyncTestWithFaviconTestServer.ShouldDeleteOnDemandIconsOnSessionsDisabled"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "sync_integration_tests",
+        "test_id_prefix": "ninja://chrome/test:sync_integration_tests/"
+      },
+      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -4896,6 +5098,50 @@
         "test_id_prefix": "ninja://ui/touch_selection:ui_touch_selection_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-NativeDesktopMediaListTest*:PermissionMessageCombinationsUnittest.USBSerialBluetoothCoalescing:RelaunchNotificationControllerPlatformImplTest.SynchronousNotification:WindowSizerTest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "unit_tests",
+        "test_id_prefix": "ninja://chrome/test:unit_tests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "url_unittests",
+        "test_id_prefix": "ninja://url:url_unittests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:DesktopWidgetTest.GetWindowPlacement:DesktopWidgetTest.MinimumSizeConstraints:EditableComboboxTest.EndOrHomeMovesToBeginningOrEndOfText:EditableComboboxTest.MenuCanAdaptToContentChange:TextfieldTest.ContextMenuDisplayTest:TooltipControllerTest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "views_unittests",
+        "test_id_prefix": "ninja://ui/views:views_unittests/"
+      },
+      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -4916,6 +5162,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "wm_unittests",
+        "test_id_prefix": "ninja://ui/wm:wm_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "wtf_unittests",
         "test_id_prefix": "ninja://third_party/blink/renderer/platform/wtf:wtf_unittests/"
       }
diff --git a/testing/buildbot/chromium.ci.json b/testing/buildbot/chromium.ci.json
index 2a377433..74480b5 100644
--- a/testing/buildbot/chromium.ci.json
+++ b/testing/buildbot/chromium.ci.json
@@ -8,6 +8,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -5822,6 +5823,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -6332,6 +6334,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -6807,6 +6810,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -7958,6 +7962,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -9066,6 +9071,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -27548,9 +27554,6 @@
     ],
     "gtest_tests": [
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -27570,7 +27573,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27592,7 +27594,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27615,7 +27616,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27637,7 +27637,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27659,7 +27658,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27681,7 +27679,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27703,7 +27700,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27725,7 +27721,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27748,7 +27743,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.blink_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27770,7 +27764,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27792,7 +27785,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27814,7 +27806,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27836,7 +27827,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27858,7 +27848,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27880,7 +27869,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27902,7 +27890,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27926,7 +27913,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27949,7 +27935,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.content_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27971,7 +27956,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -27993,7 +27977,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28015,7 +27998,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28037,7 +28019,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28059,7 +28040,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28081,7 +28061,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28103,7 +28082,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28125,7 +28103,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28147,7 +28124,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28168,9 +28144,6 @@
         "test_id_prefix": "ninja://google_apis:google_apis_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -28191,7 +28164,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.headless_browsertests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28213,7 +28185,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28235,7 +28206,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28257,7 +28227,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28279,7 +28248,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28301,7 +28269,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28323,7 +28290,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28346,7 +28312,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.mojo_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28368,7 +28333,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28391,7 +28355,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.net_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28414,7 +28377,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28436,7 +28398,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28459,7 +28420,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.services_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28481,7 +28441,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28503,7 +28462,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28526,7 +28484,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28548,7 +28505,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28571,7 +28527,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.storage_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28594,7 +28549,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28616,7 +28570,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28639,7 +28592,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.viz_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28661,7 +28613,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28682,9 +28633,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_browsertests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -28704,7 +28652,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28725,9 +28672,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -28747,7 +28691,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -28772,7 +28715,6 @@
       {
         "args": [
           "--num-retries=3",
-          "--device=aemu",
           "--platform=fuchsia"
         ],
         "isolate_name": "blink_web_tests",
@@ -28803,8 +28745,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -28833,8 +28774,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -28863,8 +28803,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -28897,8 +28836,7 @@
           "--expected-vendor-id",
           "0",
           "--expected-device-id",
-          "0",
-          "--device=aemu"
+          "0"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -44098,7 +44036,6 @@
           "--enable-features=UseOzonePlatform",
           "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter"
         ],
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -44366,7 +44303,6 @@
           "--enable-features=UseOzonePlatform",
           "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.x11_browser_tests.filter"
         ],
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -48693,6 +48629,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "isolate_profile_data": true,
         "merge": {
@@ -50630,6 +50585,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -69799,6 +69772,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.10"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -71441,6 +71433,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.11"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -73109,6 +73120,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:0a2e",
+              "os": "Mac-10.12.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -74808,6 +74838,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -76455,6 +76504,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -78201,6 +78269,26 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "isolate_profile_data": true,
         "merge": {
@@ -79902,6 +79990,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.14.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -81536,6 +81643,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Mac-10.15"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -111276,6 +111401,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -113629,6 +113767,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chrome-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -133522,6 +133673,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -144782,6 +144946,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -146817,6 +147000,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -148900,6 +149102,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-17134"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -151038,6 +151259,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-18363"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -157358,6 +157598,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -158781,6 +159034,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -200365,9 +200631,6 @@
     ],
     "gtest_tests": [
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -200387,7 +200650,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200409,7 +200671,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200432,7 +200693,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200454,7 +200714,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200476,7 +200735,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200498,7 +200756,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200520,7 +200777,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200542,7 +200798,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200565,7 +200820,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.blink_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200587,7 +200841,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200609,7 +200862,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200631,7 +200883,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200653,7 +200904,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200675,7 +200925,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200697,7 +200946,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200719,7 +200967,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200743,7 +200990,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200766,7 +201012,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.content_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200788,7 +201033,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200810,7 +201054,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200832,7 +201075,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200854,7 +201096,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200876,7 +201117,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200898,7 +201138,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200920,7 +201159,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200942,7 +201180,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200964,7 +201201,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -200985,9 +201221,6 @@
         "test_id_prefix": "ninja://google_apis:google_apis_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -201008,7 +201241,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.headless_browsertests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201030,7 +201262,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201052,7 +201283,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201074,7 +201304,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201096,7 +201325,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201118,7 +201346,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201140,7 +201367,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201163,7 +201389,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.mojo_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201185,7 +201410,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201207,7 +201431,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201229,7 +201452,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201252,7 +201474,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.services_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201274,7 +201495,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201296,7 +201516,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201319,7 +201538,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201341,7 +201559,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201364,7 +201581,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.storage_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201387,7 +201603,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201409,7 +201624,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201432,7 +201646,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.viz_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201454,7 +201667,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201475,9 +201687,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_browsertests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -201497,7 +201706,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201518,9 +201726,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -201540,7 +201745,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201568,9 +201772,6 @@
     ],
     "gtest_tests": [
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -201590,7 +201791,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201612,7 +201812,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201635,7 +201834,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201657,7 +201855,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201679,7 +201876,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201701,7 +201897,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201723,7 +201918,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201745,7 +201939,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201768,7 +201961,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.blink_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201790,7 +201982,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201812,7 +202003,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201834,7 +202024,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201856,7 +202045,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201878,7 +202066,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201900,7 +202087,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201922,7 +202108,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201946,7 +202131,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201969,7 +202153,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.content_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -201991,7 +202174,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202013,7 +202195,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202035,7 +202216,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202057,7 +202237,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202079,7 +202258,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202101,7 +202279,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202123,7 +202300,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202145,7 +202321,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202167,7 +202342,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202188,9 +202362,6 @@
         "test_id_prefix": "ninja://google_apis:google_apis_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -202211,7 +202382,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.headless_browsertests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202233,7 +202403,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202255,7 +202424,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202277,7 +202445,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202299,7 +202466,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202321,7 +202487,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202343,7 +202508,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202366,7 +202530,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.mojo_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202388,7 +202551,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202411,7 +202573,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.net_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202434,7 +202595,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202456,7 +202616,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202479,7 +202638,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.services_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202501,7 +202659,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202523,7 +202680,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202546,7 +202702,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202568,7 +202723,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202591,7 +202745,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.storage_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202614,7 +202767,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202636,7 +202788,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202659,7 +202810,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.viz_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202681,7 +202831,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202702,9 +202851,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_browsertests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -202724,7 +202870,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202745,9 +202890,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -202767,7 +202909,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -202792,7 +202933,6 @@
       {
         "args": [
           "--num-retries=3",
-          "--device=aemu",
           "--platform=fuchsia"
         ],
         "isolate_name": "blink_web_tests",
@@ -202823,8 +202963,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -202853,8 +202992,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -202883,8 +203021,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -202913,8 +203050,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -202947,8 +203083,7 @@
           "--expected-vendor-id",
           "0",
           "--expected-device-id",
-          "0",
-          "--device=aemu"
+          "0"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -202977,8 +203112,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -203007,8 +203141,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -203037,8 +203170,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -250551,6 +250683,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -252606,6 +252756,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "isolate_profile_data": true,
         "merge": {
@@ -253037,7 +253206,6 @@
         "test_id_prefix": "ninja://third_party/angle/src/tests:angle_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -253056,7 +253224,6 @@
         "test_id_prefix": "ninja://extensions/shell:app_shell_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -253351,7 +253518,6 @@
         "test_id_prefix": "ninja://chrome/test/chromedriver:chromedriver_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -253389,7 +253555,6 @@
         "test_id_prefix": "ninja://components:components_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -253488,7 +253653,6 @@
         "test_id_prefix": "ninja://crypto:crypto_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -253900,7 +254064,6 @@
         "test_id_prefix": "ninja://media:media_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -254225,7 +254388,6 @@
         "test_id_prefix": "ninja://skia:skia_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -254372,7 +254534,6 @@
         "test_id_prefix": "ninja://chrome/test:unit_tests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -254428,7 +254589,6 @@
         "test_id_prefix": "ninja://components/viz:viz_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -254519,6 +254679,30 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "app_shell_unittests",
+        "test_id_prefix": "ninja://extensions/shell:app_shell_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "aura_unittests",
+        "test_id_prefix": "ninja://ui/aura:aura_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "base_unittests",
         "test_id_prefix": "ninja://base:base_unittests/"
       },
@@ -254708,6 +254892,82 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "components_browsertests",
+        "test_id_prefix": "ninja://components:components_browsertests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-NetExportFileWriterTest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "components_unittests",
+        "test_id_prefix": "ninja://components:components_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "compositor_unittests",
+        "test_id_prefix": "ninja://ui/compositor:compositor_unittests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-OutOfProcessPPAPITest.TrueTypeFont"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 6
+        },
+        "test": "content_browsertests",
+        "test_id_prefix": "ninja://content/test:content_browsertests/"
+      },
+      {
+        "args": [
+          "--enable-features=StorageServiceOutOfProcess",
+          "--gtest_filter=-OutOfProcessPPAPITest.TrueTypeFont"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "storage_service_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
+        },
+        "test": "content_browsertests",
+        "test_id_prefix": "ninja://content/test:content_browsertests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "content_unittests",
         "test_id_prefix": "ninja://content/test:content_unittests/"
       },
@@ -254732,6 +254992,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "dbus_unittests",
+        "test_id_prefix": "ninja://dbus:dbus_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "device_unittests",
         "test_id_prefix": "ninja://device:device_unittests/"
       },
@@ -254760,6 +255032,56 @@
         "test_id_prefix": "ninja://ui/events:events_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "extensions_browsertests",
+        "test_id_prefix": "ninja://extensions:extensions_browsertests/"
+      },
+      {
+        "args": [
+          "--enable-features=StorageServiceOutOfProcess",
+          "--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "storage_service_extensions_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "extensions_browsertests",
+        "test_id_prefix": "ninja://extensions:extensions_browsertests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-NativeExtensionBindingsSystemUnittest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "extensions_unittests",
+        "test_id_prefix": "ninja://extensions:extensions_unittests/"
+      },
+      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -254924,6 +255246,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "message_center_unittests",
+        "test_id_prefix": "ninja://ui/message_center:message_center_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "midi_unittests",
         "test_id_prefix": "ninja://media/midi:midi_unittests/"
       },
@@ -255128,6 +255462,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "snapshot_unittests",
+        "test_id_prefix": "ninja://ui/snapshot:snapshot_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "sql_unittests",
         "test_id_prefix": "ninja://sql:sql_unittests/"
       },
@@ -255144,6 +255490,22 @@
         "test_id_prefix": "ninja://storage:storage_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-SingleClientSessionsSyncTestWithFaviconTestServer.ShouldDeleteOnDemandIconsOnSessionsDisabled"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "sync_integration_tests",
+        "test_id_prefix": "ninja://chrome/test:sync_integration_tests/"
+      },
+      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -255180,6 +255542,50 @@
         "test_id_prefix": "ninja://ui/touch_selection:ui_touch_selection_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-NativeDesktopMediaListTest*:PermissionMessageCombinationsUnittest.USBSerialBluetoothCoalescing:RelaunchNotificationControllerPlatformImplTest.SynchronousNotification:WindowSizerTest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "unit_tests",
+        "test_id_prefix": "ninja://chrome/test:unit_tests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "url_unittests",
+        "test_id_prefix": "ninja://url:url_unittests/"
+      },
+      {
+        "args": [
+          "--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:DesktopWidgetTest.GetWindowPlacement:DesktopWidgetTest.MinimumSizeConstraints:EditableComboboxTest.EndOrHomeMovesToBeginningOrEndOfText:EditableComboboxTest.MenuCanAdaptToContentChange:TextfieldTest.ContextMenuDisplayTest:TooltipControllerTest*"
+        ],
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "views_unittests",
+        "test_id_prefix": "ninja://ui/views:views_unittests/"
+      },
+      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -255200,6 +255606,18 @@
           "can_use_on_swarming_builders": true,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
+        "test": "wm_unittests",
+        "test_id_prefix": "ninja://ui/wm:wm_unittests/"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
         "test": "wtf_unittests",
         "test_id_prefix": "ninja://third_party/blink/renderer/platform/wtf:wtf_unittests/"
       }
@@ -258285,6 +258703,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -264233,6 +264669,26 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:0a2e",
+              "os": "Mac-11.0"
+            }
+          ],
+          "expiration": 21600,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json
index bf6ef43..d484e682 100644
--- a/testing/buildbot/chromium.clang.json
+++ b/testing/buildbot/chromium.clang.json
@@ -23566,6 +23566,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -25919,6 +25932,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chrome-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 767346b..b982281 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -3708,6 +3708,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-17134"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -5846,6 +5865,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-18363"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -14900,9 +14938,6 @@
     ],
     "gtest_tests": [
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -14922,7 +14957,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -14944,7 +14978,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -14967,7 +15000,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -14989,7 +15021,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15011,7 +15042,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15033,7 +15063,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15055,7 +15084,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15077,7 +15105,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15100,7 +15127,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.blink_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15122,7 +15148,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15144,7 +15169,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15166,7 +15190,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15188,7 +15211,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15210,7 +15232,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15232,7 +15253,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15254,7 +15274,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15278,7 +15297,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15301,7 +15319,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.content_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15323,7 +15340,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15345,7 +15361,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15367,7 +15382,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15389,7 +15403,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15411,7 +15424,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15433,7 +15445,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15455,7 +15466,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15477,7 +15487,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15499,7 +15508,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15520,9 +15528,6 @@
         "test_id_prefix": "ninja://google_apis:google_apis_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -15543,7 +15548,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.headless_browsertests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15565,7 +15569,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15587,7 +15590,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15609,7 +15611,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15631,7 +15632,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15653,7 +15653,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15675,7 +15674,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15698,7 +15696,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.mojo_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15720,7 +15717,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15742,7 +15738,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15764,7 +15759,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15787,7 +15781,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.services_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15809,7 +15802,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15831,7 +15823,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15854,7 +15845,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15876,7 +15866,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15899,7 +15888,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.storage_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15922,7 +15910,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15944,7 +15931,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15967,7 +15953,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.viz_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -15989,7 +15974,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16010,9 +15994,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_browsertests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -16032,7 +16013,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16053,9 +16033,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -16075,7 +16052,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16103,9 +16079,6 @@
     ],
     "gtest_tests": [
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -16125,7 +16098,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16147,7 +16119,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16170,7 +16141,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16192,7 +16162,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16214,7 +16183,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16236,7 +16204,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16258,7 +16225,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16280,7 +16246,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16303,7 +16268,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.blink_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16325,7 +16289,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16347,7 +16310,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16369,7 +16331,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16391,7 +16352,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16413,7 +16373,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16435,7 +16394,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16457,7 +16415,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16481,7 +16438,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16504,7 +16460,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.content_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16526,7 +16481,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16548,7 +16502,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16570,7 +16523,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16592,7 +16544,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16614,7 +16565,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16636,7 +16586,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16658,7 +16607,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16680,7 +16628,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16702,7 +16649,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16723,9 +16669,6 @@
         "test_id_prefix": "ninja://google_apis:google_apis_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -16746,7 +16689,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.headless_browsertests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16768,7 +16710,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16790,7 +16731,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16812,7 +16752,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16834,7 +16773,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16856,7 +16794,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16878,7 +16815,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16901,7 +16837,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.mojo_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16923,7 +16858,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16946,7 +16880,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.net_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16969,7 +16902,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -16991,7 +16923,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17014,7 +16945,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.services_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17036,7 +16966,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17058,7 +16987,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17081,7 +17009,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17103,7 +17030,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17126,7 +17052,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.storage_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17149,7 +17074,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17171,7 +17095,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17194,7 +17117,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.viz_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17216,7 +17138,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17237,9 +17158,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_browsertests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -17259,7 +17177,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17280,9 +17197,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -17302,7 +17216,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -17327,7 +17240,6 @@
       {
         "args": [
           "--num-retries=3",
-          "--device=aemu",
           "--platform=fuchsia"
         ],
         "isolate_name": "blink_web_tests",
@@ -17358,8 +17270,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -17388,8 +17299,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -17418,8 +17328,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -17448,8 +17357,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -17482,8 +17390,7 @@
           "--expected-vendor-id",
           "0",
           "--expected-device-id",
-          "0",
-          "--device=aemu"
+          "0"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -17512,8 +17419,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -17542,8 +17448,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -17572,8 +17477,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -56861,6 +56765,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -58916,6 +58838,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "isolate_profile_data": true,
         "merge": {
@@ -59342,7 +59283,6 @@
         "test_id_prefix": "ninja://third_party/angle/src/tests:angle_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -59361,7 +59301,6 @@
         "test_id_prefix": "ninja://extensions/shell:app_shell_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -59656,7 +59595,6 @@
         "test_id_prefix": "ninja://chrome/test/chromedriver:chromedriver_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -59694,7 +59632,6 @@
         "test_id_prefix": "ninja://components:components_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -59793,7 +59730,6 @@
         "test_id_prefix": "ninja://crypto:crypto_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -60205,7 +60141,6 @@
         "test_id_prefix": "ninja://media:media_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -60530,7 +60465,6 @@
         "test_id_prefix": "ninja://skia:skia_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -60677,7 +60611,6 @@
         "test_id_prefix": "ninja://chrome/test:unit_tests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -60733,7 +60666,6 @@
         "test_id_prefix": "ninja://components/viz:viz_unittests/"
       },
       {
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -64009,6 +63941,26 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:0a2e",
+              "os": "Mac-11.0"
+            }
+          ],
+          "expiration": 21600,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json
index 5e457ae..74e799a4 100644
--- a/testing/buildbot/chromium.gpu.fyi.json
+++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -8,6 +8,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -2658,6 +2659,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -3168,6 +3170,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -3643,6 +3646,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -4794,6 +4798,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
@@ -5902,6 +5907,7 @@
           "--test-launcher-retry-limit=0",
           "--test-launcher-batch-limit=256",
           "--gtest_filter=-*Vulkan_SwiftShader*",
+          "--shard-timeout=180",
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index a0b12bda..fdcf6bd 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -2886,9 +2886,6 @@
     ],
     "gtest_tests": [
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -2908,7 +2905,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -2930,7 +2926,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -2953,7 +2948,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -2975,7 +2969,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -2997,7 +2990,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3019,7 +3011,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3041,7 +3032,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3063,7 +3053,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3086,7 +3075,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.blink_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3108,7 +3096,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3130,7 +3117,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3152,7 +3138,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3174,7 +3159,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3196,7 +3180,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3218,7 +3201,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3240,7 +3222,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3264,7 +3245,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3287,7 +3267,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.content_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3309,7 +3288,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3331,7 +3309,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3353,7 +3330,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3375,7 +3351,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3397,7 +3372,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3419,7 +3393,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3441,7 +3414,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3463,7 +3435,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3485,7 +3456,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3506,9 +3476,6 @@
         "test_id_prefix": "ninja://google_apis:google_apis_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -3529,7 +3496,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.headless_browsertests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3551,7 +3517,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3573,7 +3538,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3595,7 +3559,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3617,7 +3580,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3639,7 +3601,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3661,7 +3622,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3684,7 +3644,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.mojo_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3706,7 +3665,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3729,7 +3687,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.net_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3752,7 +3709,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3774,7 +3730,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3797,7 +3752,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.services_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3819,7 +3773,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3841,7 +3794,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3864,7 +3816,6 @@
       {
         "args": [
           "--child-arg=--ozone-platform=headless",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3886,7 +3837,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3909,7 +3859,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.storage_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3932,7 +3881,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3954,7 +3902,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3977,7 +3924,6 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.viz_unittests.filter",
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -3999,7 +3945,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -4020,9 +3965,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_browsertests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -4042,7 +3984,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -4063,9 +4004,6 @@
         "test_id_prefix": "ninja://fuchsia/engine:web_engine_unittests/"
       },
       {
-        "args": [
-          "--device=aemu"
-        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -4085,7 +4023,6 @@
       },
       {
         "args": [
-          "--device=aemu",
           "--runner-logs-dir=${ISOLATED_OUTDIR}/runner_logs"
         ],
         "merge": {
@@ -4110,7 +4047,6 @@
       {
         "args": [
           "--num-retries=3",
-          "--device=aemu",
           "--platform=fuchsia"
         ],
         "isolate_name": "blink_web_tests",
@@ -4141,8 +4077,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -4171,8 +4106,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -4201,8 +4135,7 @@
           "--browser=web-engine-shell",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--device=aemu"
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -4235,8 +4168,7 @@
           "--expected-vendor-id",
           "0",
           "--expected-device-id",
-          "0",
-          "--device=aemu"
+          "0"
         ],
         "isolate_name": "fuchsia_telemetry_gpu_integration_test",
         "merge": {
@@ -4478,7 +4410,6 @@
           "--enable-features=UseOzonePlatform",
           "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter"
         ],
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -4746,7 +4677,6 @@
           "--enable-features=UseOzonePlatform",
           "--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.x11_browser_tests.filter"
         ],
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -6761,6 +6691,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "isolate_profile_data": true,
         "merge": {
@@ -8698,6 +8647,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -10943,6 +10910,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
diff --git a/testing/buildbot/chromium.mac.json b/testing/buildbot/chromium.mac.json
index 7e57039..cc0686a2 100644
--- a/testing/buildbot/chromium.mac.json
+++ b/testing/buildbot/chromium.mac.json
@@ -1511,6 +1511,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.10"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -3153,6 +3172,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.11"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -4821,6 +4859,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:0a2e",
+              "os": "Mac-10.12.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -6520,6 +6577,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -8167,6 +8243,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -9913,6 +10008,26 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "isolate_profile_data": true,
         "merge": {
@@ -11614,6 +11729,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.14.6"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -13248,6 +13382,24 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Mac-10.15"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
diff --git a/testing/buildbot/chromium.win.json b/testing/buildbot/chromium.win.json
index 28c65d58..6444471 100644
--- a/testing/buildbot/chromium.win.json
+++ b/testing/buildbot/chromium.win.json
@@ -1296,6 +1296,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -3556,6 +3569,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -5591,6 +5623,25 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -7130,6 +7181,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
@@ -8553,6 +8617,19 @@
         "test_id_prefix": "ninja://content/shell:content_shell_crash_test/"
       },
       {
+        "isolate_name": "extension_docserver_python_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "extension_docserver_python_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://chrome/common/extensions/docs/server2:extension_docserver_python_unittests/"
+      },
+      {
         "isolate_name": "flatbuffers_unittests",
         "merge": {
           "args": [],
diff --git a/testing/buildbot/filters/lacros.browser_tests.filter b/testing/buildbot/filters/lacros.browser_tests.filter
index 195f664c..52ab5093 100644
--- a/testing/buildbot/filters/lacros.browser_tests.filter
+++ b/testing/buildbot/filters/lacros.browser_tests.filter
@@ -5,6 +5,7 @@
 -AdsPageLoadMetricsObserverBrowserTest.PageAdDensityIgnoreDisplayNoneFrame

 -AdsPageLoadMetricsObserverBrowserTest.PageAdDensityMultipleFrames

 -AdsPageLoadMetricsObserverBrowserTest.PageAdDensityRecordsPageMax

+-All/CustomTabBarViewBrowserTest.BackToAppButtonIsNotVisibleInOutOfScopePopups/BookmarkApps

 -All/CustomTabBarViewBrowserTest.IsNotCreatedInPopup/BookmarkApps

 -All/CustomTabBarViewBrowserTest.IsNotCreatedInPopup/WebApps

 -All/CustomTabBarViewBrowserTest.RightClickMenuShowsCopyUrl/BookmarkApps

@@ -17,14 +18,19 @@
 -All/HostedOrWebAppTest.OpenLinkInNewTab/HostedApp

 -All/HostedOrWebAppTest.OpenLinkInNewTab/WebApp

 -All/IntentPickerBubbleViewBrowserTest.NavigationInAppWindowToInScopeLinkDoesNotShowIntentPicker*

+-All/MultiActionAPITest.PopupCreation/1

+-All/MultiActionAPITest.SessionStorageDoesNotPersistBetweenOpenings/1

 -All/WebAppBrowserTest.CopyURL/BookmarkApps

 -All/WebAppBrowserTest.CopyURL/WebApps

+-All/WebAppBrowserTest.InScopePWAPopupsHaveCorrectSize/WebApps

 -All/WebAppEngagementBrowserTest.CommandLineWindow/WebApps

 -All/WebAppFileHandlingOriginTrialBrowserTest.ExpiredTrialHandlersAreCleanedUpAtLaunch/BookmarkApps

 -All/WebAppProfileDeletionBrowserTest.AppRegistrarNotifiesProfileDeletion/BookmarkApps

 -AppViewTest.KillGuestCommunicatingWithWrongAppView

 -AppViewTest.KillGuestWithInvalidInstanceID

 -AudioFocusWebContentsObserverBrowserTest.PlatformAppHasDifferentAudioFocus

+-AutofillProviderBrowserTestWithSkipFlagOn.InferredLabelChangeNotImpactFormComparing

+-AutomationApiTest.ForceLayout

 -AutoplayExtensionBrowserTest.AutoplayAllowedInIframe

 -BluetoothApiTest.DeviceEvents

 -BluetoothApiTest.DeviceInfo

@@ -81,7 +87,9 @@
 -BrowserViewTest.GetAccessibleTabModalDialogTitle

 -BrowserViewTest.GetAccessibleTabModalDialogTree

 -BrowsingDataRemoverBrowserTest.StorageRemovedFromDisk

+-CaptivePortalBrowserTest.SecureDnsErrorTriggersCheck

 -CaptivePortalBrowserTest.SlowLoadSecureDnsErrorWithCaptivePortal

+-ChromeSitePerProcessTest.PopupWindowFocus

 -ClientHintsBrowserTest.ClientHintsClearSession

 -ClipboardApiTest.Extension

 -ContentIndexTest.MetricsCollected

@@ -93,6 +101,7 @@
 -ContextMenuBrowserTest.OpenLinkInProfileEntryPresent

 -ContextMenuBrowserTest.OpenLinkInWebApp

 -ContextMenuBrowserTest.PngImageDownscaleToPng

+-ContextMenuBrowserTest.RealMenu

 -ContextMenuBrowserTest.RequestPngForGifImage

 -CrComponentsCertificateManagerV3Test.All

 -CrComponentsManagedFootnoteV3Test.All

@@ -115,11 +124,13 @@
 -DeepScanningDialogDelegateBlockLargeFileTransferBrowserTest.Test/3

 -DesktopCaptureApiTest.ChooseDesktopMedia

 -DiceManageAccountBrowserTest.ClearManagedProfileOnStartup

+-DownloadExtensionTest.DownloadExtensionTest_SearchEmptyQuery

 -DownloadTest.DownloadTest_History

 -DownloadWakeLockTest.WakeLockAcquireAndCancel

 -ExtensionLoadingTest.KeepAliveWithDevToolsOpenOnReload

 -ExtensionManagementApiBrowserTest.GetAllIncludesTerminated

 -ExtensionManagementApiEscalationTest.SetEnabled

+-ExtensionOverrideTest.SubframeNavigationInOverridenNTPDoesNotAffectFocus

 -ExtensionPreferenceApiTest.Standard

 -ExtensionsMenuViewBrowserTest.ClickingContextMenuButton

 -ExtensionWebRequestApiTest.WebSocketRequest

@@ -134,16 +145,21 @@
 -FindInPageControllerTest.FindMovesOnTabClose_Issue1343052

 -FindInPageControllerTest.FindMovesWhenObscuring

 -FolderUploadConfirmationViewTest.InitiallyFocusesCancel

+-GlobalErrorBubbleTest.InvokeUi_ExtensionDisabledGlobalError

 -GlobalErrorBubbleTest.InvokeUi_ExtensionDisabledGlobalErrorRemote

 -GlobalErrorBubbleTest.InvokeUi_ExternalInstallBubbleAlert

 -IconLoaderBrowserTest.LoadGroup

 -InlineLoginHelperBrowserTest.ForceSigninWithUserManager

 -KeepAliveDevToolsTest.KeepsAliveUntilBrowserClose

+-LiteVideoBrowserTest.SimplePlayback

 -LoadImageBrowserTest.LoadImageWithMap

+-LocalCardMigrationBrowserTestForNickname.CardIdentifierString/1

+-MediaRouterUIBrowserTest.EphemeralToolbarIconForDialog

 -MediaRouterUIBrowserTest.OpenDialogFromAppMenu

 -NotificationPermissionContextApiTest.Granted

 -NtpExtensionBubbleViewBrowserTest.InvokeUi_ntp_override

 -NtpExtensionBubbleViewBrowserTest.TestControlledNewTabPageMessageBubble

+-NtpExtensionBubbleViewBrowserTest.TestControlledNewTabPageMessageBubbleLearnMore

 -OmniboxPopupContentsViewTest.ClickOmnibox

 -OmniboxPopupContentsViewTest.PopupMatchesLocationBarBackground

 -OutOfProcessPPAPITest.FlashClipboard

@@ -160,8 +176,11 @@
 -PDFExtensionTestWithTestGuestViewManager.CSPDoesNotBlockEmbedStyles

 -PDFExtensionTestWithTestGuestViewManager.CSPFrameAncestorsOverridesXFrameOptions

 -PDFExtensionTestWithTestGuestViewManager.PdfInMainFrameHasFocus

+-PermissionRequestManagerWithBackForwardCacheBrowserTest.RequestsForPagesInCacheNotGrouped

 -PermissionsApiTest.AlwaysAllowed

 -PictureInPicturePixelComparisonBrowserTest.PlayAndPauseControls

+-PopupTrackerBrowserTest.PopupInWindow_IsWindowTrue

+-PopupTrackerBrowserTest.ShiftClick_HasTracker

 -PPAPINaClNewlibTest.TrueTypeFont

 -PPAPINaClPNaClNonSfiTest.TrueTypeFont

 -PresentationReceiverWindowControllerBrowserTest.CreatesWindow

@@ -180,16 +199,25 @@
 -RemoteCopyBrowserTest.TextThenImageUrl

 -RunInBackgroundTest.RunInBackgroundBasicTest

 -RuntimeAPIUpdateTest.TerminatedExtensionUpdateHasCorrectPreviousVersion

+-SafeBrowsingBlockingPageBrowserTestWithThreatTypeAndIsolationSetting/SafeBrowsingBlockingPageBrowserTest.IframeOptInAndReportThreatDetails/3

+-SafeBrowsingBlockingPageWithDelayedWarningsBrowserTest/SafeBrowsingBlockingPageDelayedWarningBrowserTest.JavaScriptDialog_WarningShown/3

+-SafeBrowsingNetworkContext/NetworkContextConfigurationBrowserTest.Cache/0

 -SaveCardBubbleViewsFullFormBrowserTest.StrikeDatabase_Local_AddStrikeIfBubbleDeclined

 -SaveCardBubbleViewsFullFormBrowserTestForManageCard.Local_Metrics_AcceptingFootnotePromoManageCards

 -SaveCardBubbleViewsFullFormBrowserTestForStatusChip.ClickingOnCreditCardIconInStatusChipReshowsBubble

+-SaveCardBubbleViewsFullFormBrowserTestForStatusChip.CreditCardIconShownInStatusChip

 -SaveCardBubbleViewsFullFormBrowserTestForStatusChip.Feedback_Success

+-SaveCardBubbleViewsFullFormBrowserTestForStatusChip.Local_ClickingSaveShowsSigninPromo

 -SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.StrikeDatabase_Upload_AddStrikeIfBubbleIgnored

 -SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithExpirationDateMonthAndCurrentYear

+-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithMissingExpirationDateYearAndWithMonth

 -SaveCardBubbleViewsSyncTransportFullFormBrowserTest.Upload_TransportMode_RequestedCardholderNameTextfieldIsPrefilledWithFocusName

 -SearchByImageBrowserTest.ImageSearchWithCorruptImage

 -SearchByImageBrowserTest.ImageSearchWithValidImage

+-SecurityStateTabHelperTestWithFormsDangerous.MarkHttpAsWarningAndDangerousOnFormEdits

+-SerialTest.NavigateWithChooserCrossOrigin

 -ServiceWorkerAndExtensionsMenu/BrowserActionApiLazyTest.IncognitoBasic/0

+-SessionCrashedBubbleViewTest.InvokeUi_SessionCrashedBubble

 -SessionRestoreTest.RestoredTabsHaveCorrectInitialSize

 -SettingsA11yAccessibilityV3.Accessibility_accesskeys

 -SettingsA11yAccessibilityV3.Accessibility_area_alt

@@ -462,6 +490,7 @@
 -SettingsA11ySignoutV3.Signout_video_caption

 -SettingsA11ySignoutV3.Signout_video_description

 -SSLUITest.DisplayedContentWithCertErrorsClearedOnNavigation

+-SSLUITest.InAppTestHTTPSExpiredCertAndPreviouslyProceeded

 -StartupBrowserCreatorExtensionsCheckupExperimentTest.ExtensionsCheckup

 -StartupBrowserCreatorTest.RestoreWithNoStartupWindow

 -SubresourceRedirectBrowserTest.TestBypassOn503LoadShedFailure

@@ -472,6 +501,7 @@
 -TabRestoreTest.RestoreWindowBounds

 -TabSearchBubbleBrowserTest.InvokeUi_default

 -TabStripDragManagerTest.All

+-TabStripUIBrowserTest.ActivatingTabClosesEmbedder

 -TranslateLanguageBrowserTest.LanguageModelLogSucceed

 -TranslateLanguageBrowserTest.TranslateAndRevert

 -TranslateLanguageBrowserTestWithTranslateRecentTarget.RecentTargetLanguage

@@ -482,4 +512,5 @@
 -WebRtcGetDisplayMediaBrowserTestWithPicker.GetDisplayMediaVideoAndAudio

 -WebViewTest.SelectShowHide

 -WebViewTest.Shim_TestDisplayNoneWebviewRemoveChild

+-WelcomeA11y.WelcomeFlow_listitem

 -WorkerTaskProviderBrowserTest.CreateTasksForMultiProfiles
\ No newline at end of file
diff --git a/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter b/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter
index aadd6fc..2da3485 100644
--- a/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter
+++ b/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter
@@ -30,6 +30,10 @@
 -WebRtcDesktopCaptureBrowserTest.RunsScreenshareFromOneTabToAnother
 -WebRtcGetDisplayMediaBrowserTestWithPicker.GetDisplayMediaVideo
 -WebRtcGetDisplayMediaBrowserTestWithPicker.GetDisplayMediaVideoAndAudio
+-BrowserViewTest.GetAccessibleTabModalDialogTree
+-IconLoaderBrowserTest.LoadGroup
+-PrintBrowserTest.PDFPluginNotKeyboardFocusable
+-LocalNTPTest.EmbeddedSearchAPIOnlyAvailableOnNTP
 
 # Flaky:
 -All/ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsWhitelisted/0
diff --git a/testing/buildbot/filters/ozone-linux.x11_browser_tests.filter b/testing/buildbot/filters/ozone-linux.x11_browser_tests.filter
index 2577b9f9..10493a164 100644
--- a/testing/buildbot/filters/ozone-linux.x11_browser_tests.filter
+++ b/testing/buildbot/filters/ozone-linux.x11_browser_tests.filter
@@ -8,6 +8,7 @@
 -WebRtcDesktopCaptureBrowserTest.RunsScreenshareFromOneTabToAnother
 -WebRtcGetDisplayMediaBrowserTestWithPicker.GetDisplayMediaVideo
 -WebRtcGetDisplayMediaBrowserTestWithPicker.GetDisplayMediaVideoAndAudio
+-SaveType/SavePageOriginalVsSavedComparisonTest.CrossSiteObject/0
 
 # Flaky
 -AutofillProviderBrowserTestWithSkipFlagOff.InferredLabelChangeImpactFormComparing
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl
index 7246387..53aad99 100644
--- a/testing/buildbot/gn_isolate_map.pyl
+++ b/testing/buildbot/gn_isolate_map.pyl
@@ -778,6 +778,14 @@
     "label": "//extensions:extensions_browsertests",
     "type": "windowed_test_launcher",
   },
+  "extension_docserver_python_unittests": {
+    "args": [
+      "../../chrome/common/extensions/docs/server2/run_all_unittests.py",
+    ],
+    "label": "//chrome/common/extensions/docs/server2:extension_docserver_python_unittests",
+    "script": "//testing/scripts/run_isolated_script_test.py",
+    "type": "script",
+  },
   "extensions_unittests": {
     "label": "//extensions:extensions_unittests",
     "type": "windowed_test_launcher",
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index 5bec491e..592f6db9 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -270,13 +270,6 @@
       },
     },
   },
-  'fuchsia_aemu': {
-    '$mixin_append': {
-      'args': [
-        '--device=aemu',
-      ],
-    },
-  },
   'fuchsia_runner_logs': {
     '$mixin_append': {
       'args': [
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index ec20861..a5211555 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -92,28 +92,6 @@
       'Linux FYI Release (AMD R7 240)',
     ],
   },
-  'app_shell_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
-  },
-  'aura_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
-  },
   'blink_platform_unittests': {
     'modifications': {
       # TODO(crbug.com/1108121): Remove this filter
@@ -815,14 +793,7 @@
   'components_browsertests': {
     'remove_from': [
       'android-code-coverage-native', # crbug/1018434
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
     ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
   },
   'components_unittests': {
     'remove_from': [
@@ -833,7 +804,6 @@
       'fuchsia-fyi-arm64-rel',  # https://crbug.com/961457
       'fuchsia-fyi-x64-dbg',  # https://crbug.com/961457
       'fuchsia-fyi-x64-rel',  # https://crbug.com/961457
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
     ],
     'modifications': {
       'Linux ASan LSan Tests (1)': {
@@ -864,16 +834,12 @@
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
-    },
-  },
-  'compositor_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
         'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-NetExportFileWriterTest*',
+        ],
       },
     },
   },
@@ -886,7 +852,6 @@
       # http://crbug.com/1060245#c30: due to low utility and capacity.
       'android-marshmallow-arm64-rel',
       'android-marshmallow-x86-rel', # crbug.com/1098111
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
     ],
     'modifications': {
       'Cast Audio Linux': {
@@ -1008,6 +973,13 @@
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-OutOfProcessPPAPITest.TrueTypeFont',
+        ],
+      },
     },
   },
   'content_browsertests_wayland': {
@@ -1146,17 +1118,6 @@
       'Linux FYI Release (AMD R7 240)', # https://crbug.com/915430
     ],
   },
-  'dbus_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
-  },
   'depth_capture_tests': {
     # TODO(https://crbug.com/850107): Remove the Android FYI Release (Pixel 2)
     # exception once there is enough capacity to run these tests.
@@ -1182,7 +1143,6 @@
   'extensions_browsertests': {
     'remove_from': [
       'CrWinAsan(dll)', # https://crbug.com/935598
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
     ],
     'modifications': {
       'Win10 Tests x64 (dbg)': {
@@ -1192,17 +1152,28 @@
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied',
+        ],
+      },
     },
   },
   'extensions_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
     # https://crbug.com/1111979
     'modifications': {
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-NativeExtensionBindingsSystemUnittest*',
+        ],
+      },
     },
   },
   'gin_unittests': {
@@ -1597,17 +1568,6 @@
       },
     },
   },
-  'message_center_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
-  },
   'mojo_unittests': {
     'modifications': {
       'android-asan': {
@@ -2369,21 +2329,7 @@
       },
     },
   },
-  'snapshot_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
-  },
   'storage_service_content_browsertests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
     'modifications': {
       'Linux Tests (dbg)(1)': {
         'swarming': {
@@ -2399,17 +2345,28 @@
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-OutOfProcessPPAPITest.TrueTypeFont',
+        ],
+      },
     },
   },
   'storage_service_extensions_browsertests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
     'modifications': {
       # https://crbug.com/1111979
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied',
+        ],
+      },
     },
   },
   'storage_service_interactive_ui_tests': {
@@ -2441,7 +2398,6 @@
   'sync_integration_tests': {
     'remove_from': [
       'CrWinAsan(dll)', # https://crbug.com/935598
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
     ],
     'modifications': {
       'Linux ASan LSan Tests (1)': {
@@ -2481,6 +2437,13 @@
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-SingleClientSessionsSyncTestWithFaviconTestServer.ShouldDeleteOnDemandIconsOnSessionsDisabled',
+        ],
+      },
     },
   },
   'tab_capture_end2end_tests': {
@@ -2616,7 +2579,6 @@
       # on the CQ. https://crbug.com/1026487.
       'android-marshmallow-arm64-rel',
       'android-pie-arm64-rel',  # https://crbug.com/1010211
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
     ],
     'modifications': {
       'Linux ASan LSan Tests (1)': {
@@ -2679,20 +2641,21 @@
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-NativeDesktopMediaListTest*:PermissionMessageCombinationsUnittest.USBSerialBluetoothCoalescing:'
+          'RelaunchNotificationControllerPlatformImplTest.SynchronousNotification:WindowSizerTest*',
+        ],
+      },
     },
   },
   'url_unittests': {
     'remove_from': [
       # crbug.com/1054240
       'Fuchsia ARM64',
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
     ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
   },
   'video_decode_accelerator_gl_unittest': {
     'remove_from': [
@@ -2705,14 +2668,24 @@
     ],
   },
   'views_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
     'modifications': {
       # https://crbug.com/1111979
       'linux-lacros-tester-fyi-rel': {
         'experiment_percentage': 100,
       },
+      # https://crbug.com/1111979,
+      'linux-lacros-tester-rel': {
+        'experiment_percentage': 100,
+        'args': [
+          '--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:'
+          'DesktopWidgetTest.GetWindowPlacement:'
+          'DesktopWidgetTest.MinimumSizeConstraints:'
+          'EditableComboboxTest.EndOrHomeMovesToBeginningOrEndOfText:'
+          'EditableComboboxTest.MenuCanAdaptToContentChange:'
+          'TextfieldTest.ContextMenuDisplayTest:'
+          'TooltipControllerTest*',
+        ],
+      },
     },
   },
   'views_unittests_wayland': {
@@ -2936,17 +2909,6 @@
       },
     },
   },
-  'wm_unittests': {
-    'remove_from': [
-      'linux-lacros-tester-rel', # https://crbug.com/1111979
-    ],
-    'modifications': {
-      # https://crbug.com/1111979
-      'linux-lacros-tester-fyi-rel': {
-        'experiment_percentage': 100,
-      },
-    },
-  },
   'xr_browser_tests': {
     'remove_from': [
       # Randomly hangs indefinitely https://crbug.com/1018896.
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 38a2170..798a6ed 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -1201,6 +1201,7 @@
         }
       },
       'content_shell_crash_test': {},
+      'extension_docserver_python_unittests': {},
       'flatbuffers_unittests': {},
       'grit_python_unittests': {},
       'metrics_python_tests': {},
@@ -1948,6 +1949,9 @@
 
     'gpu_angle_end2end_gtests': {
       'angle_end2end_tests': {
+        'android_args': [
+          '--shard-timeout=180'
+        ],
         'desktop_args': [
           '--use-gpu-in-tests',
         ],
@@ -3359,7 +3363,6 @@
       'accessibility_unittests': {},
       'aura_unittests': {},
       'browser_tests': {
-        'experiment_percentage': 100,
         'swarming': {
           'shards': 10
         },
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 0dd5865..7de5622a 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -2018,7 +2018,6 @@
           'all',
         ],
         'mixins': [
-          'fuchsia_aemu',
           'linux-xenial',
         ],
         'swarming': {
@@ -2039,7 +2038,6 @@
         'browser_config': 'web-engine-shell',
         'os_type': 'linux',
         'mixins': [
-          'fuchsia_aemu',
           'linux-xenial',
         ],
         'swarming': {
@@ -4082,7 +4080,6 @@
         'browser_config': 'web-engine-shell',
         'os_type': 'linux',
         'mixins': [
-          'fuchsia_aemu',
           'linux-xenial',
         ],
         'swarming': {
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 629c546..37ea27a 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -6834,7 +6834,7 @@
                 {
                     "name": "Enabled",
                     "params": {
-                        "enable_subresource_server_redirect": "false"
+                        "enable_subresource_server_redirect": "true"
                     },
                     "enable_features": [
                         "SubresourceRedirect"
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index e59d2bc..241ddda 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -689,5 +689,9 @@
          base::FeatureList::IsEnabled(kCompressParkableStrings);
 }
 
+// Controls whether to auto select on contextual menu click in Chrome OS.
+const base::Feature kCrOSAutoSelect{"CrOSAutoSelect",
+                                    base::FEATURE_DISABLED_BY_DEFAULT};
+
 }  // namespace features
 }  // namespace blink
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
index 5e42010..882327f6 100644
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -275,6 +275,8 @@
 BLINK_COMMON_EXPORT extern const base::Feature kParkableStringsToDisk;
 BLINK_COMMON_EXPORT bool IsParkableStringsToDiskEnabled();
 
+BLINK_COMMON_EXPORT extern const base::Feature kCrOSAutoSelect;
+
 }  // namespace features
 }  // namespace blink
 
diff --git a/third_party/blink/public/common/tokens/multi_token.h b/third_party/blink/public/common/tokens/multi_token.h
index 7922bea..77d60b55 100644
--- a/third_party/blink/public/common/tokens/multi_token.h
+++ b/third_party/blink/public/common/tokens/multi_token.h
@@ -57,7 +57,8 @@
   template <typename InputTokenType,
             typename = typename std::enable_if<
                 Base::template ValidType<InputTokenType>::kValue>::type>
-  explicit MultiToken(const InputTokenType& input_token)
+  // NOLINTNEXTLINE(google-explicit-constructor)
+  MultiToken(const InputTokenType& input_token)
       : value_(input_token.value()),
         variant_index_(Base::template TypeIndex<InputTokenType>::kValue) {}
 
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom
index e27aa92e..b83e0b6 100644
--- a/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -2700,6 +2700,7 @@
   kWebSharePolicyAllow = 3368,
   kWebSharePolicyDisallow = 3369,
   kFormAssociatedCustomElement = 3370,
+  kWindowClosed = 3371,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/public/web/web_frame_widget.h b/third_party/blink/public/web/web_frame_widget.h
index dc312b7..92e6b06 100644
--- a/third_party/blink/public/web/web_frame_widget.h
+++ b/third_party/blink/public/web/web_frame_widget.h
@@ -186,6 +186,9 @@
   // If the widget is currently selecting a range.
   virtual bool HandlingSelectRange() = 0;
 
+  // If fullscreen has been granted.
+  virtual bool IsFullscreenGranted() = 0;
+
   // Override the zoom level for testing.
   virtual void SetZoomLevelForTesting(double zoom_level) = 0;
 
diff --git a/third_party/blink/public/web/web_settings.h b/third_party/blink/public/web/web_settings.h
index b01fc0f1..5a970f6 100644
--- a/third_party/blink/public/web/web_settings.h
+++ b/third_party/blink/public/web/web_settings.h
@@ -53,7 +53,7 @@
  public:
   enum class ImageAnimationPolicy { kAllowed, kAnimateOnce, kNoAnimation };
 
-  enum class EditingBehavior { kMac, kWin, kUnix, kAndroid };
+  enum class EditingBehavior { kMac, kWin, kUnix, kAndroid, kChromeOS };
 
   enum class V8CacheOptions {
     kDefault,
diff --git a/third_party/blink/public/web/web_widget.h b/third_party/blink/public/web/web_widget.h
index f46079f..c39eeed 100644
--- a/third_party/blink/public/web/web_widget.h
+++ b/third_party/blink/public/web/web_widget.h
@@ -113,10 +113,6 @@
   // Called to resize the WebWidget.
   virtual void Resize(const WebSize&) {}
 
-  // Called to notify the WebWidget of entering/exiting fullscreen mode.
-  virtual void DidEnterFullscreen() {}
-  virtual void DidExitFullscreen() {}
-
   // Called to run through the entire set of document lifecycle phases needed
   // to render a frame of the web widget. This MUST be called before Paint,
   // and it may result in calls to WebViewClient::DidInvalidateRect (for
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni
index 7dcbbba..fcb6f7f 100644
--- a/third_party/blink/renderer/bindings/idl_in_modules.gni
+++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -418,6 +418,7 @@
           "//third_party/blink/renderer/modules/payments/address_init.idl",
           "//third_party/blink/renderer/modules/payments/android_pay_method_data.idl",
           "//third_party/blink/renderer/modules/payments/basic_card_request.idl",
+          "//third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl",
           "//third_party/blink/renderer/modules/payments/can_make_payment_event.idl",
           "//third_party/blink/renderer/modules/payments/can_make_payment_event_init.idl",
           "//third_party/blink/renderer/modules/payments/can_make_payment_response.idl",
diff --git a/third_party/blink/renderer/core/animation/css/css_animations.cc b/third_party/blink/renderer/core/animation/css/css_animations.cc
index 7410eb20..a954aa4 100644
--- a/third_party/blink/renderer/core/animation/css/css_animations.cc
+++ b/third_party/blink/renderer/core/animation/css/css_animations.cc
@@ -1736,7 +1736,8 @@
   }
 
   if (GetDocument().HasListenerType(Document::kTransitionCancelListener)) {
-    if (current_phase == Timing::kPhaseNone) {
+    if (current_phase == Timing::kPhaseNone &&
+        previous_phase_ != Timing::kPhaseAfter) {
       // Per the css-transitions-2 spec, transitioncancel is fired with the
       // "active time of the animation at the moment it was cancelled,
       // calculated using a fill mode of both".
diff --git a/third_party/blink/renderer/core/css/remote_font_face_source.cc b/third_party/blink/renderer/core/css/remote_font_face_source.cc
index 2e97ac1..e6126f5 100644
--- a/third_party/blink/renderer/core/css/remote_font_face_source.cc
+++ b/third_party/blink/renderer/core/css/remote_font_face_source.cc
@@ -124,7 +124,8 @@
 
       if (GetDocument()->GetFontPreloadManager().RenderingHasBegun()) {
         if (FinishedFromMemoryCache() ||
-            finished_before_document_rendering_begin_)
+            finished_before_document_rendering_begin_ ||
+            !has_been_requested_while_pending_)
           return kSwapPeriod;
         return kFailurePeriod;
       }
@@ -152,6 +153,7 @@
       phase_(kNoLimitExceeded),
       is_intervention_triggered_(ShouldTriggerWebFontsIntervention()),
       finished_before_document_rendering_begin_(false),
+      has_been_requested_while_pending_(false),
       finished_before_lcp_limit_(false) {
   DCHECK(face_);
   period_ = ComputePeriod();
@@ -357,6 +359,7 @@
   scoped_refptr<CSSCustomFontData> css_font_data = CSSCustomFontData::Create(
       this, period_ == kBlockPeriod ? CSSCustomFontData::kInvisibleFallback
                                     : CSSCustomFontData::kVisibleFallback);
+  has_been_requested_while_pending_ = true;
   return SimpleFontData::Create(temporary_font->PlatformData(), css_font_data);
 }
 
diff --git a/third_party/blink/renderer/core/css/remote_font_face_source.h b/third_party/blink/renderer/core/css/remote_font_face_source.h
index b62c7eb..6497b87b 100644
--- a/third_party/blink/renderer/core/css/remote_font_face_source.h
+++ b/third_party/blink/renderer/core/css/remote_font_face_source.h
@@ -157,6 +157,14 @@
   FontLoadHistograms histograms_;
   bool is_intervention_triggered_;
   bool finished_before_document_rendering_begin_;
+
+  // Indicates whether FontData has been requested while the font is still being
+  // loaded, in which case a fallback FontData is returned and used. If true, we
+  // will render contents with fallback font, and later if we would switch to
+  // the web font after it loads, there will be a layout shifting. Therefore, we
+  // don't need to worry about layout shifting when it's false.
+  bool has_been_requested_while_pending_;
+
   bool finished_before_lcp_limit_;
 };
 
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_document_state.h b/third_party/blink/renderer/core/display_lock/display_lock_document_state.h
index f452817..161dee2 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_document_state.h
+++ b/third_party/blink/renderer/core/display_lock/display_lock_document_state.h
@@ -54,7 +54,7 @@
   // Returns true if all activatable locks have been forced.
   bool ActivatableDisplayLocksForced() const;
 
-  class ScopedForceActivatableDisplayLocks {
+  class CORE_EXPORT ScopedForceActivatableDisplayLocks {
     STACK_ALLOCATED();
 
    public:
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index d90499e..958afc61 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -7118,7 +7118,8 @@
   if (font_matching_metrics_)
     return font_matching_metrics_.get();
   font_matching_metrics_ = std::make_unique<FontMatchingMetrics>(
-      IsInMainFrame(), UkmRecorder(), UkmSourceID());
+      IsInMainFrame(), UkmRecorder(), UkmSourceID(),
+      GetTaskRunner(TaskType::kInternalDefault));
   return font_matching_metrics_.get();
 }
 
diff --git a/third_party/blink/renderer/core/editing/editing_behavior.cc b/third_party/blink/renderer/core/editing/editing_behavior.cc
index 5cc41d9..e82fb9e 100644
--- a/third_party/blink/renderer/core/editing/editing_behavior.cc
+++ b/third_party/blink/renderer/core/editing/editing_behavior.cc
@@ -301,5 +301,7 @@
 STATIC_ASSERT_ENUM(WebSettings::EditingBehavior::kUnix, kEditingUnixBehavior);
 STATIC_ASSERT_ENUM(WebSettings::EditingBehavior::kAndroid,
                    kEditingAndroidBehavior);
+STATIC_ASSERT_ENUM(WebSettings::EditingBehavior::kChromeOS,
+                   kEditingChromeOSBehavior);
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/editing/editing_behavior.h b/third_party/blink/renderer/core/editing/editing_behavior.h
index 719119a..8dada2d5 100644
--- a/third_party/blink/renderer/core/editing/editing_behavior.h
+++ b/third_party/blink/renderer/core/editing/editing_behavior.h
@@ -79,7 +79,7 @@
   // On Mac, when processing a contextual click, the object being clicked upon
   // should be selected.
   bool ShouldSelectOnContextualMenuClick() const {
-    return type_ == kEditingMacBehavior;
+    return type_ == kEditingMacBehavior || type_ == kEditingChromeOSBehavior;
   }
 
   // On Mac, selecting backwards by word/line from the middle of a word/line,
diff --git a/third_party/blink/renderer/core/editing/editing_behavior_types.h b/third_party/blink/renderer/core/editing/editing_behavior_types.h
index 3ad68960..4a531808 100644
--- a/third_party/blink/renderer/core/editing/editing_behavior_types.h
+++ b/third_party/blink/renderer/core/editing/editing_behavior_types.h
@@ -41,7 +41,8 @@
   kEditingMacBehavior,
   kEditingWindowsBehavior,
   kEditingUnixBehavior,
-  kEditingAndroidBehavior
+  kEditingAndroidBehavior,
+  kEditingChromeOSBehavior
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/editing/finder/text_finder.cc b/third_party/blink/renderer/core/editing/finder/text_finder.cc
index 234e467e..231076d 100644
--- a/third_party/blink/renderer/core/editing/finder/text_finder.cc
+++ b/third_party/blink/renderer/core/editing/finder/text_finder.cc
@@ -442,10 +442,17 @@
           active_match_index_ + 1, identifier);
     }
   }
-  OwnerFrame().GetFrame()->GetDocument()->Markers().AddTextMatchMarker(
-      EphemeralRange(result_range),
-      found_active_match ? TextMatchMarker::MatchStatus::kActive
-                         : TextMatchMarker::MatchStatus::kInactive);
+  DocumentMarkerController& marker_controller =
+      OwnerFrame().GetFrame()->GetDocument()->Markers();
+  EphemeralRange ephemeral_result_range(result_range);
+  // Scroll() may have added a match marker to this range already.
+  if (!marker_controller.FirstMarkerIntersectingEphemeralRange(
+          ephemeral_result_range, DocumentMarker::MarkerTypes::TextMatch())) {
+    marker_controller.AddTextMatchMarker(
+        EphemeralRange(result_range),
+        found_active_match ? TextMatchMarker::MatchStatus::kActive
+                           : TextMatchMarker::MatchStatus::kInactive);
+  }
 
   find_matches_cache_.push_back(FindMatch(result_range, current_total_matches));
 }
@@ -825,6 +832,21 @@
         OwnerFrame().GetFrameView()->ConvertToRootFrame(
             ComputeTextRect(EphemeralRange(context->range))));
   }
+
+  // DidFindMatch will race against this to add a text match marker to this
+  // range. In the case where the match is hidden and the beforematch event (or
+  // anything else) reveals the range in between DidFindMatch and this function,
+  // we need to add the marker again or else it won't show up at all.
+  EphemeralRange ephemeral_range(context->range);
+  DocumentMarkerController& marker_controller =
+      OwnerFrame().GetFrame()->GetDocument()->Markers();
+  if (!context->options.run_synchronously_for_testing &&
+      !marker_controller.FirstMarkerIntersectingEphemeralRange(
+          ephemeral_range, DocumentMarker::MarkerTypes::TextMatch())) {
+    marker_controller.AddTextMatchMarker(ephemeral_range,
+                                         TextMatchMarker::MatchStatus::kActive);
+    SetMarkerActive(context->range, true);
+  }
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/editing/finder/text_finder_test.cc b/third_party/blink/renderer/core/editing/finder/text_finder_test.cc
index 9f2e2860..8efb287b 100644
--- a/third_party/blink/renderer/core/editing/finder/text_finder_test.cc
+++ b/third_party/blink/renderer/core/editing/finder/text_finder_test.cc
@@ -11,12 +11,15 @@
 #include "third_party/blink/public/web/web_document.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_source_code.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
+#include "third_party/blink/renderer/core/display_lock/display_lock_document_state.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/node_list.h"
 #include "third_party/blink/renderer/core/dom/range.h"
 #include "third_party/blink/renderer/core/dom/shadow_root.h"
 #include "third_party/blink/renderer/core/editing/ephemeral_range.h"
 #include "third_party/blink/renderer/core/editing/finder/find_in_page_coordinates.h"
+#include "third_party/blink/renderer/core/editing/markers/document_marker.h"
+#include "third_party/blink/renderer/core/editing/markers/document_marker_controller.h"
 #include "third_party/blink/renderer/core/frame/frame_test_helpers.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
 #include "third_party/blink/renderer/core/frame/visual_viewport.h"
@@ -25,6 +28,8 @@
 #include "third_party/blink/renderer/core/layout/text_autosizer.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/script/classic_script.h"
+#include "third_party/blink/renderer/core/testing/sim/sim_request.h"
+#include "third_party/blink/renderer/core/testing/sim/sim_test.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
@@ -61,6 +66,14 @@
   Persistent<TextFinder> text_finder_;
 };
 
+class TextFinderSimTest : public SimTest {
+ public:
+  TextFinder& GetTextFinder() {
+    return WebLocalFrameImpl::FromFrame(GetDocument().GetFrame())
+        ->EnsureTextFinder();
+  }
+};
+
 v8::Local<v8::Value> TextFinderTest::EvalJs(const std::string& script) {
   return ClassicScript::CreateUnspecifiedScript(
              ScriptSourceCode(script.c_str()))
@@ -715,6 +728,47 @@
 // TODO(jarhar): Write more tests here once we decide on a behavior here:
 // https://github.com/WICG/display-locking/issues/150
 
+TEST_F(TextFinderSimTest, BeforeMatchEventAsyncExpandHighlight) {
+  SimRequest request("https://example.com/test.html", "text/html");
+  LoadURL("https://example.com/test.html");
+  request.Complete(R"HTML(
+    <!DOCTYPE html>
+    <style>
+      .hidden {
+        content-visibility: hidden-matchable;
+      }
+    </style>
+
+    <div id=hiddenid class=hidden>hidden</div>
+
+    <script>
+      hiddenid.addEventListener('beforematch', () => {
+        setTimeout(() => {
+          hiddenid.classList.remove('hidden');
+        }, 0);
+      });
+    </script>
+  )HTML");
+  Compositor().BeginFrame();
+
+  auto forced_activatable_locks = GetDocument()
+                                      .GetDisplayLockDocumentState()
+                                      .GetScopedForceActivatableLocks();
+  GetDocument().UpdateStyleAndLayout(DocumentUpdateReason::kFindInPage);
+  GetTextFinder().Find(/*identifier=*/0, WebString(String("hidden")),
+                       *mojom::blink::FindOptions::New(),
+                       /*wrap_within_frame=*/false);
+
+  Compositor().BeginFrame();
+  Compositor().BeginFrame();
+
+  HeapVector<Member<DocumentMarker>> markers =
+      GetDocument().Markers().Markers();
+  ASSERT_EQ(markers.size(), 1u);
+  DocumentMarker* marker = markers[0];
+  EXPECT_TRUE(marker->GetType() == DocumentMarker::kTextMatch);
+}
+
 TEST_F(TextFinderTest, FindTextAcrossCommentNode) {
   GetDocument().body()->setInnerHTML(
       "<span>abc</span><!--comment--><span>def</span>");
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
index 9d7c0ef..29da30b4 100644
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -92,11 +92,29 @@
 }
 
 // static
+ExecutionContext* ExecutionContext::ForCurrentRealm(
+    const v8::PropertyCallbackInfo<v8::Value>& info) {
+  auto ctx = info.GetIsolate()->GetCurrentContext();
+  if (ctx.IsEmpty())
+    return nullptr;
+  return ToExecutionContext(ctx);
+}
+
+// static
 ExecutionContext* ExecutionContext::ForRelevantRealm(
     const v8::FunctionCallbackInfo<v8::Value>& info) {
   return ToExecutionContext(info.Holder()->CreationContext());
 }
 
+// static
+ExecutionContext* ExecutionContext::ForRelevantRealm(
+    const v8::PropertyCallbackInfo<v8::Value>& info) {
+  auto ctx = info.Holder()->CreationContext();
+  if (ctx.IsEmpty())
+    return nullptr;
+  return ToExecutionContext(ctx);
+}
+
 void ExecutionContext::SetLifecycleState(mojom::FrameLifecycleState state) {
   if (lifecycle_state_ == state)
     return;
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
index 820f71d3..98ef1422 100644
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -130,9 +130,13 @@
   // Returns the ExecutionContext of the current realm.
   static ExecutionContext* ForCurrentRealm(
       const v8::FunctionCallbackInfo<v8::Value>&);
+  static ExecutionContext* ForCurrentRealm(
+      const v8::PropertyCallbackInfo<v8::Value>&);
   // Returns the ExecutionContext of the relevant realm for the receiver object.
   static ExecutionContext* ForRelevantRealm(
       const v8::FunctionCallbackInfo<v8::Value>&);
+  static ExecutionContext* ForRelevantRealm(
+      const v8::PropertyCallbackInfo<v8::Value>&);
 
   virtual bool IsWindow() const { return false; }
   virtual bool IsWorkerOrWorkletGlobalScope() const { return false; }
diff --git a/third_party/blink/renderer/core/exported/web_frame_test.cc b/third_party/blink/renderer/core/exported/web_frame_test.cc
index dc54a49..64587ed 100644
--- a/third_party/blink/renderer/core/exported/web_frame_test.cc
+++ b/third_party/blink/renderer/core/exported/web_frame_test.cc
@@ -7847,7 +7847,7 @@
   Element* div_fullscreen = document->getElementById("div1");
   Fullscreen::RequestFullscreen(*div_fullscreen);
   EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
@@ -7885,7 +7885,7 @@
   Element* div_fullscreen = document->getElementById("div1");
   Fullscreen::RequestFullscreen(*div_fullscreen);
   EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
@@ -7908,7 +7908,7 @@
 
   // Verify that the viewports are scrollable upon exiting fullscreen.
   EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
@@ -7952,7 +7952,7 @@
       frame, mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*document->documentElement());
   EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   EXPECT_EQ(document->documentElement(),
             Fullscreen::FullscreenElementFrom(*document));
 
@@ -8002,7 +8002,7 @@
       frame, mojom::UserActivationNotificationType::kTest);
   Element* div_fullscreen = document->getElementById("div1");
   Fullscreen::RequestFullscreen(*div_fullscreen);
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
 
   // Verify that the element is sized to the viewport.
@@ -8041,14 +8041,14 @@
       top_doc->GetFrame(), mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*top_body);
 
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
 
   LocalFrame::NotifyUserActivation(
       iframe_doc->GetFrame(), mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*iframe_body);
 
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   Microtask::PerformCheckpoint(V8PerIsolateData::MainThreadIsolate());
   UpdateAllLifecyclePhases(web_view_impl);
 
@@ -8057,7 +8057,7 @@
   EXPECT_EQ(iframe, Fullscreen::FullscreenElementFrom(*top_doc));
   EXPECT_EQ(iframe_body, Fullscreen::FullscreenElementFrom(*iframe_doc));
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
 
   // We should now have fully exited fullscreen.
@@ -8092,7 +8092,7 @@
   LocalFrame::NotifyUserActivation(
       frame, mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*frame->GetDocument()->documentElement());
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_EQ(384, layout_view->LogicalWidth().Floor());
   EXPECT_EQ(640, layout_view->LogicalHeight().Floor());
@@ -8100,7 +8100,7 @@
   EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
   EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_EQ(320, layout_view->LogicalWidth().Floor());
   EXPECT_EQ(533, layout_view->LogicalHeight().Floor());
@@ -8130,7 +8130,7 @@
   LocalFrame::NotifyUserActivation(
       frame, mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*frame->GetDocument()->documentElement());
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_EQ(384, layout_view->LogicalWidth().Floor());
   EXPECT_EQ(640, layout_view->LogicalHeight().Floor());
@@ -8149,7 +8149,7 @@
   EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
   EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_EQ(320, layout_view->LogicalWidth().Floor());
   EXPECT_EQ(192, layout_view->LogicalHeight().Floor());
@@ -8196,7 +8196,7 @@
     Fullscreen::RequestFullscreen(*frame->GetDocument()->body());
   }
 
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   client.screen_info_.rect = gfx::Rect(screen_size_minus_status_bars.width,
                                        screen_size_minus_status_bars.height);
@@ -8209,7 +8209,7 @@
   EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
   EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   client.screen_info_.rect = gfx::Rect(screen_size_minus_status_bars.width,
                                        screen_size_minus_status_bars.height);
@@ -8255,7 +8255,7 @@
   LocalFrame::NotifyUserActivation(
       frame, mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*frame->GetDocument()->documentElement());
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
 
   // Entering fullscreen causes layout size and page scale limits to be
@@ -8272,7 +8272,7 @@
   KURL test_url = ToKURL("about:blank");
   WebLocalFrame* web_frame = web_view_helper.LocalMainFrame();
   frame_test_helpers::LoadHTMLString(web_frame, kSource, test_url);
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
 
   // Make sure the new page's layout size and scale factor limits aren't
@@ -8311,7 +8311,7 @@
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()), SK_AlphaOPAQUE);
 
   video->webkitEnterFullscreen();
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_TRUE(video->IsFullscreen());
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()),
@@ -8353,7 +8353,7 @@
   EXPECT_EQ(actively_painting_layers, 0);
   EXPECT_TRUE(found_video_layer);
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_FALSE(video->IsFullscreen());
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()), SK_AlphaOPAQUE);
@@ -8384,13 +8384,13 @@
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()), SK_AlphaOPAQUE);
 
   video->webkitEnterFullscreen();
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_TRUE(video->IsFullscreen());
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()),
             SK_AlphaTRANSPARENT);
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_FALSE(video->IsFullscreen());
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()), SK_AlphaOPAQUE);
@@ -8429,7 +8429,7 @@
   document->SetIsXrOverlay(true, overlay);
   EXPECT_TRUE(document->IsXrOverlay());
 
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_TRUE(Fullscreen::IsFullscreenElement(*overlay));
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()),
@@ -8499,7 +8499,7 @@
   });
   EXPECT_TRUE(found_inner_layer);
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases(web_view_impl);
   EXPECT_FALSE(Fullscreen::IsFullscreenElement(*overlay));
   EXPECT_EQ(SkColorGetA(layer_tree_host->background_color()), SK_AlphaOPAQUE);
@@ -13241,14 +13241,14 @@
   LocalFrame::NotifyUserActivation(
       frame, mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*element);
-  WebView().MainFrameWidget()->DidEnterFullscreen();
+  WebView().DidEnterFullscreen();
 
   // Page scale factor must be 1.0 during fullscreen for elements to be sized
   // properly.
   EXPECT_EQ(1.0f, WebView().PageScaleFactor());
 
   // Confirm that exiting fullscreen restores back to default values.
-  WebView().MainFrameWidget()->DidExitFullscreen();
+  WebView().DidExitFullscreen();
   WebView().MainFrameWidget()->UpdateAllLifecyclePhases(
       DocumentUpdateReason::kTest);
 
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 500fd32..5844535 100644
--- a/third_party/blink/renderer/core/exported/web_view_test.cc
+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -2548,7 +2548,7 @@
   LocalFrame::NotifyUserActivation(
       frame, mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*element);
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases();
 
   // Assert the scroll position on the document element doesn't change.
@@ -2556,7 +2556,7 @@
 
   web_view_impl->MainFrameImpl()->SetScrollOffset(WebSize(0, 2100));
 
-  web_view_impl->MainFrameWidget()->DidExitFullscreen();
+  web_view_impl->DidExitFullscreen();
   UpdateAllLifecyclePhases();
 
   EXPECT_EQ(2100, web_view_impl->MainFrameImpl()->GetScrollOffset().height);
@@ -2578,7 +2578,7 @@
   LocalFrame::NotifyUserActivation(
       frame, mojom::UserActivationNotificationType::kTest);
   Fullscreen::RequestFullscreen(*element);
-  web_view_impl->MainFrameWidget()->DidEnterFullscreen();
+  web_view_impl->DidEnterFullscreen();
   UpdateAllLifecyclePhases();
 
   EXPECT_EQ(SK_ColorYELLOW, web_view_impl->BackgroundColor());
diff --git a/third_party/blink/renderer/core/frame/dactyloscoper.cc b/third_party/blink/renderer/core/frame/dactyloscoper.cc
index b05b961..16eac54 100644
--- a/third_party/blink/renderer/core/frame/dactyloscoper.cc
+++ b/third_party/blink/renderer/core/frame/dactyloscoper.cc
@@ -37,7 +37,7 @@
 void Dactyloscoper::RecordDirectSurface(ExecutionContext* context,
                                         WebFeature feature,
                                         IdentifiableToken value) {
-  if (!IdentifiabilityStudySettings::Get()->IsActive())
+  if (!IdentifiabilityStudySettings::Get()->IsActive() || !context)
     return;
   auto* window = DynamicTo<LocalDOMWindow>(context);
   if (!window)
@@ -51,7 +51,7 @@
 void Dactyloscoper::RecordDirectSurface(ExecutionContext* context,
                                         WebFeature feature,
                                         String str) {
-  if (!IdentifiabilityStudySettings::Get()->IsActive())
+  if (!IdentifiabilityStudySettings::Get()->IsActive() || !context)
     return;
   if (str.IsEmpty())
     return;
@@ -62,7 +62,7 @@
 void Dactyloscoper::RecordDirectSurface(ExecutionContext* context,
                                         WebFeature feature,
                                         Vector<String> strs) {
-  if (!IdentifiabilityStudySettings::Get()->IsActive())
+  if (!IdentifiabilityStudySettings::Get()->IsActive() || !context)
     return;
   if (strs.IsEmpty())
     return;
diff --git a/third_party/blink/renderer/core/frame/settings.cc b/third_party/blink/renderer/core/frame/settings.cc
index bd9b9c9..ad18faa6 100644
--- a/third_party/blink/renderer/core/frame/settings.cc
+++ b/third_party/blink/renderer/core/frame/settings.cc
@@ -28,8 +28,10 @@
 
 #include <memory>
 
+#include "base/feature_list.h"
 #include "base/memory/ptr_util.h"
 #include "build/build_config.h"
+#include "third_party/blink/public/common/features.h"
 #include "third_party/blink/renderer/platform/graphics/dark_mode_settings.h"
 
 namespace blink {
@@ -49,6 +51,10 @@
       kEditingWindowsBehavior
 #elif defined(OS_ANDROID)
       kEditingAndroidBehavior
+#elif defined(OS_CHROMEOS)
+      base::FeatureList::IsEnabled(features::kCrOSAutoSelect)
+          ? kEditingChromeOSBehavior
+          : kEditingUnixBehavior
 #else  // Rest of the UNIX-like systems
       kEditingUnixBehavior
 #endif
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc
index d0ef01c..8c4a4f06 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc
@@ -619,6 +619,16 @@
         visual_properties.capture_sequence_number));
   }
 
+  if (!View()->AutoResizeMode()) {
+    if (visual_properties.is_fullscreen_granted != is_fullscreen_granted_) {
+      is_fullscreen_granted_ = visual_properties.is_fullscreen_granted;
+      if (is_fullscreen_granted_)
+        View()->DidEnterFullscreen();
+      else
+        View()->DidExitFullscreen();
+    }
+  }
+
   Client()->UpdateVisualProperties(visual_properties);
 }
 
@@ -989,6 +999,10 @@
   widget_base_->UpdateVisualProperties(visual_properties);
 }
 
+bool WebFrameWidgetBase::IsFullscreenGranted() {
+  return is_fullscreen_granted_;
+}
+
 void WebFrameWidgetBase::AutoscrollStart(const gfx::PointF& position) {
   GetAssociatedFrameWidgetHost()->AutoscrollStart(std::move(position));
 }
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.h b/third_party/blink/renderer/core/frame/web_frame_widget_base.h
index f0d5c4e..6bcc43c0 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_base.h
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.h
@@ -302,6 +302,7 @@
 #endif
   void ApplyVisualProperties(
       const VisualProperties& visual_properties) override;
+  bool IsFullscreenGranted() override;
 
   // WidgetBaseClient methods.
   void RecordDispatchRafAlignedInputTime(
@@ -610,6 +611,9 @@
   base::Optional<gfx::Point> host_context_menu_location_;
   uint32_t last_capture_sequence_number_ = 0u;
 
+  // Indicates whether tab-initiated fullscreen was granted.
+  bool is_fullscreen_granted_ = false;
+
   friend class WebViewImpl;
   friend class ReportTimeSwapPromise;
 };
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 3c4ad18e..66294a0 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
@@ -275,14 +275,6 @@
   view->SetLayoutSize(layout_size);
 }
 
-void WebFrameWidgetImpl::DidEnterFullscreen() {
-  View()->DidEnterFullscreen();
-}
-
-void WebFrameWidgetImpl::DidExitFullscreen() {
-  View()->DidExitFullscreen();
-}
-
 void WebFrameWidgetImpl::SetSuppressFrameRequestsWorkaroundFor704763Only(
     bool suppress_frame_requests) {
   GetPage()->Animator().SetSuppressFrameRequestsWorkaroundFor704763Only(
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
index e619d3fdf..cf61ab3 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
@@ -88,8 +88,6 @@
       scoped_refptr<base::SingleThreadTaskRunner> cleanup_runner) override;
   WebSize Size() override;
   void Resize(const WebSize&) override;
-  void DidEnterFullscreen() override;
-  void DidExitFullscreen() override;
   void UpdateLifecycle(WebLifecycleUpdate requested_update,
                        DocumentUpdateReason reason) override;
   void ThemeChanged() override;
diff --git a/third_party/blink/renderer/core/frame/web_view_frame_widget.cc b/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
index 8d769ba..1e55a5fa 100644
--- a/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
+++ b/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
@@ -56,14 +56,6 @@
   web_view_->Resize(size);
 }
 
-void WebViewFrameWidget::DidEnterFullscreen() {
-  web_view_->DidEnterFullscreen();
-}
-
-void WebViewFrameWidget::DidExitFullscreen() {
-  web_view_->DidExitFullscreen();
-}
-
 void WebViewFrameWidget::SetSuppressFrameRequestsWorkaroundFor704763Only(
     bool suppress_frame_requests) {
   web_view_->SetSuppressFrameRequestsWorkaroundFor704763Only(
diff --git a/third_party/blink/renderer/core/frame/web_view_frame_widget.h b/third_party/blink/renderer/core/frame/web_view_frame_widget.h
index a24bb45..2b22804 100644
--- a/third_party/blink/renderer/core/frame/web_view_frame_widget.h
+++ b/third_party/blink/renderer/core/frame/web_view_frame_widget.h
@@ -58,8 +58,6 @@
       scoped_refptr<base::SingleThreadTaskRunner> cleanup_runner) override;
   WebSize Size() override;
   void Resize(const WebSize&) override;
-  void DidEnterFullscreen() override;
-  void DidExitFullscreen() override;
   void UpdateLifecycle(WebLifecycleUpdate requested_update,
                        DocumentUpdateReason reason) override;
   void ThemeChanged() override;
diff --git a/third_party/blink/renderer/core/frame/window.idl b/third_party/blink/renderer/core/frame/window.idl
index d7fb322..339b2f3 100644
--- a/third_party/blink/renderer/core/frame/window.idl
+++ b/third_party/blink/renderer/core/frame/window.idl
@@ -50,7 +50,7 @@
     [Replaceable, MeasureAs=BarPropToolbar] readonly attribute BarProp toolbar;
     attribute DOMString status;
     [CrossOrigin, CallWith=Isolate] void close();
-    [CrossOrigin] readonly attribute boolean closed;
+    [HighEntropy=Direct, MeasureAs=WindowClosed, CrossOrigin] readonly attribute boolean closed;
     void stop();
     [CrossOrigin, CallWith=Isolate] void focus();
     [CrossOrigin] void blur();
diff --git a/third_party/blink/renderer/core/html/media/video_auto_fullscreen_test.cc b/third_party/blink/renderer/core/html/media/video_auto_fullscreen_test.cc
index 9128bc7..d6229f16 100644
--- a/third_party/blink/renderer/core/html/media/video_auto_fullscreen_test.cc
+++ b/third_party/blink/renderer/core/html/media/video_auto_fullscreen_test.cc
@@ -32,23 +32,21 @@
     std::move(callback).Run(true);
     Thread::Current()->GetTaskRunner()->PostTask(
         FROM_HERE,
-        WTF::Bind(
-            [](WebWidget* web_widget) { web_widget->DidEnterFullscreen(); },
-            WTF::Unretained(web_widget_)));
+        WTF::Bind([](WebViewImpl* web_view) { web_view->DidEnterFullscreen(); },
+                  WTF::Unretained(web_view_)));
   }
 
   void ExitFullscreen() override {
     Thread::Current()->GetTaskRunner()->PostTask(
         FROM_HERE,
-        WTF::Bind(
-            [](WebWidget* web_widget) { web_widget->DidExitFullscreen(); },
-            WTF::Unretained(web_widget_)));
+        WTF::Bind([](WebViewImpl* web_view) { web_view->DidExitFullscreen(); },
+                  WTF::Unretained(web_view_)));
   }
 
-  void set_frame_widget(WebWidget* web_widget) { web_widget_ = web_widget; }
+  void set_web_view(WebViewImpl* web_view) { web_view_ = web_view; }
 
  private:
-  WebWidget* web_widget_;
+  WebViewImpl* web_view_;
 };
 
 class VideoAutoFullscreenFrameClient
@@ -81,7 +79,7 @@
 
     video_ = To<HTMLVideoElement>(*GetDocument()->QuerySelector("video"));
 
-    frame_host_.set_frame_widget(GetWebView()->MainFrameWidget());
+    frame_host_.set_web_view(GetWebView());
   }
 
   WebViewImpl* GetWebView() { return web_view_helper_.GetWebView(); }
diff --git a/third_party/blink/renderer/core/layout/layout_view_test.cc b/third_party/blink/renderer/core/layout/layout_view_test.cc
index 125f676c..e3d0398 100644
--- a/third_party/blink/renderer/core/layout/layout_view_test.cc
+++ b/third_party/blink/renderer/core/layout/layout_view_test.cc
@@ -154,11 +154,13 @@
                              HitTestConfig{false, kEditingWindowsBehavior},
                              HitTestConfig{false, kEditingUnixBehavior},
                              HitTestConfig{false, kEditingAndroidBehavior},
+                             HitTestConfig{false, kEditingChromeOSBehavior},
                              // LayoutNG
                              HitTestConfig{true, kEditingMacBehavior},
                              HitTestConfig{true, kEditingWindowsBehavior},
                              HitTestConfig{true, kEditingUnixBehavior},
-                             HitTestConfig{true, kEditingAndroidBehavior}));
+                             HitTestConfig{true, kEditingAndroidBehavior},
+                             HitTestConfig{true, kEditingChromeOSBehavior}));
 
 TEST_P(LayoutViewHitTestTest, HitTestHorizontal) {
   LoadAhem();
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
index 949851b..872323e 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
@@ -357,6 +357,14 @@
                                  style.PaddingEnd().IsPercentOrCalc()))
     return false;
 
+  if (style.AspectRatio() &&
+      (style.LogicalMinHeight().IsPercentOrCalc() ||
+       style.LogicalMaxHeight().IsPercentOrCalc()) &&
+      input.percentage_resolution_block_size !=
+          node.GetLayoutBox()
+              ->IntrinsicLogicalWidthsPercentageResolutionBlockSize())
+    return false;
+
   return true;
 }
 
@@ -771,11 +779,12 @@
 
   // Calculate the %-block-size for our children up front. This allows us to
   // determine if |input|'s %-block-size is used.
+  const NGBoxStrut border_padding =
+      fragment_geometry.border + fragment_geometry.padding;
   bool uses_input_percentage_block_size = false;
   LayoutUnit child_percentage_resolution_block_size =
       CalculateChildPercentageBlockSizeForMinMax(
-          *constraint_space, *this,
-          fragment_geometry.border + fragment_geometry.padding,
+          *constraint_space, *this, border_padding,
           input.percentage_resolution_block_size,
           &uses_input_percentage_block_size);
 
@@ -825,14 +834,30 @@
                 (html_input_element &&
                  html_input_element->type() == input_type_names::kFile)) &&
                    Style().LogicalWidth().IsPercentOrCalc())) {
-    result.sizes.min_size =
-        (fragment_geometry.border + fragment_geometry.padding).InlineSum();
+    result.sizes.min_size = border_padding.InlineSum();
   }
 
   bool depends_on_percentage_block_size =
       uses_input_percentage_block_size &&
       result.depends_on_percentage_block_size;
 
+  if (Style().AspectRatio() &&
+      BlockLengthUnresolvable(*constraint_space, Style().LogicalHeight(),
+                              LengthResolvePhase::kLayout)) {
+    // If the block size will be computed from the aspect ratio, we need
+    // to take the max-block-size into account.
+    // https://drafts.csswg.org/css-sizing-4/#aspect-ratio
+    MinMaxSizes min_max = ComputeMinMaxInlineSizesFromAspectRatio(
+        *constraint_space, Style(), border_padding,
+        LengthResolvePhase::kIntrinsic);
+    result.sizes.min_size = min_max.ClampSizeToMinAndMax(result.sizes.min_size);
+    result.sizes.max_size = min_max.ClampSizeToMinAndMax(result.sizes.max_size);
+    depends_on_percentage_block_size =
+        depends_on_percentage_block_size ||
+        Style().LogicalMinHeight().IsPercentOrCalc() ||
+        Style().LogicalMaxHeight().IsPercentOrCalc();
+  }
+
   box_->SetIntrinsicLogicalWidthsFromNG(
       input.percentage_resolution_block_size, depends_on_percentage_block_size,
       /* child_depends_on_percentage_block_size */
diff --git a/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc b/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
index 78b35a01..08fea248 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
@@ -458,13 +458,23 @@
                                      MinMaxSizesFunc, logical_width);
   }
 
-  LayoutUnit max = ResolveMaxInlineLength(
-      space, style, border_padding, MinMaxSizesFunc, style.LogicalMaxWidth(),
-      LengthResolvePhase::kLayout);
-  LayoutUnit min =
+  // This implements the transferred min/max sizes per
+  // https://drafts.csswg.org/css-sizing-4/#aspect-ratio
+  if (style.AspectRatio() &&
+      BlockLengthUnresolvable(space, style.LogicalHeight(),
+                              LengthResolvePhase::kLayout)) {
+    MinMaxSizes transferred_min_max = ComputeMinMaxInlineSizesFromAspectRatio(
+        space, style, border_padding, LengthResolvePhase::kLayout);
+    extent = transferred_min_max.ClampSizeToMinAndMax(extent);
+  }
+
+  MinMaxSizes min_max{
       ResolveMinInlineLength(space, style, border_padding, MinMaxSizesFunc,
-                             min_length, LengthResolvePhase::kLayout);
-  return ConstrainByMinMax(extent, min, max);
+                             min_length, LengthResolvePhase::kLayout),
+      ResolveMaxInlineLength(space, style, border_padding, MinMaxSizesFunc,
+                             style.LogicalMaxWidth(),
+                             LengthResolvePhase::kLayout)};
+  return min_max.ClampSizeToMinAndMax(extent);
 }
 
 MinMaxSizes ComputeMinMaxBlockSize(
@@ -485,6 +495,40 @@
   return result;
 }
 
+MinMaxSizes ComputeMinMaxInlineSizesFromAspectRatio(
+    const NGConstraintSpace& constraint_space,
+    const ComputedStyle& style,
+    const NGBoxStrut& border_padding,
+    LengthResolvePhase phase) {
+  DCHECK(style.LogicalAspectRatio());
+
+  // The spec requires us to clamp these by the specified size (it calls it the
+  // preferred size). However, we actually don't need to worry about that,
+  // because we only use this if the width is indefinite.
+
+  // We do not need to compute the min/max inline sizes; as long as we always
+  // apply the transferred min/max size before the explicit min/max size, the
+  // result will be identical.
+
+  LogicalSize ratio = *style.LogicalAspectRatio();
+  MinMaxSizes block_min_max =
+      ComputeMinMaxBlockSize(constraint_space, style, border_padding,
+                             /* content_size */ kIndefiniteSize);
+  MinMaxSizes transferred_min_max = {LayoutUnit(), LayoutUnit::Max()};
+  if (block_min_max.min_size > LayoutUnit()) {
+    transferred_min_max.min_size = InlineSizeFromAspectRatio(
+        border_padding, ratio, style.BoxSizing(), block_min_max.min_size);
+  }
+  if (block_min_max.max_size != LayoutUnit::Max()) {
+    transferred_min_max.max_size = InlineSizeFromAspectRatio(
+        border_padding, ratio, style.BoxSizing(), block_min_max.max_size);
+  }
+  // Minimum size wins over maximum size.
+  transferred_min_max.max_size =
+      std::max(transferred_min_max.max_size, transferred_min_max.min_size);
+  return transferred_min_max;
+}
+
 namespace {
 
 // Computes the block-size for a fragment, ignoring the fixed block-size if set.
diff --git a/third_party/blink/renderer/core/layout/ng/ng_length_utils.h b/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
index 050bace..30ae65e 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
@@ -318,6 +318,14 @@
     const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
         nullptr);
 
+// Computes the transferred min/max inline sizes from the min/max block
+// sizes and the aspect ratio.
+MinMaxSizes ComputeMinMaxInlineSizesFromAspectRatio(
+    const NGConstraintSpace&,
+    const ComputedStyle&,
+    const NGBoxStrut& border_padding,
+    LengthResolvePhase);
+
 // Tries to compute the inline size of a node from its block size and
 // aspect ratio. If there is no aspect ratio or the block size is indefinite,
 // returns kIndefiniteSize.
diff --git a/third_party/blink/renderer/core/loader/font_preload_manager_test.cc b/third_party/blink/renderer/core/loader/font_preload_manager_test.cc
index 489755d..cbafcb4 100644
--- a/third_party/blink/renderer/core/loader/font_preload_manager_test.cc
+++ b/third_party/blink/renderer/core/loader/font_preload_manager_test.cc
@@ -235,7 +235,44 @@
                                       "font/woff2");
 
   LoadURL("https://example.com");
-  main_resource.Complete(R"HTML(
+  main_resource.Write(R"HTML(
+    <!doctype html>
+    <style>
+      @font-face {
+        font-family: custom-font;
+        src: url(https://example.com/Ahem.woff2) format("woff2");
+        font-display: optional;
+      }
+      #target {
+        font: 25px/1 custom-font, monospace;
+      }
+    </style>
+    <span id=target>0123456789</span>
+    <script>document.fonts.load('25px/1 custom-font');</script>
+  )HTML");
+
+  // Now rendering has started, as there's no blocking resources.
+  EXPECT_FALSE(Compositor().DeferMainFrameUpdate());
+  EXPECT_EQ(State::kUnblocked, GetState());
+
+  font_resource.Complete(ReadAhemWoff2());
+
+  // Although the optional web font isn't preloaded, it finished loading before
+  // the first time we try to render with it. Therefore it's used.
+  Compositor().BeginFrame().Contains(SimCanvas::kText);
+  EXPECT_EQ(250, GetTarget()->OffsetWidth());
+  EXPECT_FALSE(GetTargetFont().ShouldSkipDrawing());
+
+  main_resource.Finish();
+}
+
+TEST_F(FontPreloadManagerTest, OptionalFontMissingFirstFrame) {
+  SimRequest main_resource("https://example.com", "text/html");
+  SimSubresourceRequest font_resource("https://example.com/Ahem.woff2",
+                                      "font/woff2");
+
+  LoadURL("https://example.com");
+  main_resource.Write(R"HTML(
     <!doctype html>
     <style>
       @font-face {
@@ -254,13 +291,20 @@
   EXPECT_FALSE(Compositor().DeferMainFrameUpdate());
   EXPECT_EQ(State::kUnblocked, GetState());
 
-  font_resource.Complete(ReadAhemWoff2());
-
-  // The 'optional' web font isn't used, as it didn't finish loading before
-  // rendering started. Text is rendered in visible fallback.
-  Compositor().BeginFrame().Contains(SimCanvas::kText);
+  // We render visible fallback as the 'optional' web font hasn't loaded.
+  Compositor().BeginFrame();
   EXPECT_GT(250, GetTarget()->OffsetWidth());
   EXPECT_FALSE(GetTargetFont().ShouldSkipDrawing());
+
+  font_resource.Complete(ReadAhemWoff2());
+
+  // Since we have rendered fallback for the 'optional' font, even after it
+  // finishes loading, we shouldn't use it, as otherwise there's a relayout.
+  Compositor().BeginFrame();
+  EXPECT_GT(250, GetTarget()->OffsetWidth());
+  EXPECT_FALSE(GetTargetFont().ShouldSkipDrawing());
+
+  main_resource.Finish();
 }
 
 TEST_F(FontPreloadManagerTest, OptionalFontRemoveAndReadd) {
diff --git a/third_party/blink/renderer/core/testing/internal_settings.cc b/third_party/blink/renderer/core/testing/internal_settings.cc
index aa94f43..515fc55 100644
--- a/third_party/blink/renderer/core/testing/internal_settings.cc
+++ b/third_party/blink/renderer/core/testing/internal_settings.cc
@@ -322,6 +322,8 @@
     GetSettings()->SetEditingBehaviorType(kEditingUnixBehavior);
   else if (EqualIgnoringASCIICase(editing_behavior, "android"))
     GetSettings()->SetEditingBehaviorType(kEditingAndroidBehavior);
+  else if (EqualIgnoringASCIICase(editing_behavior, "chromeos"))
+    GetSettings()->SetEditingBehaviorType(kEditingChromeOSBehavior);
   else
     exception_state.ThrowDOMException(DOMExceptionCode::kSyntaxError,
                                       "The editing behavior type provided ('" +
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
index 50ea000..7aa38872 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
@@ -110,6 +110,7 @@
       network::mojom::CredentialsMode,
       RejectCoepUnsafeNone reject_coep_unsafe_none) override;
   bool IsOffMainThreadScriptFetchDisabled() override;
+  WorkerToken GetWorkerToken() const override { return token_; }
 
   // Called by the bindings (dedicated_worker_global_scope.idl).
   const String name() const;
@@ -142,8 +143,6 @@
 
   DedicatedWorkerObjectProxy& WorkerObjectProxy() const;
 
-  // TODO(chrisha): Lift this up to WorkerGlobalScope once all worker types
-  // have tokens.
   const DedicatedWorkerToken token_;
   Member<WorkerAnimationFrameProvider> animation_frame_provider_;
   RejectCoepUnsafeNone reject_coep_unsafe_none_ = RejectCoepUnsafeNone(false);
diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.h b/third_party/blink/renderer/core/workers/shared_worker_global_scope.h
index d6ae45c..18ae4df 100644
--- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.h
@@ -87,6 +87,7 @@
       WorkerResourceTimingNotifier& outside_resource_timing_notifier,
       network::mojom::CredentialsMode,
       RejectCoepUnsafeNone reject_coep_unsafe_none) override;
+  WorkerToken GetWorkerToken() const override { return token_; }
 
   // shared_worker_global_scope.idl
   const String name() const;
@@ -108,8 +109,6 @@
 
   void ExceptionThrown(ErrorEvent*) override;
 
-  // TODO(chrisha): Lift this up to WorkerGlobalScope once all worker types
-  // have tokens.
   const SharedWorkerToken token_;
   Member<ApplicationCacheHostForWorker> appcache_host_;
 };
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h
index 3fa2c2c..e2f52c2 100644
--- a/third_party/blink/renderer/core/workers/worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.h
@@ -32,6 +32,7 @@
 #include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/public/common/loader/worker_main_script_load_parameters.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h"
 #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
 #include "third_party/blink/renderer/core/core_export.h"
@@ -212,6 +213,10 @@
 
   ukm::SourceId UkmSourceID() const override { return ukm_source_id_; }
 
+  // Returns the token uniquely identifying this worker. The token type will
+  // match the actual worker type.
+  virtual WorkerToken GetWorkerToken() const = 0;
+
  protected:
   WorkerGlobalScope(std::unique_ptr<GlobalScopeCreationParams>,
                     WorkerThread*,
diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h b/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
index 5223433..18ee4c0 100644
--- a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
+++ b/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
@@ -104,8 +104,12 @@
     NOTREACHED();
   }
   bool IsOffMainThreadScriptFetchDisabled() override { return true; }
+  WorkerToken GetWorkerToken() const override { return token_; }
 
   void ExceptionThrown(ErrorEvent*) override {}
+
+ private:
+  DedicatedWorkerToken token_;
 };
 
 class WorkerThreadForTest : public WorkerThread {
diff --git a/third_party/blink/renderer/modules/payments/BUILD.gn b/third_party/blink/renderer/modules/payments/BUILD.gn
index ed4b9f2..32ba3124 100644
--- a/third_party/blink/renderer/modules/payments/BUILD.gn
+++ b/third_party/blink/renderer/modules/payments/BUILD.gn
@@ -51,6 +51,8 @@
     "payment_state_resolver.h",
     "payments_validators.cc",
     "payments_validators.h",
+    "secure_payment_confirmation_helper.cc",
+    "secure_payment_confirmation_helper.h",
     "update_payment_details_function.cc",
     "update_payment_details_function.h",
   ]
diff --git a/third_party/blink/renderer/modules/payments/idls.gni b/third_party/blink/renderer/modules/payments/idls.gni
index ea997922..407fbe4 100644
--- a/third_party/blink/renderer/modules/payments/idls.gni
+++ b/third_party/blink/renderer/modules/payments/idls.gni
@@ -21,6 +21,7 @@
   "address_init.idl",
   "android_pay_method_data.idl",
   "basic_card_request.idl",
+  "secure_payment_confirmation_request.idl",
   "can_make_payment_event_init.idl",
   "can_make_payment_response.idl",
   "image_object.idl",
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc
index a0e2ac8..2ccd3bae 100644
--- a/third_party/blink/renderer/modules/payments/payment_request.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -51,6 +51,7 @@
 #include "third_party/blink/renderer/modules/payments/payment_request_update_event.h"
 #include "third_party/blink/renderer/modules/payments/payment_response.h"
 #include "third_party/blink/renderer/modules/payments/payments_validators.h"
+#include "third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h"
 #include "third_party/blink/renderer/modules/payments/update_payment_details_function.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
@@ -411,14 +412,14 @@
     output->api_version = android_pay->apiVersion();
 }
 
-void StringifyAndParseMethodSpecificData(v8::Isolate* isolate,
+void StringifyAndParseMethodSpecificData(ExecutionContext& execution_context,
                                          const String& supported_method,
                                          const ScriptValue& input,
                                          PaymentMethodDataPtr& output,
                                          ExceptionState& exception_state) {
   PaymentsValidators::ValidateAndStringifyObject(
-      isolate, "Payment method data", input, output->stringified_data,
-      exception_state);
+      execution_context.GetIsolate(), "Payment method data", input,
+      output->stringified_data, exception_state);
   if (exception_state.HadException())
     return;
 
@@ -427,15 +428,21 @@
   // data asynchronously. Do not throw exceptions here.
   if (supported_method == kGooglePayMethod ||
       supported_method == kAndroidPayMethod) {
-    SetAndroidPayMethodData(isolate, input, output, exception_state);
+    SetAndroidPayMethodData(execution_context.GetIsolate(), input, output,
+                            exception_state);
     if (exception_state.HadException())
       exception_state.ClearException();
   }
 
+  // Parse method data to avoid parsing JSON in the browser.
   if (supported_method == "basic-card") {
-    // Parses basic-card data to avoid parsing JSON in the browser.
     BasicCardHelper::ParseBasiccardData(input, output->supported_networks,
                                         exception_state);
+  } else if (supported_method == "secure-payment-confirmation" &&
+             RuntimeEnabledFeatures::SecurePaymentConfirmationEnabled(
+                 &execution_context)) {
+    SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData(
+        input, exception_state);
   }
 }
 
@@ -480,8 +487,8 @@
 
     if (modifier->hasData() && !modifier->data().IsEmpty()) {
       StringifyAndParseMethodSpecificData(
-          execution_context.GetIsolate(), modifier->supportedMethod(),
-          modifier->data(), output.back()->method_data, exception_state);
+          execution_context, modifier->supportedMethod(), modifier->data(),
+          output.back()->method_data, exception_state);
     } else {
       output.back()->method_data->stringified_data = "";
     }
@@ -677,9 +684,8 @@
     if (payment_method_data->hasData() &&
         !payment_method_data->data().IsEmpty()) {
       StringifyAndParseMethodSpecificData(
-          execution_context.GetIsolate(),
-          payment_method_data->supportedMethod(), payment_method_data->data(),
-          output.back(), exception_state);
+          execution_context, payment_method_data->supportedMethod(),
+          payment_method_data->data(), output.back(), exception_state);
       if (exception_state.HadException())
         continue;
 
@@ -1199,8 +1205,9 @@
           mojom::blink::ConsoleMessageSource::kJavaScript,
           mojom::blink::ConsoleMessageLevel::kError,
           "Payment method \"" + data->supported_method +
-          "\" cannot be used with \"requestShipping\", \"requestPayerName\", "
-          "\"requestPayerEmail\", or \"requestPayerPhone\"."));
+              "\" cannot be used with \"requestShipping\", "
+              "\"requestPayerName\", "
+              "\"requestPayerEmail\", or \"requestPayerPhone\"."));
     }
   }
 
diff --git a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.cc b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.cc
new file mode 100644
index 0000000..68e2bcd
--- /dev/null
+++ b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.cc
@@ -0,0 +1,47 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h"
+
+#include <stdint.h>
+
+#include "base/logging.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_secure_payment_confirmation_request.h"
+#include "third_party/blink/renderer/platform/bindings/exception_state.h"
+
+namespace blink {
+namespace {
+
+// Arbitrarily chosen limit of 1 hour.
+constexpr uint32_t kMaxTimeoutInMilliseconds = 1000 * 60 * 60;
+
+}  // namespace
+
+// static
+void SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData(
+    const ScriptValue& input,
+    ExceptionState& exception_state) {
+  DCHECK(!input.IsEmpty());
+  SecurePaymentConfirmationRequest* request =
+      NativeValueTraits<SecurePaymentConfirmationRequest>::NativeValue(
+          input.GetIsolate(), input.V8Value(), exception_state);
+  if (exception_state.HadException())
+    return;
+
+  if (request->instrumentId().IsEmpty()) {
+    exception_state.ThrowRangeError(
+        "The \"secure-payment-confirmation\" method requires a non-empty "
+        "\"instrumentId\" field.");
+    return;
+  }
+
+  if (request->hasTimeout() && request->timeout() > kMaxTimeoutInMilliseconds) {
+    exception_state.ThrowRangeError(
+        "The \"secure-payment-confirmation\" method requires at most 1 hour "
+        "\"timeout\" field.");
+    return;
+  }
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h
new file mode 100644
index 0000000..760b76a
--- /dev/null
+++ b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h
@@ -0,0 +1,26 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_SECURE_PAYMENT_CONFIRMATION_HELPER_H_
+#define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_SECURE_PAYMENT_CONFIRMATION_HELPER_H_
+
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
+
+namespace blink {
+
+class ScriptValue;
+class ExceptionState;
+
+class SecurePaymentConfirmationHelper {
+  STATIC_ONLY(SecurePaymentConfirmationHelper);
+
+ public:
+  // Parse 'secure-payment-confirmation' data in |input| or throw an exception.
+  static void ParseSecurePaymentConfirmationData(const ScriptValue& input,
+                                                 ExceptionState&);
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_SECURE_PAYMENT_CONFIRMATION_HELPER_H_
diff --git a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl
new file mode 100644
index 0000000..cb94e7a
--- /dev/null
+++ b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// https://github.com/rsolomakhin/secure-payment-confirmation#authenticating-a-payment
+
+enum SecurePaymentConfirmationAction {
+    "authenticate",
+};
+
+dictionary SecurePaymentConfirmationRequest {
+    SecurePaymentConfirmationAction action;
+    required DOMString instrumentId;
+    // Opaque data about the current transaction provided by the issuer. As the
+    // issuer is the RP of the credential, |networkData| provides protection
+    // against replay attacks.
+    required BufferSource networkData;
+    unsigned long timeout;
+    required USVString fallbackUrl;
+};
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task.cc b/third_party/blink/renderer/modules/scheduler/dom_task.cc
index 03e6a5f0..b3174c6 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task.cc
+++ b/third_party/blink/renderer/modules/scheduler/dom_task.cc
@@ -87,7 +87,6 @@
   v8::Isolate* isolate = script_state->GetIsolate();
   ScriptState::Scope scope(script_state);
   v8::TryCatch try_catch(isolate);
-  try_catch.SetVerbose(true);
 
   ExecutionContext* context = ExecutionContext::From(script_state);
   DCHECK(context);
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
index e906529..e4ae567 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
@@ -141,6 +141,7 @@
       RejectCoepUnsafeNone reject_coep_unsafe_none) override;
   void Dispose() override;
   InstalledScriptsManager* GetInstalledScriptsManager() override;
+  WorkerToken GetWorkerToken() const override { return token_; }
 
   // Counts an evaluated script and its size. Called for the main worker script.
   void CountWorkerScript(size_t script_size, size_t cached_metadata_size);
@@ -314,6 +315,8 @@
 
   int GetOutstandingThrottledLimit() const override;
 
+  const ServiceWorkerToken& token() const { return token_; }
+
  protected:
   // EventTarget
   bool AddEventListenerInternal(
@@ -331,10 +334,6 @@
   ResourceLoadScheduler::ThrottleOptionOverride GetThrottleOptionOverride()
       const override;
 
-  // TODO(chrisha): Lift this up to WorkerGlobalScope once all worker types
-  // have tokens.
-  const ServiceWorkerToken& token() const { return token_; }
-
  private:
   void importScripts(const Vector<String>& urls, ExceptionState&) override;
   SingleCachedMetadataHandler* CreateWorkerScriptCachedMetadataHandler(
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.cc
index a000dc3..5a362c1 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.cc
@@ -320,61 +320,9 @@
     }
     virtual_read_index = read_index;
   } else {
-    while (frames_to_process--) {
-      unsigned read_index = static_cast<unsigned>(virtual_read_index);
-      double interpolation_factor = virtual_read_index - read_index;
-
-      // For linear interpolation we need the next sample-frame too.
-      unsigned read_index2 = read_index + 1;
-      if (read_index2 >= buffer_length) {
-        if (Loop()) {
-          // Make sure to wrap around at the end of the buffer.
-          read_index2 = static_cast<unsigned>(virtual_read_index + 1 -
-                                              virtual_delta_frames);
-        } else {
-          read_index2 = read_index;
-        }
-      }
-
-      // Final sanity check on buffer access.
-      // FIXME: as an optimization, try to get rid of this inner-loop check and
-      // put assertions and guards before the loop.
-      if (read_index >= buffer_length || read_index2 >= buffer_length)
-        break;
-
-      // Linear interpolation.
-      for (unsigned i = 0; i < number_of_channels; ++i) {
-        float* destination = destination_channels[i];
-        const float* source = source_channels[i];
-        double sample;
-
-        if (read_index == read_index2 && read_index >= 1) {
-          // We're at the end of the buffer, so just linearly extrapolate from
-          // the last two samples.
-          double sample1 = source[read_index - 1];
-          double sample2 = source[read_index];
-          sample = sample2 + (sample2 - sample1) * interpolation_factor;
-        } else {
-          double sample1 = source[read_index];
-          double sample2 = source[read_index2];
-          sample = (1.0 - interpolation_factor) * sample1 +
-                   interpolation_factor * sample2;
-        }
-        destination[write_index] = clampTo<float>(sample);
-      }
-      write_index++;
-
-      virtual_read_index += computed_playback_rate;
-
-      // Wrap-around, retaining sub-sample position since virtualReadIndex is
-      // floating-point.
-      if (virtual_read_index >= virtual_end_frame) {
-        virtual_read_index -= virtual_delta_frames;
-        if (RenderSilenceAndFinishIfNotLooping(bus, write_index,
-                                               frames_to_process))
-          break;
-      }
-    }
+    virtual_read_index = RenderFromBufferKernel(
+        write_index, frames_to_process, virtual_read_index, virtual_end_frame,
+        virtual_delta_frames, computed_playback_rate, buffer_length, bus);
   }
 
   bus->ClearSilentFlag();
@@ -384,6 +332,144 @@
   return true;
 }
 
+std::tuple<double, int, bool> AudioBufferSourceHandler::ComputeIndices(
+    const struct InterpolationInfo& interp_info,
+    const struct IndicesInfo& indices_info,
+    int frames_to_process,
+    uint32_t buffer_length,
+    bool is_looping) const {
+  int frames_processed = frames_to_process;
+  bool end_of_buffer_reached = false;
+
+  unsigned* read0 = interp_info.read0;
+  unsigned* read1 = interp_info.read1;
+  float* interp_factor = interp_info.interp_factor;
+  auto virtual_read_index = indices_info.virtual_read_index;
+  auto computed_playback_rate = indices_info.computed_playback_rate;
+  auto virtual_end_frame = indices_info.virtual_end_frame;
+  auto virtual_delta_frames = indices_info.virtual_delta_frames;
+
+  for (int k = 0; k < frames_to_process; ++k) {
+    unsigned read_index = static_cast<unsigned>(virtual_read_index);
+    double interpolation_factor = virtual_read_index - read_index;
+
+    // For linear interpolation we need the next sample-frame too.
+    unsigned read_index2 = read_index + 1;
+    if (read_index2 >= buffer_length) {
+      if (is_looping) {
+        // Make sure to wrap around at the end of the buffer.
+        read_index2 = static_cast<unsigned>(virtual_read_index + 1 -
+                                            virtual_delta_frames);
+      } else {
+        read_index2 = read_index;
+      }
+    }
+
+    // Final sanity check on buffer access.
+    // FIXME: as an optimization, try to get rid of this inner-loop check and
+    // put assertions and guards before the loop.
+    if (read_index >= buffer_length || read_index2 >= buffer_length)
+      break;
+
+    read0[k] = read_index;
+    read1[k] = read_index2;
+    interp_factor[k] = interpolation_factor;
+
+    virtual_read_index += computed_playback_rate;
+
+    // Wrap-around, retaining sub-sample position since virtualReadIndex is
+    // floating-point.
+    if (virtual_read_index >= virtual_end_frame) {
+      virtual_read_index -= virtual_delta_frames;
+      if (!is_looping) {
+        frames_processed = k + 1;
+        end_of_buffer_reached = true;
+        break;
+      }
+    }
+  }
+
+  return std::make_tuple(virtual_read_index, frames_processed,
+                         end_of_buffer_reached);
+}
+
+unsigned AudioBufferSourceHandler::ComputeOutput(
+    float** destination_channels,
+    const float** source_channels,
+    const struct InterpolationInfo& interp_info,
+    int frames_processed,
+    unsigned write_index,
+    unsigned number_of_channels) const {
+  unsigned* read0 = interp_info.read0;
+  unsigned* read1 = interp_info.read1;
+  float* interp_factor = interp_info.interp_factor;
+
+  for (int k = 0; k < frames_processed; ++k) {
+    // Linear interpolation.
+    for (unsigned i = 0; i < number_of_channels; ++i) {
+      float* destination = destination_channels[i];
+      const float* source = source_channels[i];
+      float sample;
+
+      if (read0[k] == read1[k] && read0[k] >= 1) {
+        // We're at the end of the buffer, so just linearly extrapolate from
+        // the last two samples.
+        float sample1 = source[read0[k] - 1];
+        float sample2 = source[read0[k]];
+        sample = sample2 + (sample2 - sample1) * interp_factor[k];
+      } else {
+        float sample1 = source[read0[k]];
+        float sample2 = source[read1[k]];
+        sample = sample1 + interp_factor[k] * (sample2 - sample1);
+      }
+      destination[write_index] = sample;
+    }
+    write_index++;
+  }
+
+  return write_index;
+}
+
+double AudioBufferSourceHandler::RenderFromBufferKernel(
+    unsigned write_index,
+    int frames_to_process,
+    double virtual_read_index,
+    double virtual_end_frame,
+    double virtual_delta_frames,
+    double computed_playback_rate,
+    uint32_t buffer_length,
+    AudioBus* bus) {
+  unsigned number_of_channels = this->NumberOfChannels();
+  const float** source_channels = source_channels_.get();
+  float** destination_channels = destination_channels_.get();
+
+  unsigned read0[audio_utilities::kRenderQuantumFrames];
+  unsigned read1[audio_utilities::kRenderQuantumFrames];
+  float interp_factor[audio_utilities::kRenderQuantumFrames];
+
+  int frames_processed;
+  bool end_of_buffer_reached;
+  struct InterpolationInfo interp_info = {read0, read1, interp_factor};
+  struct IndicesInfo indices_info = {virtual_read_index, computed_playback_rate,
+                                     virtual_delta_frames, virtual_end_frame};
+
+  std::tie<double, int, bool>(virtual_read_index, frames_processed,
+                              end_of_buffer_reached) =
+      ComputeIndices(interp_info, indices_info, frames_to_process,
+                     buffer_length, Loop());
+
+  write_index =
+      ComputeOutput(destination_channels, source_channels, interp_info,
+                    frames_processed, write_index, number_of_channels);
+
+  if (end_of_buffer_reached) {
+    RenderSilenceAndFinishIfNotLooping(bus, write_index,
+                                       frames_to_process - frames_processed);
+  }
+
+  return virtual_read_index;
+}
+
 void AudioBufferSourceHandler::SetBuffer(AudioBuffer* buffer,
                                          ExceptionState& exception_state) {
   DCHECK(IsMainThread());
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.h b/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.h
index 68ca60f..7b35c14 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.h
@@ -125,6 +125,62 @@
                         uint32_t number_of_frames,
                         double start_time_offset);
 
+  // Structure for passing in information needed to compute indices for
+  // interpolation.
+  struct InterpolationInfo {
+    unsigned* read0;
+    unsigned* read1;
+    float* interp_factor;
+  };
+
+  // Structure for passing information about the virtual read index needed for
+  // computing indices.
+  struct IndicesInfo {
+    double virtual_read_index;
+    double computed_playback_rate;
+    double virtual_delta_frames;
+    double virtual_end_frame;
+  };
+
+  // Handles the general case of rendering from a buffer where the playback rate
+  // is not 1 or other situations where interpolation is required.
+  double RenderFromBufferKernel(unsigned write_index,
+                                int frames_to_process,
+                                double virtual_read_index,
+                                double virtual_end_frame,
+                                double virtual_delta_frames,
+                                double computed_playback_rate,
+                                uint32_t buffer_length,
+                                AudioBus* bus);
+
+  // Helper routines for RenderFromBufferKernel that don't need access to any
+  // internals.
+
+  // ComputeIndices computes the indices needed for
+  // interpolation/extrapolation.  Returns three values:
+  //
+  //   1: the updated virtual_read_index
+  //
+  //   2: how many frames were processed (possibly less trhan frames_to_process
+  //      because the buffer end was reached)
+  //   3: a boolean indicating if we did reach the end of the buffer.
+  inline std::tuple<double, int, bool> ComputeIndices(
+      const struct InterpolationInfo& interp_info,
+      const struct IndicesInfo& indices_info,
+      int frames_to_process,
+      uint32_t buffer_length,
+      bool is_looping) const;
+
+  // ComputeOutput takes the indices from ComputeIndices and performs
+  // interpolates/extrapolates the data to produce the desired output.  Returns
+  // the update write index where the next output should be written to.
+  inline unsigned ComputeOutput(float** destination_channels,
+                                const float** source_channels,
+                                const struct InterpolationInfo& interp_info,
+                                int frames_processed,
+                                unsigned write_index,
+                                unsigned number_of_channels) const;
+
   // Render silence starting from "index" frame in AudioBus.
   inline bool RenderSilenceAndFinishIfNotLooping(AudioBus*,
                                                  unsigned index,
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame.cc b/third_party/blink/renderer/modules/webcodecs/video_frame.cc
index c78438d..09986840 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_frame.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_frame.cc
@@ -63,11 +63,31 @@
 
 }  // namespace
 
-VideoFrame::VideoFrame(scoped_refptr<media::VideoFrame> frame)
+VideoFrame::Handle::Handle(scoped_refptr<media::VideoFrame> frame)
     : frame_(std::move(frame)) {
   DCHECK(frame_);
 }
 
+scoped_refptr<media::VideoFrame> VideoFrame::Handle::frame() {
+  WTF::MutexLocker locker(mutex_);
+  return frame_;
+}
+
+void VideoFrame::Handle::Invalidate() {
+  WTF::MutexLocker locker(mutex_);
+  frame_.reset();
+}
+
+VideoFrame::VideoFrame(scoped_refptr<media::VideoFrame> frame)
+    : handle_(base::MakeRefCounted<Handle>(std::move(frame))) {
+  DCHECK(handle_->frame());
+}
+
+VideoFrame::VideoFrame(scoped_refptr<Handle> handle)
+    : handle_(std::move(handle)) {
+  DCHECK(handle_);
+}
+
 // static
 VideoFrame* VideoFrame::Create(ImageBitmap* source,
                                VideoFrameInit* init,
@@ -164,7 +184,7 @@
 }
 
 String VideoFrame::format() const {
-  // TODO(sandersd): Look up on |frame_|.
+  // TODO(sandersd): Look up on |handle_->frame()|.
   return String();
 }
 
@@ -174,76 +194,90 @@
 }
 
 uint32_t VideoFrame::codedWidth() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->coded_size().width();
+  return local_frame->coded_size().width();
 }
 
 uint32_t VideoFrame::codedHeight() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->coded_size().height();
+  return local_frame->coded_size().height();
 }
 
 uint32_t VideoFrame::cropLeft() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->visible_rect().x();
+  return local_frame->visible_rect().x();
 }
 
 uint32_t VideoFrame::cropTop() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->visible_rect().y();
+  return local_frame->visible_rect().y();
 }
 
 uint32_t VideoFrame::cropWidth() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->visible_rect().width();
+  return local_frame->visible_rect().width();
 }
 
 uint32_t VideoFrame::cropHeight() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->visible_rect().height();
+  return local_frame->visible_rect().height();
 }
 
 uint32_t VideoFrame::displayWidth() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->natural_size().width();
+  return local_frame->natural_size().width();
 }
 
 uint32_t VideoFrame::displayHeight() const {
-  if (!frame_)
+  auto local_frame = handle_->frame();
+  if (!local_frame)
     return 0;
-  return frame_->natural_size().height();
+  return local_frame->natural_size().height();
 }
 
 base::Optional<uint64_t> VideoFrame::timestamp() const {
-  if (!frame_ || frame_->timestamp() == media::kNoTimestamp)
+  auto local_frame = handle_->frame();
+  if (!local_frame || local_frame->timestamp() == media::kNoTimestamp)
     return base::nullopt;
-  return frame_->timestamp().InMicroseconds();
+  return local_frame->timestamp().InMicroseconds();
 }
 
 base::Optional<uint64_t> VideoFrame::duration() const {
+  auto local_frame = handle_->frame();
   // TODO(sandersd): Can a duration be kNoTimestamp?
-  if (!frame_ || !frame_->metadata()->frame_duration.has_value())
+  if (!local_frame || !local_frame->metadata()->frame_duration.has_value())
     return base::nullopt;
-  return frame_->metadata()->frame_duration->InMicroseconds();
+  return local_frame->metadata()->frame_duration->InMicroseconds();
 }
 
-void VideoFrame::close() {
-  frame_.reset();
+void VideoFrame::destroy() {
+  handle_->Invalidate();
+}
+
+scoped_refptr<VideoFrame::Handle> VideoFrame::handle() {
+  return handle_;
 }
 
 scoped_refptr<media::VideoFrame> VideoFrame::frame() {
-  return frame_;
+  return handle_->frame();
 }
 
 scoped_refptr<const media::VideoFrame> VideoFrame::frame() const {
-  return frame_;
+  return handle_->frame();
 }
 
 ScriptPromise VideoFrame::createImageBitmap(ScriptState* script_state,
@@ -259,20 +293,30 @@
 }
 
 bool VideoFrame::preferAcceleratedImageBitmap() const {
+  auto local_frame = frame();
   return BitmapSourceSize().Area() > kCpuEfficientFrameSize ||
-         frame_->HasTextures();
+         (local_frame && local_frame->HasTextures());
 }
 
 ScriptPromise VideoFrame::CreateImageBitmap(ScriptState* script_state,
                                             base::Optional<IntRect> crop_rect,
                                             const ImageBitmapOptions* options,
                                             ExceptionState& exception_state) {
-  if ((frame_->IsMappable() || frame_->HasTextures()) &&
-      (frame_->format() == media::PIXEL_FORMAT_I420 ||
-       (frame_->format() == media::PIXEL_FORMAT_NV12 &&
-        frame_->HasTextures()))) {
+  auto local_frame = frame();
+
+  if (!local_frame) {
+    exception_state.ThrowDOMException(
+        DOMExceptionCode::kInvalidStateError,
+        "Cannot create ImageBitmap from destroyed VideoFrame.");
+    return ScriptPromise();
+  }
+
+  if ((local_frame->IsMappable() || local_frame->HasTextures()) &&
+      (local_frame->format() == media::PIXEL_FORMAT_I420 ||
+       (local_frame->format() == media::PIXEL_FORMAT_NV12 &&
+        local_frame->HasTextures()))) {
     scoped_refptr<StaticBitmapImage> image;
-    gfx::ColorSpace gfx_color_space = frame_->ColorSpace();
+    gfx::ColorSpace gfx_color_space = local_frame->ColorSpace();
     gfx_color_space = gfx_color_space.GetWithMatrixAndRange(
         gfx::ColorSpace::MatrixID::RGB, gfx::ColorSpace::RangeID::FULL);
     auto sk_color_space = gfx_color_space.ToSkColorSpace();
@@ -291,7 +335,7 @@
         return ScriptPromise();
       }
       media::PaintCanvasVideoRenderer::ConvertVideoFrameToRGBPixels(
-          frame_.get(), image_pixels->writable_data(), bytes_per_row);
+          local_frame.get(), image_pixels->writable_data(), bytes_per_row);
 
       SkImageInfo info =
           SkImageInfo::Make(cropWidth(), cropHeight(), kN32_SkColorType,
@@ -313,14 +357,14 @@
       gpu::MailboxHolder dest_holder;
       // Use coded_size() to comply with media::ConvertFromVideoFrameYUV.
       dest_holder.mailbox = shared_image_interface->CreateSharedImage(
-          viz::ResourceFormat::RGBA_8888, frame_->coded_size(),
+          viz::ResourceFormat::RGBA_8888, local_frame->coded_size(),
           gfx::ColorSpace(), kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType,
           usage, gpu::kNullSurfaceHandle);
       dest_holder.sync_token = shared_image_interface->GenUnverifiedSyncToken();
       dest_holder.texture_target = GL_TEXTURE_2D;
 
-      media::ConvertFromVideoFrameYUV(frame_.get(), raster_context_provider,
-                                      dest_holder);
+      media::ConvertFromVideoFrameYUV(local_frame.get(),
+                                      raster_context_provider, dest_holder);
       gpu::SyncToken sync_token;
       raster_context_provider->RasterInterface()
           ->GenUnverifiedSyncTokenCHROMIUM(sync_token.GetData());
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame.h b/third_party/blink/renderer/modules/webcodecs/video_frame.h
index 4838a56..b2afa96d 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_frame.h
+++ b/third_party/blink/renderer/modules/webcodecs/video_frame.h
@@ -15,6 +15,8 @@
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+#include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
+#include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
 
 namespace blink {
 
@@ -30,8 +32,36 @@
   DEFINE_WRAPPERTYPEINFO();
 
  public:
+  // Wrapper class that allows sharing a single |frame_| reference across
+  // multiple VideoFrames, which can be invalidated for all frames at once.
+  class MODULES_EXPORT Handle : public WTF::ThreadSafeRefCounted<Handle> {
+   public:
+    explicit Handle(scoped_refptr<media::VideoFrame>);
+
+    // Returns a copy of |frame_|, which should be re-used throughout the scope
+    // of a function call, instead of calling frame() multiple times.
+    scoped_refptr<media::VideoFrame> frame();
+
+    // Releases the underlying media::VideoFrame reference, affecting all
+    // blink::VideoFrames that hold a reference to |this|.
+    void Invalidate();
+
+   private:
+    friend class WTF::ThreadSafeRefCounted<Handle>;
+    ~Handle() = default;
+
+    WTF::Mutex mutex_;
+    scoped_refptr<media::VideoFrame> frame_;
+  };
+
+  // Creates a VideoFrame with a new Handle wrapping |frame|.
   explicit VideoFrame(scoped_refptr<media::VideoFrame> frame);
 
+  // Creates a VideoFrame from an existing handle.
+  // All frames sharing |handle| will have their |handle_| invalidated if any of
+  // the frames receives a call to destroy().
+  explicit VideoFrame(scoped_refptr<Handle> handle);
+
   // video_frame.idl implementation.
   static VideoFrame* Create(ImageBitmap*, VideoFrameInit*, ExceptionState&);
 
@@ -52,12 +82,16 @@
   base::Optional<uint64_t> timestamp() const;
   base::Optional<uint64_t> duration() const;
 
-  void close();
+  // Invalidates |handle_|, releasing underlying media::VideoFrame references.
+  // This effectively "destroys" all frames sharing the same Handle.
+  void destroy();
 
   ScriptPromise createImageBitmap(ScriptState*,
                                   const ImageBitmapOptions*,
                                   ExceptionState&);
 
+  scoped_refptr<VideoFrame::Handle> handle();
+
   // Convenience functions
   scoped_refptr<media::VideoFrame> frame();
   scoped_refptr<const media::VideoFrame> frame() const;
@@ -72,7 +106,7 @@
                                   const ImageBitmapOptions*,
                                   ExceptionState&) override;
 
-  scoped_refptr<media::VideoFrame> frame_;
+  scoped_refptr<VideoFrame::Handle> handle_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame.idl b/third_party/blink/renderer/modules/webcodecs/video_frame.idl
index 8fc2fc66..e634484 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_frame.idl
+++ b/third_party/blink/renderer/modules/webcodecs/video_frame.idl
@@ -50,8 +50,8 @@
   // TODO(sandersd): rotation metadata.
 
   // Release held resources immediately.
-  // TODO(sandersd): Describe how a closed VideoFrame acts.
-  void close();
+  // TODO(sandersd): Describe how a destroyed VideoFrame acts.
+  void destroy();
 
   // Create an ImageBitmap from the crop region, scaled to the display size.
   // TODO(sandersd): Should use the global createImageBitmap() instead.
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc b/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc
index 0a910304..b540a10 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc
@@ -18,6 +18,17 @@
       scoped_refptr<media::VideoFrame> media_frame) {
     return MakeGarbageCollected<VideoFrame>(std::move(media_frame));
   }
+  VideoFrame* CreateBlinkVideoFrameFromHandle(
+      scoped_refptr<VideoFrame::Handle> handle) {
+    return MakeGarbageCollected<VideoFrame>(std::move(handle));
+  }
+  scoped_refptr<media::VideoFrame> CreateDefaultBlackMediaVideoFrame() {
+    return CreateBlackMediaVideoFrame(base::TimeDelta::FromMicroseconds(1000),
+                                      media::PIXEL_FORMAT_I420,
+                                      gfx::Size(112, 208) /* coded_size */,
+                                      gfx::Size(100, 200) /* visible_size */);
+  }
+
   scoped_refptr<media::VideoFrame> CreateBlackMediaVideoFrame(
       base::TimeDelta timestamp,
       media::VideoPixelFormat format,
@@ -47,7 +58,7 @@
   EXPECT_EQ(200u, blink_frame->cropHeight());
   EXPECT_EQ(media_frame, blink_frame->frame());
 
-  blink_frame->close();
+  blink_frame->destroy();
 
   EXPECT_FALSE(blink_frame->timestamp().has_value());
   EXPECT_EQ(0u, blink_frame->codedWidth());
@@ -57,6 +68,42 @@
   EXPECT_EQ(nullptr, blink_frame->frame());
 }
 
+TEST_F(VideoFrameTest, FramesSharingHandleDestruction) {
+  scoped_refptr<media::VideoFrame> media_frame =
+      CreateDefaultBlackMediaVideoFrame();
+  VideoFrame* blink_frame = CreateBlinkVideoFrame(media_frame);
+
+  VideoFrame* frame_with_shared_handle =
+      CreateBlinkVideoFrameFromHandle(blink_frame->handle());
+
+  // A blink::VideoFrame created from a handle should share the same
+  // media::VideoFrame reference.
+  EXPECT_EQ(media_frame, frame_with_shared_handle->frame());
+
+  // Destroying a frame should invalidate all frames sharing the same handle.
+  blink_frame->destroy();
+  EXPECT_EQ(nullptr, frame_with_shared_handle->frame());
+}
+
+TEST_F(VideoFrameTest, FramesNotSharingHandleDestruction) {
+  scoped_refptr<media::VideoFrame> media_frame =
+      CreateDefaultBlackMediaVideoFrame();
+  VideoFrame* blink_frame = CreateBlinkVideoFrame(media_frame);
+
+  auto new_handle =
+      base::MakeRefCounted<VideoFrame::Handle>(blink_frame->frame());
+
+  VideoFrame* frame_with_new_handle =
+      CreateBlinkVideoFrameFromHandle(std::move(new_handle));
+
+  EXPECT_EQ(media_frame, frame_with_new_handle->frame());
+
+  // If a frame was created a new handle reference the same media::VideoFrame,
+  // one frame's destruction should not affect the other.
+  blink_frame->destroy();
+  EXPECT_EQ(media_frame, frame_with_new_handle->frame());
+}
+
 }  // namespace
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/webcodecs/video_track_writer.cc b/third_party/blink/renderer/modules/webcodecs/video_track_writer.cc
index ac35a17..34692f8 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_track_writer.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_track_writer.cc
@@ -105,7 +105,7 @@
     source_->PushFrame(video_frame->frame(), estimated_capture_time);
 
     if (release_frames_)
-      video_frame->close();
+      video_frame->destroy();
 
     return ScriptPromise::CastUndefined(script_state);
   }
diff --git a/third_party/blink/renderer/platform/fonts/DEPS b/third_party/blink/renderer/platform/fonts/DEPS
index fbb33e8..3197d9e 100644
--- a/third_party/blink/renderer/platform/fonts/DEPS
+++ b/third_party/blink/renderer/platform/fonts/DEPS
@@ -21,6 +21,7 @@
     "+third_party/blink/renderer/platform/wtf/shared_buffer.h",
     "+third_party/blink/renderer/platform/testing",
     "+third_party/blink/renderer/platform/text",
+    "+third_party/blink/renderer/platform/timer.h",
     "+third_party/blink/renderer/platform/web_test_support.h",
     "+third_party/blink/renderer/platform/wtf",
     "+ui/base/mojom/attributed_string.mojom-blink.h",
diff --git a/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc b/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
index dc0d288b..6a60395df 100644
--- a/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
+++ b/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
@@ -28,12 +28,18 @@
 
 namespace blink {
 
-FontMatchingMetrics::FontMatchingMetrics(bool top_level,
-                                         ukm::UkmRecorder* ukm_recorder,
-                                         ukm::SourceId source_id)
+FontMatchingMetrics::FontMatchingMetrics(
+    bool top_level,
+    ukm::UkmRecorder* ukm_recorder,
+    ukm::SourceId source_id,
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner)
     : top_level_(top_level),
       ukm_recorder_(ukm_recorder),
-      source_id_(source_id) {
+      source_id_(source_id),
+      identifiability_metrics_timer_(
+          task_runner,
+          this,
+          &FontMatchingMetrics::IdentifiabilityMetricsTimerFired) {
   // Estimate of average page font use from anecdotal browsing session.
   constexpr unsigned kEstimatedFontCount = 7;
   local_fonts_succeeded_.ReserveCapacityForSize(kEstimatedFontCount);
@@ -182,16 +188,14 @@
 }
 
 void FontMatchingMetrics::OnFontLookup() {
-  if (!time_of_earliest_unpublished_font_lookup_) {
-    time_of_earliest_unpublished_font_lookup_ = base::Time::Now();
-    return;
+  if (!identifiability_metrics_timer_.IsActive()) {
+    identifiability_metrics_timer_.StartOneShot(base::TimeDelta::FromMinutes(1),
+                                                FROM_HERE);
   }
+}
 
-  if (base::Time::Now() - *time_of_earliest_unpublished_font_lookup_ >=
-      base::TimeDelta::FromMinutes(1)) {
-    PublishIdentifiabilityMetrics();
-    time_of_earliest_unpublished_font_lookup_ = base::Time::Now();
-  }
+void FontMatchingMetrics::IdentifiabilityMetricsTimerFired(TimerBase*) {
+  PublishIdentifiabilityMetrics();
 }
 
 void FontMatchingMetrics::PublishAllMetrics() {
diff --git a/third_party/blink/renderer/platform/fonts/font_matching_metrics.h b/third_party/blink/renderer/platform/fonts/font_matching_metrics.h
index 54e5348ee..f7333631 100644
--- a/third_party/blink/renderer/platform/fonts/font_matching_metrics.h
+++ b/third_party/blink/renderer/platform/fonts/font_matching_metrics.h
@@ -12,6 +12,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_description.h"
 #include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
+#include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
@@ -161,7 +162,8 @@
  public:
   FontMatchingMetrics(bool top_level,
                       ukm::UkmRecorder* ukm_recorder,
-                      ukm::SourceId source_id);
+                      ukm::SourceId source_id,
+                      scoped_refptr<base::SingleThreadTaskRunner> task_runner);
 
   // Called when a page attempts to match a font family, and the font family is
   // available.
@@ -232,6 +234,8 @@
   void PublishUkmMetrics();
 
  private:
+  void IdentifiabilityMetricsTimerFired(TimerBase*);
+
   // Get a hash that uniquely represents the font data. Returns 0 if |font_data|
   // is nullptr.
   uint64_t GetHashForFontData(SimpleFontData* font_data);
@@ -272,9 +276,7 @@
   ukm::UkmRecorder* const ukm_recorder_;
   const ukm::SourceId source_id_;
 
-  // Records when the first font lookup occurred since the last call to
-  // PublishIdentifiablityMetrics(), if any.
-  base::Optional<base::Time> time_of_earliest_unpublished_font_lookup_;
+  TaskRunnerTimer<FontMatchingMetrics> identifiability_metrics_timer_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index cc7d4c8d..675569e 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1678,6 +1678,12 @@
       name: "ScrollUnification",
     },
     {
+      name: "SecurePaymentConfirmation",
+      origin_trial_feature_name: "SecurePaymentConfirmation",
+      origin_trial_os: ["mac"],
+      status: "experimental",
+    },
+    {
       name: "SendBeaconThrowForBlobWithNonSimpleType",
       status: "stable",
     },
diff --git a/third_party/blink/tools/blinkpy/web_tests/port/fuchsia.py b/third_party/blink/tools/blinkpy/web_tests/port/fuchsia.py
index 963fe9a..547eaef7 100644
--- a/third_party/blink/tools/blinkpy/web_tests/port/fuchsia.py
+++ b/third_party/blink/tools/blinkpy/web_tests/port/fuchsia.py
@@ -174,7 +174,7 @@
                                                       stdout=subprocess.PIPE,
                                                       stderr=subprocess.STDOUT)
 
-        listener_log_path = os.path.join(results_directory, 'system.log')
+        listener_log_path = os.path.join(results_directory, 'system_log')
         listener_log = open(listener_log_path, 'w')
         self.symbolizer = symbolizer.RunSymbolizer(
             self._listener.stdout, listener_log, [build_ids_path])
diff --git a/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py b/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py
index d3429f4..9d15c46 100644
--- a/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py
+++ b/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py
@@ -142,17 +142,16 @@
             action='store_true',
             default=True,
             help=('Log Zircon debug messages (enabled by default).')),
-        optparse.make_option(
-            '--no-zircon-logging',
-            dest='zircon_logging',
-            action='store_false',
-            default=True,
-            help=('Do not log Zircon debug messages.')),
-        optparse.make_option(
-            '--device',
-            choices=['aemu', 'qemu'],
-            default='qemu',
-            help=('Choose device to launch Fuchsia with.')),
+        optparse.make_option('--no-zircon-logging',
+                             dest='zircon_logging',
+                             action='store_false',
+                             default=True,
+                             help=('Do not log Zircon debug messages.')),
+        optparse.make_option('--device',
+                             choices=['aemu', 'qemu'],
+                             default='aemu',
+                             help=('Choose device to launch Fuchsia with. '
+                                   'Defaults to AEMU.')),
     ]))
 
     option_group_definitions.append((
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
index e0e56b5..f1bc5ce 100644
--- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
+++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -125,6 +125,14 @@
 crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-018.tentative.html [ Failure ]
 crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-019.tentative.html [ Failure ]
 crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-021.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-022.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-023.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-024.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-025.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-026.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-027.tentative.html [ Failure ]
+crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-028.tentative.html [ Failure ]
 crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.tentative.html [ Failure ]
 crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.tentative.html [ Failure ]
 crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-003.tentative.html [ Failure ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index eb366e35..37c121c 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -261,9 +261,6 @@
 crbug.com/1004547 external/wpt/intersection-observer/cross-origin-iframe.sub.html [ Pass Failure ]
 crbug.com/1007229 external/wpt/intersection-observer/same-origin-grand-child-iframe.sub.html [ Pass Failure ]
 
-# not implemented yet
-crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html [ Failure ]
-crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/abspos-008.tentative.html [ Failure ]
 crbug.com/936084 external/wpt/css/css-sizing/max-content-input-001.html [ Failure ]
 
 # Incorrect blending with foreignObject and svg descendants.
@@ -1850,6 +1847,18 @@
 crbug.com/1005518 external/wpt/css/css-writing-modes/direction-upright-001.html [ Failure ]
 crbug.com/1005518 external/wpt/css/css-writing-modes/direction-upright-002.html [ Failure ]
 
+# Orthogonal table modes will be supported by TablesNG
+crbug.com/1020373 external/wpt/css/css-writing-modes/block-flow-direction-vlr-018.xht [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/block-flow-direction-vrl-017.xht [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/line-box-direction-vlr-016.xht [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/line-box-direction-vrl-015.xht [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/table-cell-001.html [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/table-cell-002.html [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/table-progression-vlr-003.html [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/table-progression-vlr-004.html [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/table-progression-vrl-003.html [ Failure ]
+crbug.com/1020373 external/wpt/css/css-writing-modes/table-progression-vrl-004.html [ Failure ]
+
 crbug.com/637055 fast/css/outline-offset-large.html [ Skip ]
 
 # Either "combo" or split should run: http://testthewebforward.org/docs/css-naming.html
@@ -2655,36 +2664,6 @@
 crbug.com/1105958 external/wpt/payment-request/payment-is-showing.https.html [ Timeout ]
 
 # ====== New tests from wpt-importer added here ======
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/table-cell-001.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/table-cell-001.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/table-cell-001.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/table-progression-vrl-004.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/table-progression-vrl-004.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/table-progression-vrl-004.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/line-box-direction-vlr-016.xht [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/line-box-direction-vlr-016.xht [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/line-box-direction-vlr-016.xht [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/line-box-direction-vrl-015.xht [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/line-box-direction-vrl-015.xht [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/line-box-direction-vrl-015.xht [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/table-progression-vlr-003.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/table-progression-vlr-003.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/table-progression-vlr-003.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/block-flow-direction-vrl-017.xht [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/block-flow-direction-vrl-017.xht [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/block-flow-direction-vrl-017.xht [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/table-progression-vlr-004.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/table-progression-vlr-004.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/table-progression-vlr-004.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/table-cell-002.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/table-cell-002.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/table-cell-002.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/block-flow-direction-vlr-018.xht [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/block-flow-direction-vlr-018.xht [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/block-flow-direction-vlr-018.xht [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-writing-modes/table-progression-vrl-003.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-writing-modes/table-progression-vrl-003.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-writing-modes/table-progression-vrl-003.html [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-8.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-8.html [ Failure ]
 crbug.com/626703 [ Win ] external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-8.html [ Failure ]
@@ -6759,10 +6738,7 @@
 crbug.com/1112778 external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/alpha/base-url-worker.sub.html [ Pass Failure ]
 
 # Sheriff 2020-08-04: New wpt tests are failing
-crbug.com/1112771 external/wpt/css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001.tentative.html [ Failure ]
-crbug.com/1112771 external/wpt/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001.html [ Failure ]
 crbug.com/1112771 external/wpt/webhid/idlharness.https.window.html [ Failure ]
-crbug.com/1112771 external/wpt/css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001.tentative.html [ Failure ]
 
 # Sheriff 2020-08-05
 crbug.com/1113050 fast/borders/border-radius-mask-video-ratio.html [ Pass Failure ]
diff --git a/third_party/blink/web_tests/external/wpt/animation-worklet/worklet-animation-local-time-null-2.https.html b/third_party/blink/web_tests/external/wpt/animation-worklet/worklet-animation-local-time-null-2.https.html
index 5a83e96..9c499bac 100644
--- a/third_party/blink/web_tests/external/wpt/animation-worklet/worklet-animation-local-time-null-2.https.html
+++ b/third_party/blink/web_tests/external/wpt/animation-worklet/worklet-animation-local-time-null-2.https.html
@@ -3,6 +3,7 @@
 <title>Setting localTime to null means effect does not apply (reftest)</title>
 <link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
 <link rel="match" href="worklet-animation-local-time-null-2-ref.html">
+<meta name="timeout" content="long">
 
 <script src="/common/reftest-wait.js"></script>
 <script src="/web-animations/testcommon.js"></script>
@@ -100,7 +101,8 @@
   ]);
 
   waitForAnimationFrameWithCondition(() => control_anim.currentTime > 1000)
-    .then(() => waitForAsyncAnimationFrames(1))
+    // long timeout due to laggy compositor thread on debug build.
+    .then(() => waitForAsyncAnimationFrames(120))
     .then(takeScreenshot);
 });
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/abspos-008.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/abspos-008.tentative.html
index c81e9fcf..429b14a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/abspos-008.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/abspos-008.tentative.html
@@ -11,15 +11,15 @@
 <div style="position: relative; height: 100px; position: relative;">
   <div style="position: absolute; aspect-ratio: 1/1; max-height: 100%; background: green; color: green;">
     <!-- max-size 200px, min-size: 20px -->
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
   </div>
 </div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html
index 3cb07625..b07e91fa 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html
@@ -11,15 +11,15 @@
 <div style="height: 100px;">
   <div style="aspect-ratio: 1/1; max-height: 100%; background: green;">
     <!-- max-size 200px, min-size: 20px -->
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
-    <div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
   </div>
 </div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-021.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-021.tentative.html
new file mode 100644
index 0000000..0e9c1b6b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-021.tentative.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<!-- Due to the transferred max-height, this should not be 200px wide -->
+<div style="max-height: 100px; aspect-ratio: 1/1; width: max-content; background: green;">
+  <div style="width: 200px"></div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-022.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-022.tentative.html
new file mode 100644
index 0000000..1ee8021
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-022.tentative.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<!-- min-content width is 300px, clamped by max-width to 100px. The transferred min-width
+     would be 200px but should not override the explicit max-width, so the resulting div
+     should be 100px wide. This should then size the green div to a width of 100px. -->
+<div style="min-height: 200px; max-width: 100px; aspect-ratio: 1/1;">
+  <div style="width: 300px;"></div>
+  <div style="height: 100px; background: green;"></div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-023.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-023.tentative.html
new file mode 100644
index 0000000..e38cfe0c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-023.tentative.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<!-- min-content width is 50px, clamped by min-width to 100px. The transferred max-width
+     would be 40px but should not override the explicit min-width, so the resulting div
+     should be 100px wide. This should then size the green div to a width of 100px. -->
+<div style="max-height: 40px; min-width: 100px; aspect-ratio: 1/1;">
+  <div style="width: 50px;"></div>
+  <div style="height: 100px; background: green;"></div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-024.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-024.tentative.html
new file mode 100644
index 0000000..d6f6716
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-024.tentative.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A min-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="target" style="height: 0px; width: min-content; background: green;">
+  <div style="min-height: 100%; aspect-ratio: 1/1;">
+    <div style="width: 50px">
+  </div>
+</div>
+
+<script>
+document.body.offsetTop;
+document.getElementById("target").style.height = "100px";
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-025.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-025.tentative.html
new file mode 100644
index 0000000..6ce67367
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-025.tentative.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A min-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<!-- Even with a specified but indefinite height, we want to apply the
+     transferred min/max height to the inline size. -->
+<div style="aspect-ratio: 1/1; height: 100%; min-height: 100px; background: green; float: left;"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-026.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-026.tentative.html
new file mode 100644
index 0000000..0e0ce5e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-026.tentative.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div style="height: 100px;">
+  <div style="aspect-ratio: 1/1; max-height: 100%; padding-bottom: 20px; background: green; box-sizing: border-box;">
+    <!-- max-size 200px, min-size: 20px -->
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+  </div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-027.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-027.tentative.html
new file mode 100644
index 0000000..532f558
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-027.tentative.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div style="height: 100px;">
+  <div style="aspect-ratio: 100/80; max-height: 80px; padding-bottom: 20px; background: green; box-sizing: content-box;">
+    <!-- max-size 200px, min-size: 20px -->
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+    <div style="width: 20px; height: 10px; vertical-align: bottom; display: inline-block;"></div>
+  </div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-028.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-028.tentative.html
new file mode 100644
index 0000000..ec49bd4d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-028.tentative.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: abspos div inline size with max-height</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="A min-height constraint should be transferred through the aspect-ratio to apply to the inline size">
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="target" style="height: 50px; width: min-content; background: green;">
+  <div style="height: 100%;">
+    <div style="min-height: 100%; aspect-ratio: 1/1;"></div>
+  </div>
+</div>
+
+<script>
+document.body.offsetTop;
+document.getElementById("target").style.height = "100px";
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/replaced-element-013.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/replaced-element-013.tentative.html
new file mode 100644
index 0000000..bcbf653
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/replaced-element-013.tentative.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: img</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<!-- Replaced elements should always use content-box sizing for the purpose of
+     aspect ratio. -->
+<img src="support/20x50-green.png" style="aspect-ratio: 20/50; background: green; padding-right: 80px; padding-bottom: 50px; box-sizing: border-box;">
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/replaced-element-014.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/replaced-element-014.tentative.html
new file mode 100644
index 0000000..4c1ad16
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/replaced-element-014.tentative.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: img</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<!-- Replaced elements should always use content-box sizing for the purpose of
+     aspect ratio. -->
+<img src="support/20x50-green.png" style="aspect-ratio: 20/50; background: green; padding-right: 80px; padding-bottom: 50px; box-sizing: border-box; max-height: 100px;">
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt
index 180a68fa..6c2a306 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt
@@ -25,5 +25,6 @@
 FAIL Set timeline and play transition after clear the timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSTransition>'"
 PASS Set null target effect after canceling the transition
 PASS Cancel the transition after clearing the target effect
+PASS Cancel the transition after it finishes
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative.html
index 9e4946c..5ed01cd 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative.html
@@ -414,4 +414,22 @@
   await waitForAnimationFrames(2);
 }, 'Cancel the transition after clearing the target effect');
 
+promise_test(async t => {
+  const { transition, watcher, div } = setupTransition(t, 'margin-left 100s');
+
+  // Seek to After phase.
+  transition.finish();
+  const events = await watcher.wait_for(
+    ['transitionrun', 'transitionstart', 'transitionend'],
+    {
+      record: 'all',
+    }
+  );
+
+  transition.cancel();
+
+  // Then wait a couple of frames and check that no event was dispatched
+  await waitForAnimationFrames(2);
+}, 'Cancel the transition after it finishes');
+
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/payment-request/secure-payment-confirmation.https.html b/third_party/blink/web_tests/external/wpt/payment-request/secure-payment-confirmation.https.html
new file mode 100644
index 0000000..860876e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/payment-request/secure-payment-confirmation.https.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test for 'secure-payment-confirmation' payment method</title>
+<link rel="help" href="https://github.com/rsolomakhin/secure-payment-confirmation">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+'use strict';
+
+const details = {total:
+    {label: 'Total', amount: {value: '0.01', currency: 'USD'}}};
+
+test(() => {
+  new PaymentRequest([{
+    supportedMethods: 'secure-payment-confirmation',
+    data: {
+       // All valid parameters.
+       action: 'authenticate',
+       instrumentId: 'x',
+       networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+       timeout: 60000,
+       fallbackUrl: 'https://fallback.example/url'
+    },
+  }], details);
+}, 'Valid payment method data does not throw exceptions.');
+
+test(() => {
+  new PaymentRequest([{
+    supportedMethods: 'secure-payment-confirmation',
+    data: {
+       // Omitted action field.
+       instrumentId: 'x',
+       networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+       timeout: 60000,
+       fallbackUrl: 'https://fallback.example/url'
+    },
+  }], details);
+}, 'The action field is optional.');
+
+test(() => {
+  new PaymentRequest([{
+    supportedMethods: 'secure-payment-confirmation',
+    data: {
+       action: 'authenticate',
+       instrumentId: 'x',
+       networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+       // Omitted timeout field.
+       fallbackUrl: 'https://fallback.example/url'
+    },
+  }], details);
+}, 'The timeout field is optional.');
+
+test(() => {
+  assert_throws_js(TypeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        // Invalid action parameter.
+        action: 'authorize',
+        instrumentId: 'x',
+        networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+        timeout: 60000,
+        fallbackUrl: 'https://fallback.example/url'
+      },
+    }], details);
+  });
+}, 'Invalid action parameter throws an exception.');
+
+test(() => {
+  assert_throws_js(TypeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        action: 'authenticate',
+        // Omitted instrumentId field.
+        networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+        timeout: 60000,
+        fallbackUrl: 'https://fallback.example/url'
+      },
+    }], details);
+  });
+}, 'The instrumentId field is required.');
+
+test(() => {
+  assert_throws_js(TypeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        action: 'authenticate',
+        instrumentId: 'x',
+        // Omitted instrumentId field.
+        timeout: 60000,
+        fallbackUrl: 'https://fallback.example/url'
+      },
+    }], details);
+  });
+}, 'The networkData field is required.');
+
+test(() => {
+  assert_throws_js(TypeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        action: 'authenticate',
+        instrumentId: 'x',
+        networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+        timeout: 60000,
+        // Omitted fallbackUrl field.
+      },
+    }], details);
+  });
+}, 'The fallbackUrl field is required.');
+
+test(() => {
+  assert_throws_js(RangeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        action: 'authenticate',
+        // Empty instrumentId field.
+        instrumentId: '',
+        networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+        timeout: 60000,
+        fallbackUrl: 'https://fallback.example/url'
+      },
+    }], details);
+  });
+}, 'Empty instrumentId field throws exception.');
+
+test(() => {
+  assert_throws_js(TypeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        action: 'authenticate',
+        instrumentId: 'x',
+        // Null networkData field.
+        networkData: null,
+        timeout: 60000,
+        fallbackUrl: 'https://fallback.example/url'
+      },
+    }], details);
+  });
+}, 'Null networkData field throws exception.');
+
+test(() => {
+  assert_throws_js(TypeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        action: 'authenticate',
+        instrumentId: 'x',
+        // Empty networkData field.
+        networkData: [],
+        timeout: 60000,
+        fallbackUrl: 'https://fallback.example/url'
+      },
+    }], details);
+  });
+}, 'Empty networkData field throws exception.');
+
+test(() => {
+  assert_throws_js(RangeError, () => {
+    new PaymentRequest([{
+      supportedMethods: 'secure-payment-confirmation',
+      data: {
+        action: 'authenticate',
+        instrumentId: 'x',
+        networkData: Uint8Array.from('x', c => c.charCodeAt(0)),
+        // Timeout longer than 1 hour.
+        timeout: 1000 * 60 * 60 + 1,
+        fallbackUrl: 'https://fallback.example/url'
+      },
+    }], details);
+  });
+}, 'Timeout longer than 1 hour throws exception.');
+</script>
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/busy-indicator-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/busy-indicator-expected.png
index bb7ec6a..a259cde 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/busy-indicator-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/busy-indicator-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/contents-opaque/control-layer-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/contents-opaque/control-layer-expected.txt
index 6cb55e9..ff189e7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/contents-opaque/control-layer-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/contents-opaque/control-layer-expected.txt
@@ -7,7 +7,7 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutButton INPUT id='control' class='composited'",
+      "name": "LayoutNGButton INPUT id='control' class='composited'",
       "bounds": [194, 32],
       "backgroundColor": "#EFEFEF",
       "transform": 1
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt
index 43b8ad6..c1775c39 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt
@@ -12,11 +12,6 @@
       "bounds": [300, 300],
       "backgroundColor": "#000000",
       "transform": 1
-    },
-    {
-      "name": "LayoutNGBlockFlow (positioned) DIV id='software-parent'",
-      "bounds": [300, 300],
-      "backgroundColor": "#008000"
     }
   ],
   "transforms": [
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-enter-compositing-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-enter-compositing-expected.txt
index 36c2b47..f8b0dab 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-enter-compositing-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-enter-compositing-expected.txt
@@ -7,32 +7,27 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='parent-iframe'",
-      "bounds": [231, 231],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [762, 774],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Horizontal Scrollbar Layer",
       "position": [0, 203],
       "bounds": [203, 22],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [203, 0],
       "bounds": [22, 203],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "Scroll Corner Layer",
       "position": [203, 203],
       "bounds": [22, 22],
-      "transform": 2
+      "transform": 1
     }
   ],
   "transforms": [
@@ -42,17 +37,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
-      ]
-    },
-    {
-      "id": 2,
-      "parent": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [15, 15, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-layer-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-layer-expected.txt
index 1e914d3..f8b0dab 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-layer-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/force-compositing-mode/overflow-iframe-layer-expected.txt
@@ -7,32 +7,27 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='iframe'",
-      "bounds": [231, 231],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [762, 774],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Horizontal Scrollbar Layer",
       "position": [0, 203],
       "bounds": [203, 22],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [203, 0],
       "bounds": [22, 203],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "Scroll Corner Layer",
       "position": [203, 203],
       "bounds": [22, 22],
-      "transform": 2
+      "transform": 1
     }
   ],
   "transforms": [
@@ -42,17 +37,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
-      ]
-    },
-    {
-      "id": 2,
-      "parent": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [15, 15, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-down-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-down-expected.png
index dde1bfc..0267c52 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-down-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-down-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/preserve-3d-switching-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/preserve-3d-switching-expected.txt
index 560126cf..fe1780f 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/preserve-3d-switching-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/preserve-3d-switching-expected.txt
@@ -11,22 +11,22 @@
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV id='container'",
-      "bounds": [456, 456],
-      "transform": 1
+      "position": [162, 108],
+      "bounds": [456, 456]
     },
     {
       "name": "LayoutNGBlockFlow DIV id='parent'",
       "bounds": [420, 420],
       "contentsOpaque": true,
       "backgroundColor": "#FFFF00",
-      "transform": 4
+      "transform": 3
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV",
       "bounds": [300, 300],
       "contentsOpaque": true,
       "backgroundColor": "#008000",
-      "transform": 6
+      "transform": 5
     }
   ],
   "transforms": [
@@ -35,9 +35,10 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [162, 108, 0, 1]
-      ]
+        [0, 0, 1, -0.00133333333333333],
+        [0, 0, 0, 1]
+      ],
+      "origin": [390, 336]
     },
     {
       "id": 2,
@@ -45,25 +46,14 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, -0.00133333333333333],
-        [0, 0, 0, 1]
-      ],
-      "origin": [228, 228]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [18, 18, 0, 1]
+        [180, 126, 0, 1]
       ],
       "flattenInheritedTransform": false
     },
     {
-      "id": 4,
-      "parent": 3,
+      "id": 3,
+      "parent": 2,
       "transform": [
         [0.766044443118978, -0.556670399226419, -0.32139380484327, 0],
         [0, 0.5, -0.866025403784439, 0],
@@ -75,8 +65,8 @@
       "renderingContext": 1
     },
     {
-      "id": 5,
-      "parent": 4,
+      "id": 4,
+      "parent": 3,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
@@ -87,8 +77,8 @@
       "renderingContext": 1
     },
     {
-      "id": 6,
-      "parent": 5,
+      "id": 5,
+      "parent": 4,
       "transform": [
         [0.766044443118978, 0, 0.642787609686539, 0],
         [0, 1, 0, 0],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-composited-nested-iframes-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-composited-nested-iframes-expected.txt
index 5136996..9fd6ea8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-composited-nested-iframes-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-composited-nested-iframes-expected.txt
@@ -7,62 +7,42 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [426, 306],
+      "name": "LayoutView #document",
+      "bounds": [420, 300],
       "transform": 1
     },
     {
       "name": "LayoutView #document",
-      "bounds": [420, 300],
+      "bounds": [375, 255],
+      "contentsOpaqueForText": true,
+      "backgroundColor": "#C0C0C0",
       "transform": 2
     },
     {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [378, 258],
+      "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
+      "bounds": [315, 315],
+      "contentsOpaque": true,
+      "backgroundColor": "#0000FF",
       "transform": 3
     },
     {
       "name": "LayoutView #document",
-      "bounds": [375, 255],
-      "contentsOpaqueForText": true,
-      "backgroundColor": "#C0C0C0",
+      "bounds": [420, 300],
       "transform": 4
     },
     {
-      "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
-      "bounds": [315, 315],
-      "contentsOpaque": true,
-      "backgroundColor": "#0000FF",
-      "transform": 5
-    },
-    {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [426, 306],
-      "transform": 6
-    },
-    {
-      "name": "LayoutView #document",
-      "bounds": [420, 300],
-      "transform": 7
-    },
-    {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [378, 258],
-      "transform": 8
-    },
-    {
       "name": "LayoutView #document",
       "bounds": [375, 255],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 9
+      "transform": 5
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 10
+      "transform": 6
     },
     {
       "name": "LayoutNGBlockFlow DIV id='box' class='composited'",
@@ -84,7 +64,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [30, 180, 0, 1]
+        [33, 183, 0, 1]
       ]
     },
     {
@@ -94,7 +74,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [14, 14, 0, 1]
       ]
     },
     {
@@ -104,17 +84,16 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
+        [27, 15, 0, 1]
       ]
     },
     {
       "id": 4,
-      "parent": 3,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [2, 2, 0, 1]
+        [33, 519, 0, 1]
       ]
     },
     {
@@ -124,51 +103,12 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [27, 15, 0, 1]
+        [14, 14, 0, 1]
       ]
     },
     {
       "id": 6,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [30, 516, 0, 1]
-      ]
-    },
-    {
-      "id": 7,
-      "parent": 6,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [3, 3, 0, 1]
-      ]
-    },
-    {
-      "id": 8,
-      "parent": 7,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [12, 12, 0, 1]
-      ]
-    },
-    {
-      "id": 9,
-      "parent": 8,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [2, 2, 0, 1]
-      ]
-    },
-    {
-      "id": 10,
-      "parent": 9,
+      "parent": 5,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-overlapped-iframe-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-overlapped-iframe-expected.txt
index 3abe0253..44f8aff 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-overlapped-iframe-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/become-overlapped-iframe-expected.txt
@@ -7,29 +7,24 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (floating) IFRAME id='iframe'",
-      "bounds": [525, 300],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [458, 345],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [458, 0],
       "bounds": [22, 255],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='overlay'",
@@ -45,7 +40,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [87, 87, 0, 1]
+        [110, 110, 0, 1]
       ]
     },
     {
@@ -55,16 +50,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [27, 15, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/connect-compositing-iframe-delayed-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/connect-compositing-iframe-delayed-expected.txt
index 97ca660..8a428a6 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/connect-compositing-iframe-delayed-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/connect-compositing-iframe-delayed-expected.txt
@@ -9,37 +9,31 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='iframe'",
-      "position": [-45, -45],
-      "bounds": [585, 360],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 345],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 225],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV id='box' class='composited'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 4
+      "transform": 3
     }
   ],
   "transforms": [
@@ -49,7 +43,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [42, 192, 0, 1]
+        [65, 215, 0, 1]
       ]
     },
     {
@@ -59,21 +53,11 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [27, 15, 0, 1]
       ]
     },
     {
-      "id": 4,
+      "id": 3,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/enter-compositing-iframe-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/enter-compositing-iframe-expected.txt
index b80a1b61..0cd848b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/enter-compositing-iframe-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/enter-compositing-iframe-expected.txt
@@ -7,30 +7,24 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='parent-iframe'",
-      "position": [-45, -45],
-      "bounds": [585, 360],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 345],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV id='test' class='composited box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 225],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV class='overlay'",
@@ -46,7 +40,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [42, 42, 0, 1]
+        [65, 65, 0, 1]
       ]
     },
     {
@@ -56,16 +50,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [27, 15, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-resize-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-resize-expected.txt
index 256cd9bd..5a310019 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-resize-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-resize-expected.txt
@@ -7,30 +7,24 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='parent-iframe' class='bigger'",
-      "position": [-45, -45],
-      "bounds": [735, 315],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [578, 345],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [578, 0],
       "bounds": [22, 180],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV class='overlay'",
@@ -46,7 +40,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [42, 42, 0, 1]
+        [65, 65, 0, 1]
       ]
     },
     {
@@ -56,16 +50,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [27, 15, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-size-from-zero-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-size-from-zero-expected.txt
index 920195c..e7d650d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-size-from-zero-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-size-from-zero-expected.txt
@@ -7,29 +7,24 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='iframe' class='expanded'",
-      "bounds": [495, 270],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 345],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 225],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV class='overlay'",
@@ -45,7 +40,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [42, 42, 0, 1]
+        [65, 65, 0, 1]
       ]
     },
     {
@@ -55,16 +50,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [27, 15, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-nested-iframe-show-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-nested-iframe-show-expected.txt
index fff808a5..ec23b22 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-nested-iframe-show-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-nested-iframe-show-expected.txt
@@ -7,47 +7,36 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME",
-      "position": [-45, -45],
-      "bounds": [585, 360],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 288],
-      "transform": 2
-    },
-    {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [378, 258],
-      "transform": 3
+      "transform": 1
     },
     {
       "name": "LayoutView #document",
       "bounds": [375, 255],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 4
+      "transform": 2
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 5
+      "transform": 3
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 225],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 7
+      "transform": 5
     }
   ],
   "transforms": [
@@ -57,7 +46,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
+        [35, 35, 0, 1]
       ]
     },
     {
@@ -67,7 +56,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
+        [14, 14, 0, 1]
       ]
     },
     {
@@ -77,31 +66,11 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
-      ]
-    },
-    {
-      "id": 4,
-      "parent": 3,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [2, 2, 0, 1]
-      ]
-    },
-    {
-      "id": 5,
-      "parent": 4,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [27, 15, 0, 1]
       ]
     },
     {
-      "id": 6,
+      "id": 4,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
@@ -110,8 +79,8 @@
       ]
     },
     {
-      "id": 7,
-      "parent": 6,
+      "id": 5,
+      "parent": 4,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-expected.txt
index ba4cf47..e7d650d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-expected.txt
@@ -7,30 +7,24 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='parent-iframe'",
-      "position": [-45, -45],
-      "bounds": [585, 360],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 345],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 225],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV class='overlay'",
@@ -46,7 +40,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [42, 42, 0, 1]
+        [65, 65, 0, 1]
       ]
     },
     {
@@ -56,16 +50,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [27, 15, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-iframe-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-iframe-expected.txt
index b211353..c9c107c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-iframe-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-iframe-iframe-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME",
-      "bounds": [456, 456]
-    },
-    {
       "name": "LayoutView #document",
       "bounds": [450, 450],
       "contentsOpaqueForText": true,
@@ -26,21 +22,21 @@
     },
     {
       "name": "LayoutIFrame (positioned) IFRAME id='overlap'",
-      "bounds": [456, 456],
-      "transform": 3
+      "position": [375, 0],
+      "bounds": [456, 456]
     },
     {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 1527],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 4
+      "transform": 3
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 450],
-      "transform": 4
+      "transform": 3
     }
   ],
   "transforms": [
@@ -69,17 +65,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [375, 0, 0, 1]
-      ]
-    },
-    {
-      "id": 4,
-      "parent": 3,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [378, 3, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-nested-iframes-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-nested-iframes-expected.txt
index 864c30b..0232b2c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-nested-iframes-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/overlapped-nested-iframes-expected.txt
@@ -8,62 +8,42 @@
       "transform": 1
     },
     {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [426, 306],
+      "name": "LayoutView #document",
+      "bounds": [420, 300],
       "transform": 2
     },
     {
       "name": "LayoutView #document",
-      "bounds": [420, 300],
+      "bounds": [375, 255],
+      "contentsOpaqueForText": true,
+      "backgroundColor": "#C0C0C0",
       "transform": 3
     },
     {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [378, 258],
+      "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
+      "bounds": [315, 315],
+      "contentsOpaque": true,
+      "backgroundColor": "#0000FF",
       "transform": 4
     },
     {
       "name": "LayoutView #document",
-      "bounds": [375, 255],
-      "contentsOpaqueForText": true,
-      "backgroundColor": "#C0C0C0",
+      "bounds": [420, 300],
       "transform": 5
     },
     {
-      "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
-      "bounds": [315, 315],
-      "contentsOpaque": true,
-      "backgroundColor": "#0000FF",
-      "transform": 6
-    },
-    {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [426, 306],
-      "transform": 7
-    },
-    {
-      "name": "LayoutView #document",
-      "bounds": [420, 300],
-      "transform": 8
-    },
-    {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [378, 258],
-      "transform": 9
-    },
-    {
       "name": "LayoutView #document",
       "bounds": [375, 255],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 10
+      "transform": 6
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [315, 315],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 11
+      "transform": 7
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='banner'",
@@ -94,7 +74,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [30, 225, 0, 1]
+        [33, 228, 0, 1]
       ]
     },
     {
@@ -104,7 +84,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [14, 14, 0, 1]
       ]
     },
     {
@@ -114,17 +94,17 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
+        [27, 15, 0, 1]
       ]
     },
     {
       "id": 5,
-      "parent": 4,
+      "parent": 1,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [2, 2, 0, 1]
+        [33, 564, 0, 1]
       ]
     },
     {
@@ -134,52 +114,12 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [27, 15, 0, 1]
+        [14, 14, 0, 1]
       ]
     },
     {
       "id": 7,
-      "parent": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [30, 561, 0, 1]
-      ]
-    },
-    {
-      "id": 8,
-      "parent": 7,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [3, 3, 0, 1]
-      ]
-    },
-    {
-      "id": 9,
-      "parent": 8,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [12, 12, 0, 1]
-      ]
-    },
-    {
-      "id": 10,
-      "parent": 9,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [2, 2, 0, 1]
-      ]
-    },
-    {
-      "id": 11,
-      "parent": 10,
+      "parent": 6,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scrolling-iframe-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scrolling-iframe-expected.txt
index acf3960..15fa5b8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scrolling-iframe-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scrolling-iframe-expected.txt
@@ -7,42 +7,36 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='parent-iframe'",
-      "position": [-45, -45],
-      "bounds": [585, 360],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [762, 912],
       "contentsOpaqueForText": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "LayoutNGBlockFlow DIV id='iframe-content' class='box'",
       "bounds": [300, 300],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 4
+      "transform": 3
     },
     {
       "name": "ContentsLayer for Horizontal Scrollbar Layer",
       "position": [0, 203],
       "bounds": [428, 22],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 203],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "Scroll Corner Layer",
       "position": [428, 203],
       "bounds": [22, 22],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV class='overlay'",
@@ -58,7 +52,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [42, 42, 0, 1]
+        [65, 65, 0, 1]
       ]
     },
     {
@@ -68,7 +62,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [23, 23, 0, 1]
+        [-120, -120, 0, 1]
       ]
     },
     {
@@ -78,16 +72,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [-120, -120, 0, 1]
-      ]
-    },
-    {
-      "id": 4,
-      "parent": 3,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [162, 150, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt
index 532c1534..98470b4 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt
@@ -11,15 +11,16 @@
     },
     {
       "name": "LayoutNGBlockFlow DIV class='preserve3d'",
+      "position": [27, 585],
       "bounds": [513, 270],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='box'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#C0C0C0",
-      "transform": 4
+      "transform": 3
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
@@ -31,33 +32,23 @@
   "transforms": [
     {
       "id": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [27, 585, 0, 1]
-      ]
+      "renderingContext": 1
     },
     {
       "id": 2,
       "parent": 1,
-      "renderingContext": 1
-    },
-    {
-      "id": 3,
-      "parent": 2,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [47, 74, 0, 1]
+        [74, 659, 0, 1]
       ],
       "flattenInheritedTransform": false,
       "renderingContext": 1
     },
     {
-      "id": 4,
-      "parent": 3,
+      "id": 3,
+      "parent": 2,
       "transform": [
         [0.984807753012208, 0, -0.17364817766693, 0],
         [0, 1, 0, 0],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-clipping-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-clipping-expected.txt
index 8c06ff7..c4ffb30 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-clipping-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-clipping-expected.txt
@@ -15,32 +15,31 @@
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='container'",
+      "position": [87, 345],
       "bounds": [183, 693],
       "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "transform": 3
+      "backgroundColor": "#FFFFFF"
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='box gray force-layer'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#808080",
-      "transform": 5
+      "transform": 4
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV id='to-animate2' class='box animating2'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 7
+      "transform": 6
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='box yellow'",
-      "position": [17, 512],
+      "position": [104, 857],
       "bounds": [150, 150],
       "contentsOpaque": true,
-      "backgroundColor": "#FFFF00",
-      "transform": 3
+      "backgroundColor": "#FFFF00"
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='box yellow'",
@@ -97,7 +96,6 @@
     },
     {
       "id": 5,
-      "parent": 4,
       "transform": [
         [...],
         [...],
@@ -107,17 +105,7 @@
     },
     {
       "id": 6,
-      "parent": 3,
-      "transform": [
-        [...],
-        [...],
-        [...],
-        [...]
-      ]
-    },
-    {
-      "id": 7,
-      "parent": 6,
+      "parent": 5,
       "transform": [
         [...],
         [...],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-container-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-container-expected.txt
index f273b25c..d5bee7d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-container-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-container-expected.txt
@@ -16,23 +16,22 @@
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='container'",
-      "position": [-16, 0],
+      "position": [71, 345],
       "bounds": [215, 678],
-      "backgroundColor": "#FFFFFF",
-      "transform": 3
+      "backgroundColor": "#FFFFFF"
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='box gray force-layer'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#808080",
-      "transform": 5
+      "transform": 4
     },
     {
       "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV class='box yellow')",
       "position": [-77, 676],
       "bounds": [150, 150],
-      "transform": 4
+      "transform": 3
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
@@ -79,16 +78,6 @@
         [...],
         [...]
       ]
-    },
-    {
-      "id": 5,
-      "parent": 4,
-      "transform": [
-        [...],
-        [...],
-        [...],
-        [...]
-      ]
     }
   ]
 }
@@ -111,23 +100,23 @@
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='container'",
+      "position": [87, 345],
       "bounds": [183, 678],
       "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "transform": 3
+      "backgroundColor": "#FFFFFF"
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='box gray force-layer'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#808080",
-      "transform": 5
+      "transform": 4
     },
     {
       "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='first-green-box' class='box green rotate-45deg')",
       "position": [-77, 132],
       "bounds": [259, 694],
-      "transform": 4
+      "transform": 3
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
@@ -174,16 +163,6 @@
         [...],
         [...]
       ]
-    },
-    {
-      "id": 5,
-      "parent": 4,
-      "transform": [
-        [...],
-        [...],
-        [...],
-        [...]
-      ]
     }
   ]
 }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-expected.txt
index 24bfe88..c7da6d1 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-animation-expected.txt
@@ -7,24 +7,25 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutNGBlockFlow (relative positioned) DIV class='container'",
-      "bounds": [183, 363],
-      "transform": 1
-    },
-    {
       "name": "LayoutNGBlockFlow (relative positioned) DIV id='to-animate' class='animating box'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='box'",
-      "position": [17, 182],
+      "position": [29, 194],
       "bounds": [150, 150],
       "contentsOpaque": true,
-      "backgroundColor": "#0000FF",
-      "transform": 1
+      "backgroundColor": "#0000FF"
+    },
+    {
+      "name": "LayoutNGBlockFlow (relative positioned) DIV class='box'",
+      "position": [27, 390],
+      "bounds": [150, 150],
+      "contentsOpaque": true,
+      "backgroundColor": "#0000FF"
     }
   ],
   "transforms": [
@@ -45,16 +46,6 @@
         [...],
         [...],
         [...]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [...],
-        [...],
-        [...],
-        [...]
       ],
       "origin": [75, 75]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt
index 7bc5855..2ddcaa8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt
@@ -7,11 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutNGBlockFlow (positioned) DIV class='container clips'",
-      "bounds": [150, 150],
-      "transform": 1
-    },
-    {
       "name": "LayoutNGBlockFlow (positioned) DIV class='under composited'",
       "bounds": [150, 150],
       "contentsOpaque": true,
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt
index 6eb7229..896a0fc 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt
@@ -15,9 +15,9 @@
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='green-box' class='center box-container'",
+      "position": [162, 162],
       "contentsOpaque": true,
-      "drawsContent": false,
-      "transform": 1
+      "drawsContent": false
     },
     {
       "name": "LayoutNGBlockFlow DIV id='camera' class='rotate-3d-start'",
@@ -68,9 +68,10 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [162, 162, 0, 1]
-      ]
+        [0, 0, 1, -0.00333333333333333],
+        [0, 0, 0, 1]
+      ],
+      "origin": [237, 237]
     },
     {
       "id": 2,
@@ -78,10 +79,10 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, -0.00333333333333333],
-        [0, 0, 0, 1]
+        [0, 0, 1, 0],
+        [162, 162, 0, 1]
       ],
-      "origin": [75, 75]
+      "flattenInheritedTransform": false
     },
     {
       "id": 3,
@@ -223,9 +224,9 @@
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='green-box' class='center box-container'",
+      "position": [162, 162],
       "contentsOpaque": true,
-      "drawsContent": false,
-      "transform": 1
+      "drawsContent": false
     },
     {
       "name": "LayoutNGBlockFlow DIV id='camera' class='rotate-3d-start rotate-3d-end'",
@@ -288,9 +289,10 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [162, 162, 0, 1]
-      ]
+        [0, 0, 1, -0.00333333333333333],
+        [0, 0, 0, 1]
+      ],
+      "origin": [237, 237]
     },
     {
       "id": 2,
@@ -298,10 +300,10 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, -0.00333333333333333],
-        [0, 0, 0, 1]
+        [0, 0, 1, 0],
+        [162, 162, 0, 1]
       ],
-      "origin": [75, 75]
+      "flattenInheritedTransform": false
     },
     {
       "id": 3,
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transforms-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transforms-expected.txt
index 3125f58..00a4141 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transforms-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transforms-expected.txt
@@ -7,16 +7,11 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutNGBlockFlow (relative positioned) DIV class='container'",
-      "bounds": [183, 363],
-      "transform": 1
-    },
-    {
       "name": "LayoutNGBlockFlow (relative positioned) DIV class='transformed box'",
       "bounds": [150, 150],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
-      "transform": 3
+      "transform": 2
     }
   ],
   "transforms": [
@@ -26,7 +21,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
+        [29, 29, 0, 1]
       ]
     },
     {
@@ -36,16 +31,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [17, 17, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [0, 0, 1.5, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-composited-subframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-composited-subframe-expected.png
index 0b96948..ba5642c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-composited-subframe-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-composited-subframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-descendents-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-descendents-expected.txt
index 00143ad..9bf40e53 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-descendents-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-descendents-expected.txt
@@ -21,30 +21,18 @@
       "transform": 4
     },
     {
-      "name": "LayoutNGBlockFlow (positioned) DIV class='container'",
-      "position": [30, 15],
-      "bounds": [90, 105],
-      "transform": 5
+      "name": "LayoutNGBlockFlow DIV class='box'",
+      "bounds": [150, 225],
+      "contentsOpaque": true,
+      "backgroundColor": "#808080",
+      "transform": 6
     },
     {
       "name": "LayoutNGBlockFlow DIV class='box'",
       "bounds": [150, 225],
       "contentsOpaque": true,
       "backgroundColor": "#808080",
-      "transform": 7
-    },
-    {
-      "name": "LayoutNGBlockFlow (positioned) DIV class='container'",
-      "position": [30, 15],
-      "bounds": [90, 105],
       "transform": 8
-    },
-    {
-      "name": "LayoutNGBlockFlow DIV class='box'",
-      "bounds": [150, 225],
-      "contentsOpaque": true,
-      "backgroundColor": "#808080",
-      "transform": 10
     }
   ],
   "transforms": [
@@ -92,7 +80,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [42, 330, 0, 1]
+        [75, 363, 0, 1]
       ]
     },
     {
@@ -102,41 +90,21 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [33, 33, 0, 1]
-      ]
-    },
-    {
-      "id": 7,
-      "parent": 6,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [0, 0, 1.5, 1]
       ]
     },
     {
+      "id": 7,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [363, 363, 0, 1]
+      ]
+    },
+    {
       "id": 8,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [330, 330, 0, 1]
-      ]
-    },
-    {
-      "id": 9,
-      "parent": 8,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [33, 33, 0, 1]
-      ]
-    },
-    {
-      "id": 10,
-      "parent": 9,
+      "parent": 7,
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/reparented-scrollbars-non-sc-anc-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/reparented-scrollbars-non-sc-anc-expected.txt
index fa593b8..dbfee58 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/reparented-scrollbars-non-sc-anc-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/reparented-scrollbars-non-sc-anc-expected.txt
@@ -7,11 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutNGBlockFlow (relative positioned) DIV id='positioned'",
-      "bounds": [1800, 1200],
-      "transform": 1
-    },
-    {
       "name": "LayoutNGBlockFlow DIV id='scroller'",
       "bounds": [1800, 1500],
       "transform": 1
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.png
index 43d39b0..00798e9 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.txt
index ce91588..4c0f52b5 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.txt
@@ -8,11 +8,6 @@
     },
     {
       "name": "LayoutNGBlockFlow DIV",
-      "bounds": [360, 360],
-      "transform": 2
-    },
-    {
-      "name": "LayoutNGBlockFlow DIV",
       "bounds": [600, 600],
       "contentsOpaque": true,
       "backgroundColor": "#0000FF",
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.png
index 7ce6cc56..9269ad6 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.txt
index 1dacf70..340c171 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.txt
@@ -91,16 +91,10 @@
       "transform": 7
     },
     {
-      "name": "LayoutNGBlockFlow (relative positioned) DIV class='clipper'",
-      "position": [-10, -10],
-      "bounds": [438, 300],
-      "transform": 8
-    },
-    {
       "name": "LayoutNGBlockFlow DIV class='scroller'",
       "position": [-45, -45],
       "bounds": [435, 345],
-      "transform": 9
+      "transform": 8
     },
     {
       "name": "Scrolling Contents Layer",
@@ -108,13 +102,13 @@
       "bounds": [330, 354],
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
-      "transform": 9
+      "transform": 8
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [328, 7],
       "bounds": [10, 240],
-      "transform": 9
+      "transform": 8
     }
   ],
   "transforms": [
@@ -191,17 +185,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [24, 24, 0, 1]
-      ]
-    },
-    {
-      "id": 9,
-      "parent": 8,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [36, 36, 0, 1]
+        [60, 60, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
index 281de3f..d6efd531 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/animation-inside-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/animation-inside-reflection-expected.png
index ceed7d7..edc7226 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/animation-inside-reflection-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/animation-inside-reflection-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/deeply-nested-reflections-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/deeply-nested-reflections-expected.png
index c45610e..1b789a2 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/deeply-nested-reflections-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/deeply-nested-reflections-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-expected.png
index d7365d2..2c6e9dc 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-on-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-on-overflow-expected.png
index 16657d7..efb1b98 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-on-overflow-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-on-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-opacity-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-opacity-expected.png
index 122b5cb..f1a7e83f 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-opacity-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-size-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-size-change-expected.png
index 203fe86..4431646 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-size-change-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-size-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transition-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transition-expected.png
index 7f224c2f..55a9a5a 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transition-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transition-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/transform-inside-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/transform-inside-reflection-expected.png
index 8161158..b51eec8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/transform-inside-reflection-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/transform-inside-reflection-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-expected.txt
index c6903a8..b02dc1a 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME",
-      "bounds": [600, 600]
-    },
-    {
       "name": "LayoutView #document",
       "bounds": [600, 600],
       "contentsOpaqueForText": true,
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt
index fe0ce4b7..7b1de8b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME",
-      "bounds": [600, 600]
-    },
-    {
       "name": "Scrolling Contents Layer",
       "position": [22, 0],
       "bounds": [1500, 1500],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-expected.txt
index c6903a8..b02dc1a 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME",
-      "bounds": [600, 600]
-    },
-    {
       "name": "LayoutView #document",
       "bounds": [600, 600],
       "contentsOpaqueForText": true,
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-expected.txt
index 7c8a060..2b09557 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME",
-      "bounds": [600, 600]
-    },
-    {
       "name": "Scrolling Contents Layer",
       "position": [22, 0],
       "bounds": [1500, 1500],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-relative-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-relative-expected.txt
index 4dbcd21..190c128 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-relative-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-relative-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME",
-      "bounds": [600, 600]
-    },
-    {
       "name": "LayoutView #document",
       "bounds": [600, 600]
     },
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/no-squashing-into-fixed-position-that-clips-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/no-squashing-into-fixed-position-that-clips-expected.txt
index 0278bd79..28700ff 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/no-squashing-into-fixed-position-that-clips-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/no-squashing-into-fixed-position-that-clips-expected.txt
@@ -7,13 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutNGBlockFlow (positioned) DIV class='fixedpos'",
-      "position": [0, 75],
-      "bounds": [1200, 825],
-      "contentsOpaque": true,
-      "backgroundColor": "#ADD8E6"
-    },
-    {
       "name": "LayoutNGBlockFlow (positioned) DIV class='compositedlayer'",
       "bounds": [36, 150],
       "contentsOpaque": true,
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/selection-repaint-with-gaps-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/selection-repaint-with-gaps-expected.txt
index 6b8b6aa..772a6ef 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/selection-repaint-with-gaps-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/selection-repaint-with-gaps-expected.txt
@@ -17,7 +17,7 @@
       "position": [10, 40],
       "bounds": [151, 316],
       "invalidations": [
-        [0, 120, 64, 55]
+        [0, 121, 64, 54]
       ],
       "transform": 1
     }
@@ -53,8 +53,8 @@
       "position": [10, 40],
       "bounds": [151, 316],
       "invalidations": [
-        [0, 240, 64, 55],
-        [0, 120, 64, 55]
+        [0, 241, 64, 54],
+        [0, 121, 64, 54]
       ],
       "transform": 1
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-1-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-1-expected.txt
index ea785bf..e1155c58 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-1-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-1-expected.txt
@@ -28,7 +28,7 @@
     {
       "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='paragraph-c' class='overlapping cyan')",
       "position": [0, 300],
-      "bounds": [300, 450]
+      "bounds": [300, 1650]
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
@@ -58,10 +58,6 @@
       "bounds": [1178, 2100],
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
-      "invalidations": [
-        [0, 750, 300, 150],
-        [0, 150, 300, 150]
-      ],
       "transform": 1
     },
     {
@@ -72,23 +68,17 @@
       "transform": 2
     },
     {
-      "name": "LayoutNGBlockFlow (relative positioned) DIV id='paragraph-c' class='overlapping cyan'",
-      "position": [0, 300],
+      "name": "LayoutNGBlockFlow (relative positioned) DIV id='paragraph-b' class='overlapping lime'",
+      "position": [0, 150],
       "bounds": [300, 150],
       "contentsOpaque": true,
-      "backgroundColor": "#00FFFF",
-      "invalidations": [
-        [0, 0, 300, 150]
-      ],
+      "backgroundColor": "#00FF00",
       "transform": 1
     },
     {
-      "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='paragraph-d' class='overlapping lime')",
-      "position": [0, 450],
-      "bounds": [300, 450],
-      "invalidations": [
-        [0, 0, 300, 450]
-      ],
+      "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='paragraph-c' class='overlapping cyan')",
+      "position": [0, 300],
+      "bounds": [300, 1650],
       "transform": 1
     },
     {
@@ -138,17 +128,17 @@
       "transform": 2
     },
     {
-      "name": "LayoutNGBlockFlow (relative positioned) DIV id='paragraph-c' class='overlapping cyan'",
-      "position": [0, 300],
+      "name": "LayoutNGBlockFlow (relative positioned) DIV id='paragraph-b' class='overlapping lime'",
+      "position": [0, 150],
       "bounds": [300, 150],
       "contentsOpaque": true,
-      "backgroundColor": "#00FFFF",
+      "backgroundColor": "#00FF00",
       "transform": 1
     },
     {
-      "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='paragraph-d' class='overlapping lime')",
-      "position": [0, 450],
-      "bounds": [300, 450],
+      "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='paragraph-c' class='overlapping cyan')",
+      "position": [0, 300],
+      "bounds": [300, 1650],
       "transform": 1
     },
     {
@@ -188,10 +178,6 @@
       "bounds": [1178, 2100],
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
-      "invalidations": [
-        [0, 900, 300, 150],
-        [0, 300, 300, 150]
-      ],
       "transform": 1
     },
     {
@@ -202,23 +188,17 @@
       "transform": 2
     },
     {
-      "name": "LayoutNGBlockFlow (relative positioned) DIV id='paragraph-d' class='overlapping lime'",
-      "position": [0, 450],
+      "name": "LayoutNGBlockFlow (relative positioned) DIV id='paragraph-b' class='overlapping lime'",
+      "position": [0, 150],
       "bounds": [300, 150],
       "contentsOpaque": true,
       "backgroundColor": "#00FF00",
-      "invalidations": [
-        [0, 0, 300, 150]
-      ],
       "transform": 1
     },
     {
-      "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='paragraph-e' class='overlapping cyan')",
-      "position": [0, 600],
-      "bounds": [300, 450],
-      "invalidations": [
-        [0, 0, 300, 450]
-      ],
+      "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV id='paragraph-c' class='overlapping cyan')",
+      "position": [0, 300],
+      "bounds": [300, 1650],
       "transform": 1
     },
     {
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-3-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-3-expected.txt
index 9cadcc9..9460c2f1 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-3-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squash-above-fixed-3-expected.txt
@@ -145,11 +145,9 @@
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='container'",
       "position": [150, 150],
-      "bounds": [300, 6000],
+      "bounds": [150, 6000],
+      "contentsOpaque": true,
       "backgroundColor": "#008000",
-      "invalidations": [
-        [150, 0, 150, 150]
-      ],
       "transform": 1
     },
     {
@@ -160,6 +158,14 @@
       "transform": 2
     },
     {
+      "name": "LayoutNGBlockFlow (positioned) DIV id='innerScrolling'",
+      "position": [300, 150],
+      "bounds": [150, 150],
+      "contentsOpaque": true,
+      "backgroundColor": "#00FF00",
+      "transform": 1
+    },
+    {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [1178, 0],
       "bounds": [22, 900],
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squashing-inside-perspective-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squashing-inside-perspective-expected.txt
index 7cd774d..0527e68 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squashing-inside-perspective-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squashing-inside-perspective-expected.txt
@@ -8,9 +8,9 @@
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV",
+      "position": [12, 12],
       "contentsOpaque": true,
-      "drawsContent": false,
-      "transform": 1
+      "drawsContent": false
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV",
@@ -26,9 +26,10 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [12, 12, 0, 1]
-      ]
+        [0, 0, 1, -0.000666666666666666],
+        [0, 0, 0, 1]
+      ],
+      "origin": [12, 12]
     },
     {
       "id": 2,
@@ -36,10 +37,10 @@
       "transform": [
         [1, 0, 0, 0],
         [0, 1, 0, 0],
-        [0, 0, 1, -0.000666666666666666],
-        [0, 0, 0, 1]
+        [0, 0, 1, 0],
+        [12, 12, 0, 1]
       ],
-      "origin": [0, 0]
+      "flattenInheritedTransform": false
     },
     {
       "id": 3,
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-layer-creation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-layer-creation-expected.png
index 175d5cd..8523b4b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-layer-creation-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-layer-creation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/layer-visible-content-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/layer-visible-content-expected.txt
index 15e11add..b418b55 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/layer-visible-content-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/layer-visible-content-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutNGBlockFlow (positioned) DIV class='container'",
-      "bounds": [300, 300]
-    },
-    {
       "name": "LayoutNGBlockFlow DIV class='composited box'",
       "bounds": [15, 15],
       "drawsContent": false
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-1-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-1-expected.png
index 81fc419..0284412 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-1-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-parsing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-parsing-expected.png
index 526d726..5da70a8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-parsing-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-parsing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.png
index b2f35bd..3394708 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-expected.png
index 15d67b4..b6b34bf 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png
index 94bb12d..6078c899 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-lr/007-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-lr/007-expected.png
index 406527a..6e08688c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-lr/007-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-lr/007-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-rl/007-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-rl/007-expected.png
index 4cecad1..0b1f6d5 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-rl/007-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/block/positioning/auto/vertical-rl/007-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-01-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-01-expected.png
index 40f4c56..9594232c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-01-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-01-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-border-radius-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-border-radius-expected.png
index 95805107..1fdb45c7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-border-radius-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-border-radius-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-longhand-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-longhand-expected.png
index 40f4c56..9594232c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-longhand-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-longhand-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-massive-scale-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-massive-scale-expected.png
index 5c8e4802..e598fae 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-massive-scale-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-massive-scale-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-expected.png
index 3c8c0711..90b83c67 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-in-shorthand-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-in-shorthand-expected.png
index 3c8c0711..90b83c67 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-in-shorthand-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-in-shorthand-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-split-inline-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-split-inline-expected.png
index 1f5510d..7f8db0a 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-split-inline-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-split-inline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-expected.png
index 40f4c56..9594232c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-round-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-round-expected.png
index 2171b81..499f04b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-round-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-round-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-rotate-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-rotate-transform-expected.png
index c6ab150..b7033f33 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-rotate-transform-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-rotate-transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scale-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scale-transform-expected.png
index 01e44c65..bd062fbd3 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scale-transform-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scale-transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-expected.png
index e4819632..ba5bb01 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scrambled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scrambled-expected.png
index 40f4c56..9594232c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scrambled-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scrambled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slice-constrained-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slice-constrained-expected.png
index 9403866b..434920f 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slice-constrained-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slice-constrained-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slices-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slices-expected.png
index 876241b..5206d79 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slices-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slices-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-source-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-source-expected.png
index 40f4c56..9594232c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-source-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-source-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-composited-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-composited-child-expected.png
index 3ca0d5c..411ac7f 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-composited-child-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-composited-child-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/fieldsetBorderRadius-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/fieldsetBorderRadius-expected.png
index 7bd9e2dd..44f5a36 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/fieldsetBorderRadius-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/fieldsetBorderRadius-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/overflow-hidden-border-radius-force-backing-store-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/overflow-hidden-border-radius-force-backing-store-expected.txt
index f77807c..6c777a7f 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/overflow-hidden-border-radius-force-backing-store-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/overflow-hidden-border-radius-force-backing-store-expected.txt
@@ -7,11 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutNGBlockFlow (positioned) DIV id='outer'",
-      "bounds": [450, 450],
-      "transform": 1
-    },
-    {
       "name": "LayoutNGBlockFlow DIV id='inner'",
       "bounds": [450, 450],
       "transform": 1
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/scaled-border-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/scaled-border-image-expected.png
index 9f6103f..3578079 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/scaled-border-image-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/scaled-border-image-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/reflections/reflection-direction-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/reflections/reflection-direction-expected.png
index b26e3e2bb..fa6ab8f3 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/reflections/reflection-direction-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/reflections/reflection-direction-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-expected.png
index d6628b6..7515ecb 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-source-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-source-expected.png
index 40f4c56..9594232c 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-source-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-source-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-group-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-group-expected.png
index fec63e5..af788468 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-group-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-group-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-empty-alt-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-empty-alt-expected.png
index 7e2d94b..9c20db4 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-empty-alt-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-empty-alt-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4774354-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4774354-expected.png
index 6d4ff71..3f8f85be6 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4774354-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4774354-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4776765-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4776765-expected.png
index b56cbed..f1f9290 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4776765-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4776765-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-misaligned-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-misaligned-expected.txt
index 510d58f..9b871ea 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-misaligned-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-misaligned-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 12, 407, 411]
+        [355, 360, 61, 60]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/block-layout-inline-children-replaced-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/block-layout-inline-children-replaced-expected.txt
index 95d54fa..6aa4642 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/block-layout-inline-children-replaced-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/block-layout-inline-children-replaced-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 174, 603, 228]
+        [226, 175, 151, 151]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/box/box-inline-resize-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/box/box-inline-resize-expected.txt
index 84e2d3b5..e92a049 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/box/box-inline-resize-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/box/box-inline-resize-expected.txt
@@ -6,8 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [60, 155, 169, 42],
-        [12, 155, 169, 42],
+        [60, 156, 169, 41],
+        [12, 156, 169, 41],
         [12, 126, 48, 48]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.png
index 345135f..3f32501e 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.txt
index 8014c1d5..bb7f594 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [1186, 12, 1, 26]
+        [1187, 12, 2, 26]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-constant-repaint-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-constant-repaint-expected.txt
index 40bb4cc3..83814c7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-constant-repaint-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-constant-repaint-expected.txt
@@ -11,11 +11,6 @@
       "bounds": [1200, 450],
       "backgroundColor": "#FF0000E6",
       "transform": 2
-    },
-    {
-      "name": "Mask Layer",
-      "bounds": [1200, 450],
-      "transform": 2
     }
   ],
   "transforms": [
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-in-mask-layer-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-in-mask-layer-expected.txt
index d030a67..f452c52f 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-in-mask-layer-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/clip-path-in-mask-layer-expected.txt
@@ -14,14 +14,6 @@
         [0, 0, 300, 300]
       ],
       "transform": 1
-    },
-    {
-      "name": "Mask Layer",
-      "bounds": [300, 300],
-      "invalidations": [
-        [0, 0, 300, 300]
-      ],
-      "transform": 1
     }
   ],
   "transforms": [
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/control-clip-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/control-clip-expected.txt
index d72db56..ea1df3b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/control-clip-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/control-clip-expected.txt
@@ -6,8 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [13, 124, 95, 24],
-        [115, 169, 94, 24]
+        [13, 126, 95, 22],
+        [115, 170, 94, 22]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-expected.txt
index 21784f1..f9dc25d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-expected.txt
@@ -8,8 +8,8 @@
     },
     {
       "name": "LayoutInline (relative positioned) SPAN",
-      "position": [162, 162],
-      "drawsContent": false
+      "position": [12, 12],
+      "bounds": [300, 150]
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) (floating) DIV id='float'",
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-individual-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-individual-expected.txt
index 21784f1..f9dc25d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-individual-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-float-under-composited-inline-individual-expected.txt
@@ -8,8 +8,8 @@
     },
     {
       "name": "LayoutInline (relative positioned) SPAN",
-      "position": [162, 162],
-      "drawsContent": false
+      "position": [12, 12],
+      "bounds": [300, 150]
     },
     {
       "name": "LayoutNGBlockFlow (relative positioned) (floating) DIV id='float'",
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/iframe-inside-squashed-layer-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/iframe-inside-squashed-layer-expected.txt
index b4341833..2986010 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/iframe-inside-squashed-layer-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/iframe-inside-squashed-layer-expected.txt
@@ -23,11 +23,6 @@
       "transform": 1
     },
     {
-      "name": "LayoutIFrame IFRAME id='subframe'",
-      "bounds": [450, 225],
-      "transform": 2
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 324],
       "transform": 2
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/overlap-test-with-filter-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/overlap-test-with-filter-expected.txt
index 6054663..a8631b0 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/overlap-test-with-filter-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/overlap-test-with-filter-expected.txt
@@ -7,10 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [450, 150]
-    },
-    {
       "name": "LayoutView #document",
       "bounds": [450, 150],
       "contentsOpaqueForText": true,
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/stacked-float-under-composited-inline-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/stacked-float-under-composited-inline-expected.txt
index e55499e1..4f1dee1 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/stacked-float-under-composited-inline-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/stacked-float-under-composited-inline-expected.txt
@@ -8,11 +8,10 @@
     },
     {
       "name": "LayoutInline (relative positioned) SPAN",
-      "position": [237, 237],
-      "bounds": [150, 150],
-      "contentsOpaque": true,
+      "position": [12, 12],
+      "bounds": [375, 375],
       "invalidations": [
-        [0, 0, 150, 150]
+        [225, 225, 150, 150]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.png
index 357901b..e8256e64 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.txt
index aaa7fd2..4382bac 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/delete-into-nested-block-expected.txt
@@ -6,9 +6,11 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 231, 49, 29],
-        [12, 177, 49, 29],
-        [12, 204, 36, 29]
+        [12, 233, 49, 26],
+        [12, 179, 49, 26],
+        [12, 179, 41, 27],
+        [12, 206, 36, 27],
+        [12, 178, 2, 27]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/float-new-in-block-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/float-new-in-block-expected.txt
index 6b6ffa9..d9f3e56d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/float-new-in-block-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/float-new-in-block-expected.txt
@@ -6,7 +6,6 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 12, 1176, 30],
         [12, 12, 150, 150]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt
index 864277d7b..896799d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt
@@ -6,7 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [10, 10, 1180, 31]
+        [12, 12, 14, 27],
+        [25, 12, 2, 27]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-1-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-1-expected.txt
index 7a1bdc8..714c72cd 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-1-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-1-expected.txt
@@ -6,15 +6,15 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 334, 611, 190],
-        [19, 118, 610, 163],
-        [19, 712, 610, 136],
-        [19, 253, 610, 109],
-        [19, 280, 610, 108],
-        [19, 631, 534, 81],
-        [19, 577, 534, 81],
-        [96, 550, 457, 28],
+        [19, 362, 611, 189],
+        [19, 335, 611, 189],
+        [19, 119, 610, 162],
+        [19, 713, 610, 135],
+        [19, 254, 610, 108],
+        [19, 281, 610, 107],
+        [19, 632, 534, 80],
+        [19, 578, 534, 80],
+        [96, 551, 457, 27],
         [567, 207, 105, 45],
         [19, 528, 73, 97],
         [19, 501, 73, 97]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-10-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-10-expected.txt
index dc14f528..153226c7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-10-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-10-expected.txt
@@ -6,13 +6,13 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 712, 610, 136],
-        [19, 280, 610, 108],
-        [19, 118, 534, 163],
-        [19, 631, 534, 81],
-        [19, 577, 534, 81],
-        [96, 550, 457, 28],
+        [19, 362, 611, 189],
+        [19, 713, 610, 135],
+        [19, 281, 610, 107],
+        [19, 119, 534, 162],
+        [19, 632, 534, 80],
+        [19, 578, 534, 80],
+        [96, 551, 457, 27],
         [19, 544, 73, 97],
         [19, 528, 73, 97]
       ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-3-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-3-expected.txt
index 52c3118e1..40a48830 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-3-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-3-expected.txt
@@ -6,13 +6,13 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 712, 610, 136],
-        [19, 280, 610, 108],
-        [19, 118, 534, 163],
-        [19, 631, 534, 81],
-        [19, 577, 534, 81],
-        [96, 550, 533, 82],
+        [19, 362, 611, 189],
+        [19, 713, 610, 135],
+        [19, 281, 610, 107],
+        [19, 119, 534, 162],
+        [19, 632, 534, 80],
+        [19, 578, 534, 80],
+        [96, 551, 533, 81],
         [532, 582, 97, 121],
         [556, 555, 73, 121]
       ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-4-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-4-expected.txt
index 14af114..a5ec9384 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-4-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-4-expected.txt
@@ -6,13 +6,13 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 712, 610, 136],
-        [19, 280, 610, 108],
-        [19, 631, 610, 81],
-        [19, 118, 534, 163],
-        [19, 577, 534, 81],
-        [96, 550, 457, 28],
+        [19, 362, 611, 189],
+        [19, 713, 610, 135],
+        [19, 281, 610, 107],
+        [19, 632, 610, 80],
+        [19, 119, 534, 162],
+        [19, 578, 534, 80],
+        [96, 551, 457, 27],
         [556, 555, 73, 121]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-5-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-5-expected.txt
index 004bf175..76fa1e81 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-5-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-5-expected.txt
@@ -6,13 +6,13 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 712, 610, 136],
-        [19, 280, 610, 108],
-        [19, 118, 534, 163],
-        [19, 631, 534, 81],
-        [19, 577, 534, 81],
-        [72, 550, 481, 28],
+        [19, 362, 611, 189],
+        [19, 713, 610, 135],
+        [19, 281, 610, 107],
+        [19, 119, 534, 162],
+        [19, 632, 534, 80],
+        [19, 578, 534, 80],
+        [72, 551, 481, 27],
         [19, 528, 73, 97]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-6-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-6-expected.txt
index e74405eba..6dec61f1 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-6-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-6-expected.txt
@@ -6,14 +6,14 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 712, 610, 136],
-        [19, 280, 610, 108],
-        [19, 118, 534, 163],
-        [19, 631, 534, 81],
-        [19, 577, 534, 81],
-        [96, 550, 457, 28],
-        [19, 528, 73, 97]
+        [19, 362, 611, 189],
+        [19, 713, 610, 135],
+        [19, 281, 610, 107],
+        [19, 119, 534, 162],
+        [19, 632, 534, 80],
+        [19, 578, 534, 80],
+        [96, 551, 457, 27],
+        [39, 528, 33, 26]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-7-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-7-expected.txt
index 3c7d991..c5b7baab 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-7-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-7-expected.txt
@@ -6,13 +6,13 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 712, 610, 136],
-        [19, 280, 610, 108],
-        [19, 118, 534, 163],
-        [19, 631, 534, 81],
-        [19, 577, 534, 81],
-        [96, 550, 457, 28]
+        [19, 362, 611, 189],
+        [19, 713, 610, 135],
+        [19, 281, 610, 107],
+        [19, 119, 534, 162],
+        [19, 632, 534, 80],
+        [19, 578, 534, 80],
+        [96, 551, 457, 27]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-8-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-8-expected.txt
index 4c1fa16..7237518 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-8-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-8-expected.txt
@@ -6,13 +6,13 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [19, 361, 611, 190],
-        [19, 712, 610, 136],
-        [19, 280, 610, 108],
-        [19, 118, 534, 163],
-        [19, 604, 534, 108],
-        [19, 550, 534, 82],
-        [19, 577, 534, 81],
+        [19, 362, 611, 189],
+        [19, 713, 610, 135],
+        [19, 281, 610, 107],
+        [19, 119, 534, 162],
+        [19, 605, 534, 107],
+        [19, 551, 534, 81],
+        [19, 578, 534, 80],
         [19, 528, 73, 97]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-9-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-9-expected.txt
index a695702..cea07a9 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-9-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/line-flow-with-floats-9-expected.txt
@@ -10,10 +10,6 @@
       ]
     },
     {
-      "name": "LayoutIFrame IFRAME id='iframe'",
-      "bounds": [750, 900]
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [728, 906]
     },
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multi-layout-one-frame-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multi-layout-one-frame-expected.txt
index 5ad984f8..a3b27d4 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multi-layout-one-frame-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multi-layout-one-frame-expected.txt
@@ -6,8 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [282, 15, 78, 25],
-        [18, 15, 78, 25],
+        [282, 16, 78, 23],
+        [18, 16, 78, 23],
         [270, 13, 6, 27]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/column-rules-fixed-height-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/column-rules-fixed-height-expected.txt
index b569b7a..954f2366 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/column-rules-fixed-height-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/column-rules-fixed-height-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 75, 788, 473]
+        [162, 75, 637, 473]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-as-paint-container-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-as-paint-container-expected.txt
index 0304893..9ecd2383 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-as-paint-container-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-as-paint-container-expected.txt
@@ -11,7 +11,23 @@
       "bounds": [945, 270],
       "backfaceVisibility": "hidden",
       "invalidations": [
-        [0, 0, 938, 270]
+        [487, 210, 451, 30],
+        [487, 150, 451, 30],
+        [487, 30, 451, 30],
+        [487, 0, 451, 30],
+        [0, 210, 450, 30],
+        [0, 30, 450, 30],
+        [487, 90, 421, 30],
+        [487, 180, 391, 30],
+        [0, 150, 390, 30],
+        [0, 180, 360, 30],
+        [487, 60, 331, 30],
+        [0, 120, 330, 30],
+        [0, 60, 330, 30],
+        [0, 0, 330, 30],
+        [0, 90, 300, 30],
+        [487, 120, 211, 30],
+        [0, 240, 180, 30]
       ],
       "transform": 1
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-repaint-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-repaint-expected.txt
index 6ff30fc..772a5016 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-repaint-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-repaint-expected.txt
@@ -7,7 +7,7 @@
       "backgroundColor": "#FFFFFF",
       "invalidations": [
         [351, 21, 450, 76],
-        [13, 14, 20, 85]
+        [13, 14, 20, 84]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-resize-with-rule-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-resize-with-rule-expected.txt
index d6a02e1..b80f492 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-resize-with-rule-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-resize-with-rule-expected.txt
@@ -6,7 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 12, 900, 300]
+        [114, 12, 696, 300],
+        [77, 12, 471, 300]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-with-overflowing-block-rl-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-with-overflowing-block-rl-expected.txt
index 70e379b7..644f9e0 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-with-overflowing-block-rl-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/multicol/multicol-with-overflowing-block-rl-expected.txt
@@ -6,8 +6,9 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 12, 1188, 750],
-        [0, 12, 762, 750]
+        [12, 512, 750, 250],
+        [12, 262, 750, 250],
+        [12, 12, 750, 250]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/focus-ring-on-child-move-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/focus-ring-on-child-move-expected.txt
index 9a6c199..6f671b2 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/focus-ring-on-child-move-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/focus-ring-on-child-move-expected.txt
@@ -6,8 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [450, 75, 30, 450],
-        [225, 75, 30, 450]
+        [148, 73, 454, 454]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-2-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-2-expected.txt
index 7969b21c..dde2d74 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-2-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-2-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [315, 0, 75, 22]
+        [316, 0, 74, 22]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-expected.png
index 1d136dee..f808263 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/outline/inline-outline-repaint-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-expected.txt
index ba5d4923..7d01dbe 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-expected.txt
@@ -50,31 +50,31 @@
         [88, 630, 61, 15],
         [88, 324, 61, 15],
         [88, 315, 61, 15],
-        [88, 383, 25, 26],
-        [88, 374, 25, 26],
-        [94, 33, 25, 25],
-        [88, 816, 25, 25],
-        [88, 807, 25, 25],
-        [88, 699, 25, 25],
-        [88, 690, 25, 25],
-        [88, 325, 25, 25],
-        [88, 316, 25, 25],
-        [88, 267, 25, 25],
-        [88, 258, 25, 25],
-        [85, 150, 25, 25],
-        [85, 141, 25, 25],
+        [88, 384, 25, 25],
+        [88, 375, 25, 25],
+        [94, 34, 25, 24],
+        [88, 817, 25, 24],
+        [88, 808, 25, 24],
         [88, 758, 25, 24],
         [88, 749, 25, 24],
+        [88, 700, 25, 24],
+        [88, 691, 25, 24],
         [88, 641, 25, 24],
         [88, 632, 25, 24],
+        [88, 326, 25, 24],
+        [88, 317, 25, 24],
+        [88, 268, 25, 24],
+        [88, 259, 25, 24],
         [88, 209, 25, 24],
         [88, 200, 25, 24],
+        [85, 151, 25, 24],
+        [85, 142, 25, 24],
         [85, 92, 25, 24],
         [85, 83, 25, 24],
-        [86, 504, 24, 25],
-        [86, 495, 24, 25],
         [86, 563, 24, 24],
-        [86, 554, 24, 24]
+        [86, 554, 24, 24],
+        [86, 505, 24, 24],
+        [86, 496, 24, 24]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-right-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-right-expected.txt
index a0e2f42..2454d81 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-right-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/float-overflow-right-expected.txt
@@ -50,31 +50,31 @@
         [1051, 630, 61, 15],
         [1051, 324, 61, 15],
         [1051, 315, 61, 15],
-        [1087, 383, 25, 26],
-        [1087, 374, 25, 26],
-        [1090, 150, 25, 25],
-        [1090, 141, 25, 25],
-        [1087, 816, 25, 25],
-        [1087, 807, 25, 25],
-        [1087, 699, 25, 25],
-        [1087, 690, 25, 25],
-        [1087, 325, 25, 25],
-        [1087, 316, 25, 25],
-        [1087, 267, 25, 25],
-        [1087, 258, 25, 25],
-        [1081, 33, 25, 25],
+        [1087, 384, 25, 25],
+        [1087, 375, 25, 25],
+        [1090, 151, 25, 24],
+        [1090, 142, 25, 24],
         [1090, 92, 25, 24],
         [1090, 83, 25, 24],
+        [1087, 817, 25, 24],
+        [1087, 808, 25, 24],
         [1087, 758, 25, 24],
         [1087, 749, 25, 24],
+        [1087, 700, 25, 24],
+        [1087, 691, 25, 24],
         [1087, 641, 25, 24],
         [1087, 632, 25, 24],
+        [1087, 326, 25, 24],
+        [1087, 317, 25, 24],
+        [1087, 268, 25, 24],
+        [1087, 259, 25, 24],
         [1087, 209, 25, 24],
         [1087, 200, 25, 24],
-        [1090, 504, 24, 25],
-        [1090, 495, 24, 25],
+        [1081, 34, 25, 24],
         [1090, 563, 24, 24],
-        [1090, 554, 24, 24]
+        [1090, 554, 24, 24],
+        [1090, 505, 24, 24],
+        [1090, 496, 24, 24]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/overflow-delete-line-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/overflow-delete-line-expected.txt
index 90cf661..b762a4b1 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/overflow-delete-line-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/overflow/overflow-delete-line-expected.txt
@@ -6,8 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 104, 111, 29],
-        [12, 104, 71, 56]
+        [12, 105, 111, 27],
+        [12, 105, 65, 54]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-changed-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-changed-expected.txt
index f99f17a..6c4805d8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-changed-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-changed-expected.txt
@@ -5,9 +5,6 @@
       "bounds": [1200, 3024],
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
-      "invalidations": [
-        [150, 750, 150, 150]
-      ],
       "transform": 1
     },
     {
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-moved-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-moved-expected.txt
index 9a7f456..d33bee4 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-moved-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/absolute-position-moved-expected.txt
@@ -15,8 +15,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FF0000",
       "invalidations": [
-        [150, 150, 150, 150],
-        [0, 0, 150, 150]
+        [150, 150, 150, 150]
       ],
       "transform": 1
     },
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/block-layout-inline-children-float-positioned-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/block-layout-inline-children-float-positioned-expected.txt
index 59968a5..2024ebd2 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/block-layout-inline-children-float-positioned-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/position/block-layout-inline-children-float-positioned-expected.txt
@@ -6,7 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 51, 903, 153]
+        [453, 53, 449, 27],
+        [227, 53, 449, 27]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/push-block-with-first-line-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/push-block-with-first-line-expected.txt
index ccfe57a..f7b22be 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/push-block-with-first-line-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/push-block-with-first-line-expected.txt
@@ -6,8 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 102, 1176, 30],
-        [12, 12, 1176, 30]
+        [12, 102, 210, 30],
+        [12, 12, 210, 30]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-redraw-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-redraw-expected.txt
index 90c4bc45..72ee45f 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-redraw-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-redraw-expected.txt
@@ -6,10 +6,10 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [582, 400, 405, 109],
-        [117, 400, 405, 109],
-        [469, 31, 166, 313],
-        [469, 565, 166, 235]
+        [582, 401, 405, 108],
+        [117, 401, 405, 108],
+        [470, 31, 164, 313],
+        [470, 566, 164, 233]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-with-rotation-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-with-rotation-expected.txt
index 7e67153a..a116c75 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-with-rotation-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/reflection/reflection-with-rotation-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [34, 76, 106, 164]
+        [35, 77, 104, 162]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/repaint-across-writing-mode-boundary-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/repaint-across-writing-mode-boundary-expected.txt
index 78dfc5e8..5838d06f2 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/repaint-across-writing-mode-boundary-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/repaint-across-writing-mode-boundary-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [823, 286, 34, 52]
+        [822, 120, 35, 270]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/ruby-flipped-blocks-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/ruby-flipped-blocks-expected.txt
index ce72f33..146c7488 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/ruby-flipped-blocks-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/ruby-flipped-blocks-expected.txt
@@ -8,7 +8,7 @@
       "invalidations": [
         [12, 42, 30, 30],
         [12, 12, 30, 30],
-        [42, 49, 15, 16]
+        [42, 50, 15, 15]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/composited-iframe-scroll-repaint-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/composited-iframe-scroll-repaint-expected.txt
index 82e39ee..5d6f459b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/composited-iframe-scroll-repaint-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/composited-iframe-scroll-repaint-expected.txt
@@ -7,33 +7,28 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME",
-      "bounds": [456, 231],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [450, 774],
       "contentsOpaqueForText": true,
       "backgroundColor": "#EEEEEE",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "LayoutNGBlockFlow BODY",
       "bounds": [426, 750],
-      "transform": 4
+      "transform": 3
     },
     {
       "name": "Horizontal Scrollbar Layer",
       "position": [0, 225],
       "bounds": [450, 0],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "Vertical Scrollbar Layer",
       "position": [450, 0],
       "bounds": [0, 225],
-      "transform": 2
+      "transform": 1
     }
   ],
   "transforms": [
@@ -43,7 +38,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 12, 0, 1]
+        [15, 15, 0, 1]
       ]
     },
     {
@@ -53,7 +48,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [0, -30, 0, 1]
       ]
     },
     {
@@ -63,16 +58,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, -30, 0, 1]
-      ]
-    },
-    {
-      "id": 4,
-      "parent": 3,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [12, 12, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/fixed-after-scroll-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/fixed-after-scroll-expected.txt
index 289528f..651fbbe 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/fixed-after-scroll-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/fixed-after-scroll-expected.txt
@@ -5,9 +5,6 @@
       "bounds": [1178, 3024],
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
-      "invalidations": [
-        [12, 300, 150, 150]
-      ],
       "transform": 1
     },
     {
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/iframe-scrollbar-hover-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/iframe-scrollbar-hover-expected.txt
index 49c38e9c..6dd670d4 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/iframe-scrollbar-hover-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/iframe-scrollbar-hover-expected.txt
@@ -7,20 +7,15 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME id='iframe'",
-      "bounds": [306, 306],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [278, 474],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [278, 0],
       "bounds": [22, 300],
-      "transform": 2
+      "transform": 1
     }
   ],
   "transforms": [
@@ -30,17 +25,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, 150, 0, 1]
-      ]
-    },
-    {
-      "id": 2,
-      "parent": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [3, 153, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/layout-state-scrolloffset2-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/layout-state-scrolloffset2-expected.txt
index b9d1d4f..7211a7e 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/layout-state-scrolloffset2-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/layout-state-scrolloffset2-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [153, 180, 63, 27]
+        [153, 181, 63, 26]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/outline-change-in-scrollers-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/outline-change-in-scrollers-expected.txt
index 2c4622f..50453a5 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/outline-change-in-scrollers-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/outline-change-in-scrollers-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [258, 258, 113, 113]
+        [259, 259, 112, 112]
       ]
     },
     {
@@ -51,7 +51,7 @@
       "position": [15, 15],
       "bounds": [143, 225],
       "invalidations": [
-        [30, 0, 113, 113]
+        [31, 0, 112, 113]
       ],
       "transform": 2
     },
@@ -115,7 +115,7 @@
       "position": [37, 15],
       "bounds": [143, 225],
       "invalidations": [
-        [30, 0, 113, 113]
+        [31, 0, 112, 113]
       ],
       "transform": 4
     },
@@ -147,7 +147,7 @@
       "position": [15, 15],
       "bounds": [225, 143],
       "invalidations": [
-        [0, 30, 113, 113]
+        [0, 31, 113, 112]
       ],
       "transform": 5
     },
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-auto-in-overflow-auto-scrolled-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-auto-in-overflow-auto-scrolled-expected.txt
index ed2333f..9aeeaec 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-auto-in-overflow-auto-scrolled-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-auto-in-overflow-auto-scrolled-expected.txt
@@ -56,7 +56,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, -480, 0, 1]
+        [0, -450, 0, 1]
       ]
     },
     {
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-scroll-in-overflow-scroll-scrolled-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-scroll-in-overflow-scroll-scrolled-expected.txt
index ed2333f..9aeeaec 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-scroll-in-overflow-scroll-scrolled-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/overflow-scroll-in-overflow-scroll-scrolled-expected.txt
@@ -56,7 +56,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, -480, 0, 1]
+        [0, -450, 0, 1]
       ]
     },
     {
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
index 9c543a23..f6e6ed7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
@@ -7,34 +7,29 @@
       "backgroundColor": "#C0C0C0"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME",
-      "bounds": [383, 382],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [3012, 3024],
       "contentsOpaqueForText": true,
       "backgroundColor": "#FFFFFF",
-      "transform": 3
+      "transform": 2
     },
     {
       "name": "ContentsLayer for Horizontal Scrollbar Layer",
       "position": [0, 353],
       "bounds": [353, 22],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [353, 0],
       "bounds": [22, 353],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "Scroll Corner Layer",
       "position": [353, 353],
       "bounds": [22, 22],
-      "transform": 2
+      "transform": 1
     }
   ],
   "transforms": [
@@ -44,7 +39,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, 94, 0, 1]
+        [4, 98, 0, 1]
       ]
     },
     {
@@ -54,16 +49,6 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [4, 4, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "parent": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
         [-15, -15, 0, 1]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/resize-scrollable-iframe-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/resize-scrollable-iframe-expected.txt
index a7c3601..5b1fa05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/resize-scrollable-iframe-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/resize-scrollable-iframe-expected.txt
@@ -7,11 +7,6 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame IFRAME id='iframe'",
-      "bounds": [450, 450],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [1512, 1524],
       "transform": 1
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/scrolled-iframe-scrollbar-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/scrolled-iframe-scrollbar-change-expected.txt
index 4a748f26..67538b0 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/scrolled-iframe-scrollbar-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/scroll/scrolled-iframe-scrollbar-change-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 1206, 906]
+        [3, 3, 1200, 900]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/search-field-cancel-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/search-field-cancel-expected.txt
index 8e6df90..f4f0f45 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/search-field-cancel-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/search-field-cancel-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [18, 66, 88, 25]
+        [18, 67, 88, 23]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/japanese-rl-selection-clear-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/japanese-rl-selection-clear-expected.txt
index b6d14d2..0241198 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/japanese-rl-selection-clear-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/japanese-rl-selection-clear-expected.txt
@@ -6,7 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [465, 184, 701, 593]
+        [465, 185, 695, 584],
+        [554, 185, 612, 592]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.png
index f1317572..0748b93 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.txt
index 139b4a6f..5ea3268 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [278, 301, 27, 264]
+        [274, 302, 28, 263]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-delete-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-delete-expected.png
index f513e640..5496486 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-delete-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-delete-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-remove-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-remove-expected.png
index 84ca217..c2d5791 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-remove-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-after-remove-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-clear-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-clear-expected.txt
index 1ac3c26..2e1eb0b9 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-clear-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-clear-expected.txt
@@ -6,7 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 12, 150, 300]
+        [12, 162, 150, 150],
+        [12, 12, 147, 300]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-rl-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-rl-expected.txt
index de76860a..8327cac 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-rl-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/selection/selection-rl-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [1161, 59, 27, 118]
+        [1161, 12, 27, 223]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/shadow-multiple-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/shadow-multiple-expected.png
index 7bcf13e..31264d7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/shadow-multiple-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/shadow-multiple-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/stacked-diacritics-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/stacked-diacritics-expected.txt
index c3a589e..d92b428 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/stacked-diacritics-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/stacked-diacritics-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [28, 239, 196, 61]
+        [28, 240, 196, 60]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/subtree-root-skipped-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/subtree-root-skipped-expected.txt
index d39b866..3daea14 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/subtree-root-skipped-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/subtree-root-skipped-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [18, 15, 51, 25],
+        [18, 16, 51, 23],
         [12, 432, 15, 30]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/animate-fill-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/animate-fill-expected.txt
index 5c4ce87..fd4e3be05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/animate-fill-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/animate-fill-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 150, 150]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt
index 9d81e94..6f697e1 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 606, 306]
+        [2, 2, 603, 303]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt
index 9d81e94..6f697e1 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 606, 306]
+        [2, 2, 603, 303]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-change-target-id-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-change-target-id-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-change-target-id-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-change-target-id-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-multiple-targets-id-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-multiple-targets-id-change-expected.txt
index 34131d64..4d6f6a2c8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-multiple-targets-id-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-multiple-targets-id-change-expected.txt
@@ -6,8 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [67, 0, 91, 165],
-        [0, 0, 83, 165]
+        [67, 0, 91, 135],
+        [0, 0, 83, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-reference-invalidation-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-reference-invalidation-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-reference-invalidation-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-reference-invalidation-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-remove-target-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-remove-target-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-remove-target-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-remove-target-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-add-to-document-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-add-to-document-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-add-to-document-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-add-to-document-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-2-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-2-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-2-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-2-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-attribute-change-with-use-indirection-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-changes-id-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-changes-id-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-changes-id-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-changes-id-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-id-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-id-change-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-id-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-id-change-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-inline-style-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-inline-style-change-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-inline-style-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-inline-style-change-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-property-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-property-change-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-property-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-property-change-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-reappend-to-document-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-reappend-to-document-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-reappend-to-document-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-reappend-to-document-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-remove-from-document-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-remove-from-document-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-remove-from-document-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-remove-from-document-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-style-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-style-change-expected.txt
index 5c4ce87..3a9ac05 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-style-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/feImage-target-style-change-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 165, 165]
+        [0, 0, 135, 135]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-child-repaint-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-child-repaint-expected.txt
index 829214b..ea998470 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-child-repaint-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-child-repaint-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 159, 159]
+        [0, 0, 158, 158]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-reference-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-reference-change-expected.txt
index b99e49a..d9f3e56d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-reference-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-reference-change-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 12, 165, 165]
+        [12, 12, 150, 150]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-refresh-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-refresh-expected.txt
index 366e38cdd..5a6e249 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-refresh-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/filter-refresh-expected.txt
@@ -6,17 +6,17 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [15, 255, 198, 54],
-        [15, 195, 198, 54],
-        [210, 210, 54, 54],
-        [210, 150, 54, 54],
-        [210, 90, 54, 54],
+        [15, 255, 174, 54],
+        [15, 195, 174, 54],
         [135, 135, 54, 54],
         [135, 75, 54, 54],
         [75, 135, 54, 54],
         [75, 75, 54, 54],
-        [15, 135, 54, 54],
-        [15, 75, 54, 54]
+        [210, 210, 45, 45],
+        [210, 150, 45, 45],
+        [210, 90, 45, 45],
+        [15, 135, 45, 45],
+        [15, 75, 45, 45]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/resource-invalidate-on-target-update-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/resource-invalidate-on-target-update-expected.txt
index a4d31f0b..0fb3f09 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/resource-invalidate-on-target-update-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/resource-invalidate-on-target-update-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 360, 345, 180],
+        [0, 360, 333, 180],
         [15, 195, 300, 150],
         [15, 15, 300, 150]
       ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt
index f6ef017..c6bae55 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt
@@ -6,11 +6,11 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [314, 1478, 259, 28],
-        [643, 1478, 221, 28],
-        [577, 1475, 62, 34],
-        [636, 1478, 7, 28],
-        [573, 1478, 7, 28]
+        [314, 1478, 259, 27],
+        [643, 1478, 221, 27],
+        [577, 1475, 62, 33],
+        [636, 1478, 7, 27],
+        [573, 1478, 7, 27]
       ],
       "transform": 1
     },
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/svg-background-partial-redraw-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/svg-background-partial-redraw-expected.txt
index 374ece3..025d4f4 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/svg-background-partial-redraw-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/svg-background-partial-redraw-expected.txt
@@ -6,8 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [13, 226, 301, 151],
-        [12, 75, 300, 300]
+        [13, 226, 301, 151]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/text-selection-update-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/text-selection-update-expected.txt
index 1200836..462ba60 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/text-selection-update-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/text-selection-update-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [34, 0, 37, 21]
+        [15, 0, 63, 21]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
index f70aa4f..f5b349d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
@@ -9,11 +9,11 @@
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='target'",
       "position": [-2, -2],
-      "bounds": [304, 304],
+      "bounds": [604, 814],
       "backfaceVisibility": "hidden",
       "backgroundColor": "#FFFF00",
       "invalidations": [
-        [0, 0, 304, 304]
+        [0, 0, 604, 814]
       ],
       "transform": 1
     },
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/use-disappears-after-style-update-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/use-disappears-after-style-update-expected.txt
index a86c5838..87bc178 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/use-disappears-after-style-update-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/svg/use-disappears-after-style-update-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [75, 15, 54, 54],
+        [75, 15, 45, 45],
         [15, 15, 45, 45]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/caret-contenteditable-content-after-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/caret-contenteditable-content-after-expected.png
index d9a539ff..c56040d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/caret-contenteditable-content-after-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/caret-contenteditable-content-after-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.txt
index 9b71164..16b795a 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.txt
@@ -6,7 +6,10 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [14, 105, 1255, 28]
+        [1214, 106, 55, 26],
+        [814, 106, 55, 26],
+        [414, 106, 55, 26],
+        [14, 106, 55, 26]
       ]
     },
     {
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-auto-in-overflow-auto-scrolled-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-auto-in-overflow-auto-scrolled-expected.txt
index 6f5e620..4e408d8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-auto-in-overflow-auto-scrolled-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-auto-in-overflow-auto-scrolled-expected.txt
@@ -56,7 +56,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, -480, 0, 1]
+        [0, -450, 0, 1]
       ]
     },
     {
@@ -76,7 +76,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, -600, 0, 1]
+        [0, -609, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-scroll-in-overflow-scroll-scrolled-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-scroll-in-overflow-scroll-scrolled-expected.txt
index 6f5e620..4e408d8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-scroll-in-overflow-scroll-scrolled-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-overflow-scroll-in-overflow-scroll-scrolled-expected.txt
@@ -56,7 +56,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, -480, 0, 1]
+        [0, -450, 0, 1]
       ]
     },
     {
@@ -76,7 +76,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [0, -600, 0, 1]
+        [0, -609, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-section-visual-overflow-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-section-visual-overflow-expected.txt
index 7d5b64a6..f5c8795d 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-section-visual-overflow-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/table/table-section-visual-overflow-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [214, 0, 181, 177],
+        [215, 0, 180, 177],
         [0, 0, 177, 177]
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-line-clamp-truncation-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-line-clamp-truncation-expected.txt
index 58a8967..0a67a5b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-line-clamp-truncation-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-line-clamp-truncation-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [12, 16, 428, 64]
+        [12, 17, 428, 62]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-match-document-change-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-match-document-change-expected.txt
index c5a89a3c..7401db50 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-match-document-change-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/text-match-document-change-expected.txt
@@ -7,20 +7,15 @@
       "backgroundColor": "#FFFFFF"
     },
     {
-      "name": "LayoutIFrame (positioned) IFRAME id='iframe'",
-      "bounds": [456, 606],
-      "transform": 1
-    },
-    {
       "name": "Scrolling Contents Layer",
       "bounds": [428, 1578],
-      "transform": 2
+      "transform": 1
     },
     {
       "name": "ContentsLayer for Vertical Scrollbar Layer",
       "position": [428, 0],
       "bounds": [22, 600],
-      "transform": 2
+      "transform": 1
     }
   ],
   "transforms": [
@@ -30,17 +25,7 @@
         [1, 0, 0, 0],
         [0, 1, 0, 0],
         [0, 0, 1, 0],
-        [12, 150, 0, 1]
-      ]
-    },
-    {
-      "id": 2,
-      "parent": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [3, 3, 0, 1]
+        [15, 153, 0, 1]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.png
index 73b0d04..613bd88 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.txt
index 40eaa3a1..a518bb7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/caret-with-transformation-expected.txt
@@ -6,8 +6,8 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [64, 54, 15, 24],
-        [526, 321, 14, 24]
+        [64, 54, 16, 25],
+        [526, 321, 15, 24]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/transform-layout-repaint-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/transform-layout-repaint-expected.txt
index ffe9dbe..73bc2dc 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/transform-layout-repaint-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/transform/transform-layout-repaint-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [78, 76, 62, 45]
+        [78, 77, 61, 44]
       ]
     }
   ]
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/window-resize/window-resize-background-image-fixed-scrolling-contents-expected.txt b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/window-resize/window-resize-background-image-fixed-scrolling-contents-expected.txt
index 7d14dff8..612e2e0 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/window-resize/window-resize-background-image-fixed-scrolling-contents-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/window-resize/window-resize-background-image-fixed-scrolling-contents-expected.txt
@@ -6,7 +6,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 900, 375]
+        [0, 0, 878, 375]
       ]
     },
     {
@@ -52,7 +52,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 600, 900]
+        [0, 0, 578, 900]
       ]
     },
     {
@@ -75,7 +75,7 @@
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "invalidations": [
-        [0, 0, 1200, 900]
+        [0, 0, 1178, 900]
       ]
     },
     {
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-font-64px-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-font-64px-expected.png
index 12aa1f72..9d2c38e 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-font-64px-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-font-64px-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-2000-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-2000-expected.png
index 74d9c2a4..6158f9a7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-2000-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-2000-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-250-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-250-expected.png
index ebe65b4..96659cb8 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-250-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/document-markers-zoom-250-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/inline_spelling_markers-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/inline_spelling_markers-expected.png
index 90a791e..feca8ef 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/inline_spelling_markers-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/markers/inline_spelling_markers-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/selection/image-writing-modes-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/selection/image-writing-modes-expected.png
index 96c3a6ea..faca1df 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/selection/image-writing-modes-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/selection/image-writing-modes-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/as-border-image/svg-as-border-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/as-border-image/svg-as-border-image-expected.png
index 2170cd59..4a4382e 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/as-border-image/svg-as-border-image-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/as-border-image/svg-as-border-image-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/batik/text/textProperties-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/batik/text/textProperties-expected.png
index 1a2ea91..814e8c7 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/batik/text/textProperties-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/batik/text/textProperties-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/custom/inline-svg-in-xhtml-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/custom/inline-svg-in-xhtml-expected.png
index 7394114..0dec8df 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/custom/inline-svg-in-xhtml-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/custom/inline-svg-in-xhtml-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/combining-character-queries-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/combining-character-queries-expected.png
index 8bbda33a..7ec0aba 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/combining-character-queries-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/combining-character-queries-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/non-bmp-positioning-lists-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/non-bmp-positioning-lists-expected.png
index dd6ff0a5..9afb5c61 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/non-bmp-positioning-lists-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/non-bmp-positioning-lists-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/surrogate-pair-queries-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/surrogate-pair-queries-expected.png
index 48895ea1..2ed958b 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/surrogate-pair-queries-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/svg/text/surrogate-pair-queries-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/hindi-rotated-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/hindi-rotated-expected.png
index 944d1d4..6311b53 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/hindi-rotated-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/hindi-rotated-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/zoom-menulist-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/zoom-menulist-expected.png
index 9bbfebf6e..9d12cd5 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/zoom-menulist-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/2d/zoom-menulist-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/transformed-caret-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/transformed-caret-expected.png
index 5b7f1db..a884a38 100644
--- a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/transformed-caret-expected.png
+++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/transforms/transformed-caret-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/webaudio/AudioBufferSource/audiobuffersource-loop-points.html b/third_party/blink/web_tests/webaudio/AudioBufferSource/audiobuffersource-loop-points.html
index 58c850b8..07d3cf7a 100644
--- a/third_party/blink/web_tests/webaudio/AudioBufferSource/audiobuffersource-loop-points.html
+++ b/third_party/blink/web_tests/webaudio/AudioBufferSource/audiobuffersource-loop-points.html
@@ -137,7 +137,7 @@
                   // in ULP. This is experimentally determined. Assuming that
                   // the reference file is a 16-bit wav file, the max values in
                   // the wave file are +/- 32768.
-                  let maxUlp = 0;
+                  let maxUlp = 1.9532e-3;
                   let threshold = maxUlp / 32768;
 
                   for (let k = 0; k < renderedAudio.numberOfChannels; ++k) {
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index 46f888ca..1971fdd 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -8802,9 +8802,9 @@
     getter format
     getter planes
     getter timestamp
-    method close
     method constructor
     method createImageBitmap
+    method destroy
 interface VideoPlaybackQuality
     attribute @@toStringTag
     getter corruptedVideoFrames
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/task_result_error.html b/third_party/blink/web_tests/wpt_internal/scheduler/task_result_error.html
index 004900a..dc24c2f8 100644
--- a/third_party/blink/web_tests/wpt_internal/scheduler/task_result_error.html
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/task_result_error.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<title>Scheduling API: Task.result When a Task Throws an Erorr</title>
+<title>Scheduling API: Task.result When a Task Throws an Error</title>
 <link rel="author" title="Scott Haseley" href="mailto:shaseley@chromium.org">
 <link rel="help" href="https://github.com/WICG/main-thread-scheduling">
 <script src="/resources/testharness.js"></script>
@@ -8,10 +8,6 @@
 <script>
 'use strict';
 
-// Uncaught exceptions in asynchronous tasks are still reported to the global
-// handler, which we expect to happen in this test.
-setup({allow_uncaught_exception : true});
-
 async_test(t => {
   (function() {
     let task_promise = scheduler.postTask(() => { throw Error('Failed'); });
diff --git a/third_party/closure_compiler/externs/OWNERS b/third_party/closure_compiler/externs/OWNERS
index 50c5ce1..fa50a87 100644
--- a/third_party/closure_compiler/externs/OWNERS
+++ b/third_party/closure_compiler/externs/OWNERS
@@ -6,4 +6,5 @@
 per-file automation.js=file://ui/accessibility/OWNERS
 per-file file_manager_private.js=file://ui/file_manager/OWNERS
 per-file input_method_private.js=file://ui/base/ime/OWNERS
+per-file terminal_private.js=file://chrome/browser/chromeos/guest_os/OWNERS
 # COMPONENT: UI>Browser>WebUI
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 73f35ca..c9f069b 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -6638,6 +6638,17 @@
   <description>Please enter the description of this user action.</description>
 </action>
 
+<action name="FamilyUser.SessionEngagement.Start">
+  <owner>xiqiruan@chromium.org</owner>
+  <owner>agawronska@chromium.org</owner>
+  <owner>tobyhuang@chromium.org</owner>
+  <owner>cros-families-eng@google.com</owner>
+  <description>
+    Emitted every time when the Chrome OS users' usage time state changes to
+    UsageTimeStateNotifier::UsageTimeState::ACTIVE.
+  </description>
+</action>
+
 <action name="Feedback">
   <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
   <description>Please enter the description of this user action.</description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 553e2e19b..bf9443943 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -28697,6 +28697,7 @@
   <int value="3368" label="WebSharePolicyAllow"/>
   <int value="3369" label="WebSharePolicyDisallow"/>
   <int value="3370" label="FormAssociatedCustomElement"/>
+  <int value="3371" label="WindowClosed"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">
@@ -40696,6 +40697,7 @@
   <int value="-1376510363" label="ServiceWorkerScriptFullCodeCache:disabled"/>
   <int value="-1376006534" label="WinUseBrowserSpellChecker:disabled"/>
   <int value="-1375111024" label="enable-fixed-position-compositing"/>
+  <int value="-1374048865" label="CpuAffinityRestrictToLittleCores:enabled"/>
   <int value="-1373942769" label="WebAuthenticationCtap2:disabled"/>
   <int value="-1373705581" label="ManualSaving:enabled"/>
   <int value="-1372926635" label="AndroidManagedByMenuItem:disabled"/>
@@ -43657,6 +43659,7 @@
   <int value="1816723085" label="SchemefulSameSite:enabled"/>
   <int value="1816843861" label="ServiceWorkerServicification:enabled"/>
   <int value="1817312143" label="num-raster-threads"/>
+  <int value="1817420759" label="CpuAffinityRestrictToLittleCores:disabled"/>
   <int value="1818829958" label="IdentityDisc:enabled"/>
   <int value="1819256299" label="disable-webrtc-hw-decoding"/>
   <int value="1819536169" label="disable-cast-streaming-hw-encoding"/>
diff --git a/tools/metrics/histograms/extract_histograms.py b/tools/metrics/histograms/extract_histograms.py
index 24da50a..d7300be 100644
--- a/tools/metrics/histograms/extract_histograms.py
+++ b/tools/metrics/histograms/extract_histograms.py
@@ -86,11 +86,6 @@
 
 _ELEMENT_NODE = xml.dom.minidom.Node.ELEMENT_NODE
 
-# List of fields that need to copied by copy.copy to suffixed histogram.
-# Other fields may be copied by reference.
-_HISTOGRAM_COPY_FIELDS = [
-    'fieldtrial_groups', 'fieldtrial_names', 'fieldtrial_labels']
-
 
 class Error(Exception):
   pass
@@ -344,25 +339,25 @@
   return enums, have_errors
 
 
-def _ExtractOwners(histogram):
-  """Extracts owners information from the given histogram element.
+def _ExtractOwners(node):
+  """Extracts owners information from the given node, if exists.
 
   Args:
-    histogram: A DOM Element corresponding to a histogram.
+    node: A DOM Element.
 
   Returns:
     A tuple of owner-related info, e.g. (['alice@chromium.org'], True)
 
     The first element is a list of the owners' email addresses, excluding the
     owner placeholder string. The second element is a boolean indicating
-    whether the histogram has an owner. A histogram whose owner is the owner
+    whether the node has an owner. A histogram whose owner is the owner
     placeholder string has an owner.
   """
   email_pattern = re.compile(BASIC_EMAIL_REGEXP)
   owners = []
   has_owner = False
 
-  for owner_node in IterElementsWithTag(histogram, 'owner', 1):
+  for owner_node in IterElementsWithTag(node, 'owner', 1):
     child = owner_node.firstChild
     owner_text = (child and child.nodeValue) or ''
     is_email = email_pattern.match(owner_text)
@@ -412,7 +407,9 @@
 # Variant: an analog of <variant> tag, represented as a JSON object like:
 # {
 #   'name': 'variant_name',
-#   'label': 'variant_label'
+#   'label': 'variant_label',
+#   'obsolete': 'Obsolete text.',
+#   'owners': ['me@chromium.org', 'you@chromium.org']
 # }
 
 
@@ -463,10 +460,22 @@
   Returns:
     A list of Variants.
   """
-  return [{
-      'name': variant_node.getAttribute('name'),
-      'label': variant_node.getAttribute('label')
-  } for variant_node in IterElementsWithTag(node, 'variant', 1)]
+  variant_list = []
+  for variant_node in IterElementsWithTag(node, 'variant', 1):
+    variant = dict(name=variant_node.getAttribute('name'),
+                   label=variant_node.getAttribute('label'))
+
+    obsolete_text = _GetObsoleteReason(variant_node)
+    if obsolete_text:
+      variant['obsolete'] = obsolete_text
+
+    variant_owners, variant_has_owners = _ExtractOwners(variant_node)
+    if variant_has_owners:
+      variant['owners'] = variant_owners
+
+    variant_list.append(variant)
+
+  return variant_list
 
 
 def _ExtractHistogramsFromXmlTree(tree, enums):
@@ -713,14 +722,6 @@
           suffix_label = suffix_labels.get(suffix_name, '')
 
           histogram_entry = histograms[new_histogram_name]
-          for field_name in _HISTOGRAM_COPY_FIELDS:
-            histogram_entry.setdefault(field_name, [])
-
-          # TODO(yiyaoliu): Rename these to be consistent with the new naming.
-          # It is kept unchanged for now to be it's used by dashboards.
-          histogram_entry['fieldtrial_groups'].append(suffix_name)
-          histogram_entry['fieldtrial_names'].append(name)
-          histogram_entry['fieldtrial_labels'].append(suffix_label)
 
           # If no owners are added for this histogram-suffixes, it inherits the
           # owners of its parents.
@@ -802,18 +803,31 @@
   # Each |token_assignment| contains one of the cross-product combinations and
   # corresponds to one new generated histogram.
   for token_assignment in token_assignments:
+    new_obsolete_reason = ''
+    new_owners = []
+    # Dictionaries of pairings used for string formatting of histogram name and
+    # summary.
+    token_name_pairings = {}
+    token_label_pairings = {}
+
+    for token_key, variant in token_assignment.pairings.items():
+      token_name_pairings[token_key] = variant['name']
+      token_label_pairings[token_key] = variant['label']
+
+      # If a variant has an obsolete reason, the new reason overwrites the
+      # obsolete reason of the original histogram.
+      if 'obsolete' in variant:
+        new_obsolete_reason = variant['obsolete']
+
+      # If a variant has owner(s), append to |new_owners|, overwriting the
+      # owners of the original histogram.
+      if 'owners' in variant:
+        new_owners += variant['owners']
+
     # Replace token in histogram name with variant name.
-    new_histogram_name = histogram_name.format(
-        **{
-            token_key: variant['name']
-            for token_key, variant in token_assignment.pairings.items()
-        })
+    new_histogram_name = histogram_name.format(**token_name_pairings)
     # Replace token in summary with variant label.
-    new_summary_text = summary_text.format(
-        **{
-            token_key: variant['label']
-            for token_key, variant in token_assignment.pairings.items()
-        })
+    new_summary_text = summary_text.format(**token_label_pairings)
 
     if new_histogram_name in new_histograms_dict:
       logging.error(
@@ -823,10 +837,16 @@
       have_error = True
       continue
 
-    new_histogram_node = dict(histograms_dict[histogram_name],
-                              summary=new_summary_text)
+    new_histogram_node = dict(histogram_node, summary=new_summary_text)
     # Do not copy the <token> nodes to the generated histograms.
     del new_histogram_node['tokens']
+
+    if new_obsolete_reason:
+      new_histogram_node['obsolete'] = new_obsolete_reason
+
+    if new_owners:
+      new_histogram_node['owners'] = new_owners
+
     new_histograms_dict[new_histogram_name] = new_histogram_node
 
   return have_error
diff --git a/tools/metrics/histograms/extract_histograms_test.py b/tools/metrics/histograms/extract_histograms_test.py
index 72cd5135..bd60846 100644
--- a/tools/metrics/histograms/extract_histograms_test.py
+++ b/tools/metrics/histograms/extract_histograms_test.py
@@ -126,11 +126,23 @@
     This is a histogram for button of {Color} color and {Size} size.
   </summary>
   <token key="Color">
-    <variant name=".red" label="red"/>
-    <variant name=".green" label="green"/>
+    <variant name=".red" label="red">
+      <obsolete>
+        Obsolete red
+      </obsolete>
+    </variant>
+    <variant name=".green" label="green">
+      <owner>green@chromium.org</owner>
+    </variant>
   </token>
   <token key="Size">
-    <variant name=".small" label="small"/>
+    <variant name="" label="all"/>
+    <variant name=".small" label="small">
+      <owner>small@chromium.org</owner>
+      <obsolete>
+        Obsolete small
+      </obsolete>
+    </variant>
     <variant name=".medium" label="medium"/>
     <variant name=".large" label="large"/>
   </token>
@@ -560,19 +572,19 @@
         histogram_with_token, {})
     histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
         histograms_dict)
-    self.assertTrue('HistogramName.red.small' in histograms_dict)
-    self.assertTrue('HistogramName.green.small' in histograms_dict)
-    self.assertTrue('HistogramName.red.medium' in histograms_dict)
-    self.assertTrue('HistogramName.green.medium' in histograms_dict)
-    self.assertTrue('HistogramName.red.large' in histograms_dict)
-    self.assertTrue('HistogramName.green.large' in histograms_dict)
-    self.assertFalse('HistogramName{Color}{Size}' in histograms_dict)
+    self.assertIn('HistogramName.red.small', histograms_dict)
+    self.assertIn('HistogramName.green.small', histograms_dict)
+    self.assertIn('HistogramName.red.medium', histograms_dict)
+    self.assertIn('HistogramName.green.medium', histograms_dict)
+    self.assertIn('HistogramName.red.large', histograms_dict)
+    self.assertIn('HistogramName.green.large', histograms_dict)
+    self.assertIn('HistogramName.red', histograms_dict)
+    self.assertIn('HistogramName.green', histograms_dict)
+    self.assertNotIn('HistogramName{Color}{Size}', histograms_dict)
 
     # Make sure generated histograms do not have tokens.
-    new_node = histograms_dict['HistogramName.red.small']
-    self.assertFalse('tokens' in new_node)
-    new_node = histograms_dict['HistogramName.green.large']
-    self.assertFalse('tokens' in new_node)
+    self.assertNotIn('tokens', histograms_dict['HistogramName.red.small'])
+    self.assertNotIn('tokens', histograms_dict['HistogramName.green.large'])
 
   def testUpdateSummaryWithTokens(self):
     histogram_with_token = xml.dom.minidom.parseString(
@@ -581,30 +593,79 @@
         histogram_with_token, {})
     histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
         histograms_dict)
-    new_node = histograms_dict['HistogramName.red.small']
-    self.assertTrue(
-        new_node['summary'] ==
-        'This is a histogram for button of red color and small size.')
-    new_node = histograms_dict['HistogramName.green.small']
-    self.assertTrue(
-        new_node['summary'] ==
-        'This is a histogram for button of green color and small size.')
-    new_node = histograms_dict['HistogramName.red.medium']
-    self.assertTrue(
-        new_node['summary'] ==
-        'This is a histogram for button of red color and medium size.')
-    new_node = histograms_dict['HistogramName.green.medium']
-    self.assertTrue(
-        new_node['summary'] ==
-        'This is a histogram for button of green color and medium size.')
-    new_node = histograms_dict['HistogramName.red.large']
-    self.assertTrue(
-        new_node['summary'] ==
-        'This is a histogram for button of red color and large size.')
-    new_node = histograms_dict['HistogramName.green.large']
-    self.assertTrue(
-        new_node['summary'] ==
-        'This is a histogram for button of green color and large size.')
+    self.assertEquals(
+        'This is a histogram for button of red color and small size.',
+        histograms_dict['HistogramName.red.small']['summary'])
+    self.assertEquals(
+        'This is a histogram for button of green color and small size.',
+        histograms_dict['HistogramName.green.small']['summary'])
+    self.assertEquals(
+        'This is a histogram for button of red color and medium size.',
+        histograms_dict['HistogramName.red.medium']['summary'])
+    self.assertEquals(
+        'This is a histogram for button of green color and medium size.',
+        histograms_dict['HistogramName.green.medium']['summary'])
+    self.assertEquals(
+        'This is a histogram for button of red color and large size.',
+        histograms_dict['HistogramName.red.large']['summary'])
+    self.assertEquals(
+        'This is a histogram for button of green color and large size.',
+        histograms_dict['HistogramName.green.large']['summary'])
+    self.assertEquals(
+        'This is a histogram for button of red color and all size.',
+        histograms_dict['HistogramName.red']['summary'])
+    self.assertEquals(
+        'This is a histogram for button of green color and all size.',
+        histograms_dict['HistogramName.green']['summary'])
+
+  def testUpdateWithTokenOwner(self):
+    histogram_with_token = xml.dom.minidom.parseString(
+        TEST_HISTOGRAM_WITH_TOKENS)
+    histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
+        histogram_with_token, {})
+    histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
+        histograms_dict)
+
+    self.assertEquals(['small@chromium.org'],
+                      histograms_dict['HistogramName.red.small']['owners'])
+    self.assertEquals(['me@chromium.org'],
+                      histograms_dict['HistogramName.red.medium']['owners'])
+    self.assertEquals(['me@chromium.org'],
+                      histograms_dict['HistogramName.red.large']['owners'])
+    self.assertEquals(['me@chromium.org'],
+                      histograms_dict['HistogramName.red']['owners'])
+    self.assertEquals(['green@chromium.org', 'small@chromium.org'],
+                      histograms_dict['HistogramName.green.small']['owners'])
+    self.assertEquals(['green@chromium.org'],
+                      histograms_dict['HistogramName.green.medium']['owners'])
+    self.assertEquals(['green@chromium.org'],
+                      histograms_dict['HistogramName.green.large']['owners'])
+    self.assertEquals(['green@chromium.org'],
+                      histograms_dict['HistogramName.green']['owners'])
+
+  def testUpdateWithTokenObsolete(self):
+    histogram_with_token = xml.dom.minidom.parseString(
+        TEST_HISTOGRAM_WITH_TOKENS)
+    histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
+        histogram_with_token, {})
+    histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
+        histograms_dict)
+
+    # New histograms should inherit the obsolete reason of the last
+    # obsolete token by order of appearance.
+    self.assertEquals('Obsolete small',
+                      histograms_dict['HistogramName.red.small']['obsolete'])
+    self.assertEquals('Obsolete red',
+                      histograms_dict['HistogramName.red.medium']['obsolete'])
+    self.assertEquals('Obsolete red',
+                      histograms_dict['HistogramName.red.large']['obsolete'])
+    self.assertEquals('Obsolete red',
+                      histograms_dict['HistogramName.red']['obsolete'])
+    self.assertEquals('Obsolete small',
+                      histograms_dict['HistogramName.green.small']['obsolete'])
+    self.assertNotIn('obsolete', histograms_dict['HistogramName.green.medium'])
+    self.assertNotIn('obsolete', histograms_dict['HistogramName.green.large'])
+    self.assertNotIn('obsolete', histograms_dict['HistogramName.green'])
 
   def testUpdateNameDuplicateVariant(self):
     histogram_with_duplicate_variant = xml.dom.minidom.parseString("""
@@ -632,13 +693,10 @@
 </histograms>
 </histogram-configuration>
 """)
-    # Check that error is logged when empty string variant name is used
-    # in token that is not the last token.
     histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
         histogram_with_duplicate_variant, {})
-    _, have_errors = extract_histograms._UpdateHistogramsWithTokens(
-        histograms_dict)
-    self.assertTrue(have_errors)
+    _, errors = extract_histograms._UpdateHistogramsWithTokens(histograms_dict)
+    self.assertTrue(errors)
 
 
 if __name__ == "__main__":
diff --git a/tools/metrics/histograms/histogram_configuration_model.py b/tools/metrics/histograms/histogram_configuration_model.py
index 87df393..5bd88665 100644
--- a/tools/metrics/histograms/histogram_configuration_model.py
+++ b/tools/metrics/histograms/histogram_configuration_model.py
@@ -87,12 +87,14 @@
         ('name', str, None),
         ('label', str, None),
     ],
+    required_attributes=['name', 'label'],
     alphabetization=[
         (_OBSOLETE_TYPE.tag, _KEEP_ORDER),
+        (_OWNER_TYPE.tag, _KEEP_ORDER),
     ],
-    required_attributes=['name', 'label'],
     children=[
         models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+        models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True),
     ])
 
 _TOKEN_TYPE = models.ObjectNodeType(
@@ -102,13 +104,9 @@
     ],
     required_attributes=['key'],
     alphabetization=[
-        (_OBSOLETE_TYPE.tag, _KEEP_ORDER),
-        (_OWNER_TYPE.tag, _KEEP_ORDER),
         (_VARIANT_TYPE.tag, _NaturalSortByName)
     ],
     children=[
-        models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
-        models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True),
         models.ChildType(_VARIANT_TYPE.tag, _VARIANT_TYPE, multiple=True),
     ])
 
diff --git a/tools/metrics/histograms/histogram_configuration_model_test_histograms.py b/tools/metrics/histograms/histogram_configuration_model_test_histograms.py
index 9aadc82..45fc442a 100644
--- a/tools/metrics/histograms/histogram_configuration_model_test_histograms.py
+++ b/tools/metrics/histograms/histogram_configuration_model_test_histograms.py
@@ -378,13 +378,21 @@
 
 <histogram name="Omnibox.Version.{content}.Time" units="ms"
     expires_after="2020-12-25">
+  <obsolete>
+    Obsolete text
+  </obsolete>
   <owner>me@google.com</owner>
   <summary>
     The length of time taken by version of {content} provider's synchronous
     pass.
   </summary>
   <token key="content">
-    <variant name=".ExtensionApp" label="ExtensionApp"/>
+    <variant name=".ExtensionApp" label="ExtensionApp">
+      <obsolete>
+        Obsolete variant
+      </obsolete>
+      <owner>you@google.com</owner>
+    </variant>
     <variant name=".HistoryContents" label="HistoryContents"/>
     <variant name=".HistoryQuick" label="HistoryQuick"/>
   </token>
@@ -404,13 +412,21 @@
 
 <histogram name="Omnibox.Version.{content}.Time" units="ms"
     expires_after="2020-12-25">
+  <obsolete>
+    Obsolete text
+  </obsolete>
   <owner>me@google.com</owner>
   <summary>
     The length of time taken by version of {content} provider's synchronous
     pass.
   </summary>
   <token key="content">
-    <variant name=".ExtensionApp" label="ExtensionApp"/>
+    <variant name=".ExtensionApp" label="ExtensionApp">
+      <obsolete>
+        Obsolete variant
+      </obsolete>
+      <owner>you@google.com</owner>
+    </variant>
     <variant name=".HistoryContents" label="HistoryContents"/>
     <variant name=".HistoryQuick" label="HistoryQuick"/>
   </token>
@@ -430,13 +446,21 @@
 
 <histogram name="Omnibox.Version.{content}.Time" units="ms"
     expires_after="2020-12-25">
+  <obsolete>
+    Obsolete text
+  </obsolete>
   <owner>me@google.com</owner>
   <summary>
     The length of time taken by version of {content} provider's synchronous
     pass.
   </summary>
   <token key="content">
-    <variant name=".ExtensionApp" label="ExtensionApp"/>
+    <variant name=".ExtensionApp" label="ExtensionApp">
+      <obsolete>
+        Obsolete variant
+      </obsolete>
+      <owner>you@google.com</owner>
+    </variant>
     <variant name=".HistoryQuick" label="HistoryQuick"/>
     <variant name=".HistoryContents" label="HistoryContents"/>
   </token>
@@ -517,7 +541,7 @@
       ('ChildrenOrder', XML_WRONG_TOKEN_CHILDREN_ORDER, PRETTY_XML_WITH_TOKEN),
       ('VariantOrder', XML_WRONG_VARIANT_ORDER, PRETTY_XML_WITH_TOKEN),
   ])
-  def testPrettify(self, _, input_xml, expected_xml):
+  def testTokenPrettify(self, _, input_xml, expected_xml):
     self.maxDiff = None
     result = histogram_configuration_model.PrettifyTree(
         etree_util.ParseXMLString(input_xml))
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 4e3551c3..8512cef 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -61580,6 +61580,46 @@
   </summary>
 </histogram>
 
+<histogram name="FamilyUser.SessionEngagement.Total" units="Hour of day"
+    expires_after="2021-07-14">
+  <owner>agawronska@chromium.org</owner>
+  <owner>tobyhuang@chromium.org</owner>
+  <owner>xiqiruan@chromium.org</owner>
+  <owner>cros-families-eng@google.com</owner>
+  <summary>
+    Records the Chrome OS user engagement hour within the current day (0-23),
+    total of weekday and weekend. Logged on
+    UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report the
+    same hour multiple times.
+  </summary>
+</histogram>
+
+<histogram name="FamilyUser.SessionEngagement.Weekday" units="Hour of day"
+    expires_after="2021-07-14">
+  <owner>agawronska@chromium.org</owner>
+  <owner>tobyhuang@chromium.org</owner>
+  <owner>xiqiruan@chromium.org</owner>
+  <owner>cros-families-eng@google.com</owner>
+  <summary>
+    Records the Chrome OS user engagement hour of day (0-23) on weekday. Logged
+    on UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report
+    the same hour multiple times.
+  </summary>
+</histogram>
+
+<histogram name="FamilyUser.SessionEngagement.Weekend" units="Hour of day"
+    expires_after="2021-07-14">
+  <owner>agawronska@chromium.org</owner>
+  <owner>tobyhuang@chromium.org</owner>
+  <owner>xiqiruan@chromium.org</owner>
+  <owner>cros-families-eng@google.com</owner>
+  <summary>
+    Records the Chrome OS user engagement hour of day (0-23) on weekend. Logged
+    on UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report
+    the same hour multiple times.
+  </summary>
+</histogram>
+
 <histogram name="FaultTolerantHeap" enum="FaultTolerantHeap"
     expires_after="M77">
   <owner>brucedawson@chromium.org</owner>
@@ -101268,7 +101308,7 @@
 </histogram>
 
 <histogram
-    name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived"
+    name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived{UnackedPackets}"
     units="units" expires_after="2021-05-11">
   <owner>dschinazi@chromium.org</owner>
   <owner>src/net/quic/OWNERS</owner>
@@ -101278,6 +101318,25 @@
     closed. The suffix specifies whether there were any unacked packets pending
     when the connection timed out.
   </summary>
+  <token key="UnackedPackets">
+    <variant name="" label="">
+      <obsolete>
+        Removed as of 08/2016.
+      </obsolete>
+    </variant>
+    <variant name=".NoUnackedPackets"
+        label="The session had no outstanding unacked packets.">
+      <obsolete>
+        Removed as of 08/2016.
+      </obsolete>
+    </variant>
+    <variant name=".UnackedPackets"
+        label="The session had outstanding unacked packets.">
+      <obsolete>
+        Removed as of 08/2016.
+      </obsolete>
+    </variant>
+  </token>
 </histogram>
 
 <histogram name="Net.QuicSession.MaxConsecutiveRtoWithForwardProgress"
@@ -216024,18 +216083,6 @@
   <affected-histogram name="UKM.Sources.SerializedCount2"/>
 </histogram_suffixes>
 
-<histogram_suffixes name="UnackedPackets" separator=".">
-  <obsolete>
-    Removed as of 08/2016.
-  </obsolete>
-  <suffix name="NoUnackedPackets"
-      label="The session had no outstanding unacked packets."/>
-  <suffix name="UnackedPackets"
-      label="The session had outstanding unacked packets."/>
-  <affected-histogram
-      name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived"/>
-</histogram_suffixes>
-
 <histogram_suffixes name="UnPackConsumer" separator="_">
   <suffix name="ChromeArchivePatch"
       label="compressed patch: chrome_patch.packed.7z holding
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index c7b280c..67a0c65 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -1,16 +1,16 @@
 {
     "trace_processor_shell": {
         "win": {
-            "hash": "9632b44419444a74efa0e5241589bf4235e4853b",
-            "remote_path": "perfetto_binaries/trace_processor_shell/win/21e5b4554a5fc356b475064da679f83b27e1bbed/trace_processor_shell.exe"
+            "hash": "6ef4cf861d9956daed390924a9975d0470420462",
+            "remote_path": "perfetto_binaries/trace_processor_shell/win/0376edf14e5896af79fc71552f9579cbbd12f381/trace_processor_shell.exe"
         },
         "mac": {
-            "hash": "a18e8850873ecb7443534a60c74277d2d06bd1e6",
-            "remote_path": "perfetto_binaries/trace_processor_shell/mac/0376edf14e5896af79fc71552f9579cbbd12f381/trace_processor_shell"
+            "hash": "8ba1b5f7012d8777f08b2b46b3202e8ca49168f0",
+            "remote_path": "perfetto_binaries/trace_processor_shell/mac/f07b5182eeda0366df5f0910067df56267674d8c/trace_processor_shell"
         },
         "linux": {
-            "hash": "283e0325abb12d3cea2c5a23acbdc39cfc6dd13f",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/21e5b4554a5fc356b475064da679f83b27e1bbed/trace_processor_shell"
+            "hash": "d47a934115eedcbaab1c53bfdc0ef8527880d98a",
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/f07b5182eeda0366df5f0910067df56267674d8c/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/ui/accessibility/extensions/strings/accessibility_extensions_strings_eu.xtb b/ui/accessibility/extensions/strings/accessibility_extensions_strings_eu.xtb
index 3963c022..c288793 100644
--- a/ui/accessibility/extensions/strings/accessibility_extensions_strings_eu.xtb
+++ b/ui/accessibility/extensions/strings/accessibility_extensions_strings_eu.xtb
@@ -7,7 +7,7 @@
 <translation id="1555130319947370107">Urdina</translation>
 <translation id="1588438908519853928">Arrunta</translation>
 <translation id="1591070050619849194">Desgaitu animazio guztiak.</translation>
-<translation id="1703735871906654364">Tartekatze-ikurrak arakatzeko aplikazioa</translation>
+<translation id="1703735871906654364">Tartekatze-ikurraren bidez arakatzeko aplikazioa</translation>
 <translation id="1791496371305830581">Onartu animazio guztiak.</translation>
 <translation id="1996252509865389616">Gaitu nahi duzu?</translation>
 <translation id="2079545284768500474">Desegin</translation>
@@ -18,7 +18,7 @@
 <translation id="2648340354586434750">Eduki sakatuta &lt;span class='key'&gt;Aukera&lt;/span&gt; hitz batetik bestera mugitzeko.</translation>
 <translation id="2795227192542594043">Luzapenak kurtsore mugikorra jartzen du webgunean testua teklatuarekin hautatu ahal izateko.</translation>
 <translation id="2808027189040546825">1. urratsa: hautatu izar lausoenak dituen errenkada:</translation>
-<translation id="2965611304828530558">&lt;p&gt;Estekara edo kontrolera iristean, automatikoki fokuratzen da. Sakatu &lt;span class='key'&gt;Sartu&lt;/span&gt; estekan edo botoian klik egitean. &lt;/p&gt; &lt;p&gt;Fokuratutako kontrolak (adibidez, testu-koadroak edo zerrenda-koadroak) gezien teklak hartzen dituenean, sakatu &lt;span class='key'&gt;Esc&lt;/span&gt; eta, ondoren, Ezkerrera edo Eskuinera gezia, tartekatze-ikurrak arakatzen jarraitzeko. &lt;/p&gt; &lt;p&gt;Horren ordez, sakatu &lt;span class='key'&gt;Fitxa&lt;/span&gt; fokura daitekeen hurrengo kontrolera joateko. &lt;/p&gt;</translation>
+<translation id="2965611304828530558">&lt;p&gt;Estekara edo kontrolera iristean, automatikoki fokuratzen da. Sakatu &lt;span class='key'&gt;Sartu&lt;/span&gt; estekan edo botoian klik egitean. &lt;/p&gt; &lt;p&gt;Fokuratutako kontrolak (adibidez, testu-koadroak edo zerrenda-koadroak) gezi-teklak hartzen dituenean, sakatu &lt;span class='key'&gt;Esc&lt;/span&gt; eta, ondoren, Ezkerrera edo Eskuinera gezia, tartekatze-ikurraren bidez arakatzen jarraitzeko. &lt;/p&gt; &lt;p&gt;Horren ordez, sakatu &lt;span class='key'&gt;Fitxa&lt;/span&gt; fokura daitekeen hurrengo kontrolera joateko. &lt;/p&gt;</translation>
 <translation id="3252573918265662711">Konfigurazioa</translation>
 <translation id="3410969471888629217">Ahaztu webgunearen pertsonalizazioak</translation>
 <translation id="3435896845095436175">Gaitu</translation>
@@ -32,7 +32,7 @@
 <translation id="4896660567607030658">Ez bistaratu azalpenik; besterik gabe, erakutsi kurtsorea.</translation>
 <translation id="4937901943818762779">Gaitu animazioak, baina behin soilik.</translation>
 <translation id="4949131196216960195">Sakatu &lt;span class='key'&gt;Bilatu&lt;/span&gt; + &lt;img src='increase_brightness.png'&gt; (distira handiagotzeko tekla edo F7) teklatu bidezko arakatzea aktibatzeko. Saka ezazu berriro desaktibatzeko.</translation>
-<translation id="4954450790315188152">Tartekatze-ikurrak arakatzeko aukera aktibatuta dagoenean:</translation>
+<translation id="4954450790315188152">Tartekatze-ikurraren bidez arakatzeko aukera aktibatuta dagoenean:</translation>
 <translation id="5041932793799765940">Kolore doikuntza</translation>
 <translation id="5094574508723441140">Kontraste handitua</translation>
 <translation id="5173942593318174089">Nabarmendu kurtsorearen posizioa animazioarekin.</translation>
@@ -60,9 +60,9 @@
 <translation id="7658239707568436148">Utzi</translation>
 <translation id="786423340267544509">Gehitu ertza aria-describedat edo longdesc atributuak dituen elementuan.</translation>
 <translation id="7942349550061667556">Gorria</translation>
-<translation id="8260673944985561857">Tartekatze-ikurrak arakatzeko aukerak</translation>
+<translation id="8260673944985561857">Tartekatze-ikurraren bidez arakatzeko aukerak</translation>
 <translation id="8321034316479930120">Animazioen gidalerroak</translation>
 <translation id="8480209185614411573">Kontraste handia</translation>
-<translation id="8609925175482059018">Sakatu &lt;span class='key'&gt;F7&lt;/span&gt; tartekatze-ikurrak arakatzeko aukera aktibatzeko. Saka ezazu berriro desaktibatzeko.</translation>
+<translation id="8609925175482059018">Sakatu &lt;span class='key'&gt;F7&lt;/span&gt; tartekatze-ikurraren bidez arakatzeko aukera aktibatzeko. Saka ezazu berriro desaktibatzeko.</translation>
 <translation id="894241283505723656">Laster-menuko azalpen luzeak</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb b/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb
index cb76eb4..027b1e2 100644
--- a/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb
+++ b/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb
@@ -7,18 +7,18 @@
 <translation id="1555130319947370107">Samawati</translation>
 <translation id="1588438908519853928">Ya kawaida</translation>
 <translation id="1591070050619849194">Zima uhuishaji wa picha zote.</translation>
-<translation id="1703735871906654364">Kuvinjari kwa Kareti</translation>
+<translation id="1703735871906654364">Kuvinjari kwa Kibodi</translation>
 <translation id="1791496371305830581">Ruhusu picha zote zilizouhuishwa.</translation>
 <translation id="1996252509865389616">Ungependa kuwasha?</translation>
 <translation id="2079545284768500474">Tendua</translation>
 <translation id="2179565792157161713">Fungua Maelezo Marefu Katika Kichupo Kipya</translation>
 <translation id="2223143012868735942">Kichujio cha rangi kinachoweza kugeuzwa ili kifae kinachotumiwa kwenye kurasa za wavuti ili kuboresha mwonekano wa rangi.</translation>
-<translation id="2394933097471027016">Jaribu sasa - Kuvinjari kwa Kareti huwa kumewashwa kwenye ukurasa huu wakati wowote!</translation>
+<translation id="2394933097471027016">Jaribu sasa - Kuvinjari kwa Kibodi huwa kumewashwa kwenye ukurasa huu wakati wowote!</translation>
 <translation id="2471847333270902538">Mpango wa rangi wa <ph name="SITE" />:</translation>
 <translation id="2648340354586434750">Shikilia chini &lt;span class='key'&gt;Chaguo&lt;/span&gt; ili kusogea kwa maneno.</translation>
 <translation id="2795227192542594043">Kiendelezi hiki kinakupa kielekezi cha kusogeza katika ukurasa wa wavuti, na kukuruhusu kuchagua maandishi kwa kibodi.</translation>
 <translation id="2808027189040546825">Hatua ya 1: Chagua safu mlalo yenye nyota zilizofifia zaidi:</translation>
-<translation id="2965611304828530558">&lt;p&gt;Unapofikia kiungo au kidhibiti, kinaangaziwa kiotomatiki.  Bonyeza &lt;span class='key'&gt;Enter&lt;/span&gt; ili kubofya kiungo au kitufe. &lt;/p&gt; &lt;p&gt;   Kidhibiti kilichoangaziwa (kama vile kikasha cha maandishi au kikasha cha orodha) kinapopiga picha vitufe vya vishale, bonyeza &lt;span class='key'&gt;Esc&lt;/span&gt; ukifuatisha kishale cha kushoto au kulia ili kuendelea Kuvinjari kwa Kareti. &lt;/p&gt; &lt;p&gt;   Njia nyingine, bonyeza &lt;span class='key'&gt;Kichupo&lt;/span&gt; ili kuhamisha kidhibiti kinachofuata kinachoweza kuangaziwa. &lt;/p&gt;</translation>
+<translation id="2965611304828530558">&lt;p&gt;Unapofikia kiungo au kidhibiti, kinaangaziwa kiotomatiki. Bonyeza &lt;span class='key'&gt;Enter&lt;/span&gt; ili ubofye kiungo au kitufe. &lt;/p&gt; &lt;p&gt;Kidhibiti kilichoangaziwa (kama vile kikasha cha maandishi au cha orodha) kinaponasa vitufe vya vishale, bonyeza &lt;span class='key'&gt;Esc&lt;/span&gt; ukifuatisha kishale cha kushoto au kulia ili kuendelea Kuvinjari kwa Kibodi. &lt;/p&gt; &lt;p&gt; Njia nyingine, bonyeza &lt;span class='key'&gt;Kichupo&lt;/span&gt; ili kuhamisha kidhibiti kinachofuata kinachoweza kuangaziwa. &lt;/p&gt;</translation>
 <translation id="3252573918265662711">Usanidi</translation>
 <translation id="3410969471888629217">Sahau ugeuzaji wa tovuti ili zikufae</translation>
 <translation id="3435896845095436175">Washa</translation>
@@ -31,8 +31,8 @@
 <translation id="4769065380738716500">Picha zimebadilishwa kwa maandishi yao ya alt.</translation>
 <translation id="4896660567607030658">Hakuna maoni, onyesha tu kielekezi.</translation>
 <translation id="4937901943818762779">Ruhusu picha zilizouhuishwa, lakini mara moja pekee.</translation>
-<translation id="4949131196216960195">Bonyeza &lt;span class='key'&gt;Tafuta&lt;/span&gt; + &lt;img src='increase_brightness.png'&gt; (kitufe cha 'Ongeza Mwangaza' au F7) ili uwashe 'Kuvinjari kwa Kareti'. Ibonyeze tena ili uizime.</translation>
-<translation id="4954450790315188152">Kuvinjari kwa Kareti kunapowashwa:</translation>
+<translation id="4949131196216960195">Bonyeza &lt;span class='key'&gt;Tafuta&lt;/span&gt; + &lt;img src='increase_brightness.png'&gt; (kitufe cha 'Ongeza Mwangaza' au F7) ili uwashe 'Kuvinjari kwa Kibodi'. Zibonyeze tena ili uzime.</translation>
+<translation id="4954450790315188152">Wakati kipengele cha Kuvinjari kwa Kibodi kimewashwa:</translation>
 <translation id="5041932793799765940">Marekebisho ya rangi</translation>
 <translation id="5094574508723441140">Utofautishaji ulioongezeka</translation>
 <translation id="5173942593318174089">Angazia kilipo kielekezi kwa uhuishaji.</translation>
@@ -60,9 +60,9 @@
 <translation id="7658239707568436148">Ghairi</translation>
 <translation id="786423340267544509">Ongeza mpaka kwenye vipengee vilivyo na vipengele vya aria-describedat au longdesc.</translation>
 <translation id="7942349550061667556">Nyekundu</translation>
-<translation id="8260673944985561857">Chaguo za Kuvinjari za Kareti</translation>
+<translation id="8260673944985561857">Chaguo za Kuvinjari kwa Kibodi</translation>
 <translation id="8321034316479930120">Sera ya Uhuishaji</translation>
 <translation id="8480209185614411573">Utofautishaji wa Juu</translation>
-<translation id="8609925175482059018">Bonyeza &lt;span class='key'&gt;F7&lt;/span&gt; ili kuwasha Kuvinjari kwa Kareti. Kibonyeze tena ili kuizima.</translation>
+<translation id="8609925175482059018">Bonyeza &lt;span class='key'&gt;F7&lt;/span&gt; ili uwashe Kuvinjari kwa Kibodi. Kibonyeze tena ili uzime.</translation>
 <translation id="894241283505723656">Maelezo Marefu katika Menyu ya Muktadha</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings.grdp b/ui/chromeos/file_manager_strings.grdp
index c8784d1..97c6931 100644
--- a/ui/chromeos/file_manager_strings.grdp
+++ b/ui/chromeos/file_manager_strings.grdp
@@ -263,8 +263,8 @@
     <ph name="NUMBER_OF_FILES">$1<ex>3</ex></ph> items
   </message>
 
-  <message name="IDS_FILE_BROWSER_ARCHIVE_MOUNT_FAILED" desc="Title of the error dialog when file mount operation failed.">
-    Unable to open "<ph name="PATH">$1<ex>/path/to/zipfile.zip</ex></ph>": <ph name="ERROR_MESSAGE">$2<ex>Bad zip file format</ex></ph>
+  <message name="IDS_FILE_BROWSER_ARCHIVE_MOUNT_FAILED" desc="Error message when an archive mount operation failed.">
+    Unable to open "<ph name="PATH">$1<ex>zipfile.zip</ex></ph>"
   </message>
   <message name="IDS_FILE_BROWSER_UNMOUNT_FAILED" desc="Title of the error dialog when device unmount operation failed.">
    <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Don't remove your device just yet!<ph name="END_BOLD">&lt;/b&gt;</ph>
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_ARCHIVE_MOUNT_FAILED.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_ARCHIVE_MOUNT_FAILED.png.sha1
new file mode 100644
index 0000000..b6cf96b3
--- /dev/null
+++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_ARCHIVE_MOUNT_FAILED.png.sha1
@@ -0,0 +1 @@
+0b5ea4fdc5c10315f7a11baece644b3dc02b1d92
\ No newline at end of file
diff --git a/ui/compositor/layer_animator_unittest.cc b/ui/compositor/layer_animator_unittest.cc
index bbb9f4c..1aa05fd 100644
--- a/ui/compositor/layer_animator_unittest.cc
+++ b/ui/compositor/layer_animator_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
+#include "base/numerics/safe_conversions.h"
 #include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
 #include "base/test/scoped_mock_clock_override.h"
@@ -3512,7 +3513,7 @@
   const float frame_interval =
       base::Time::kMillisecondsPerSecond / compositor->refresh_rate();
   const int kStartFrameNumber =
-      static_cast<int>(kAnimationDuration.InMillisecondsF() / frame_interval) *
+      base::ClampFloor(kAnimationDuration.InMillisecondsF() / frame_interval) *
       4;
   while (compositor->activated_frame_count() < kStartFrameNumber) {
     compositor->ScheduleFullRedraw();
diff --git a/ui/events/devices/gamepad_device.cc b/ui/events/devices/gamepad_device.cc
index 737649d..8089f3a 100644
--- a/ui/events/devices/gamepad_device.cc
+++ b/ui/events/devices/gamepad_device.cc
@@ -7,8 +7,11 @@
 namespace ui {
 
 GamepadDevice::GamepadDevice(const InputDevice& input_device,
-                             std::vector<GamepadDevice::Axis>&& axes)
-    : InputDevice(input_device), axes(std::move(axes)) {}
+                             std::vector<GamepadDevice::Axis>&& axes,
+                             bool supports_rumble)
+    : InputDevice(input_device),
+      axes(std::move(axes)),
+      supports_vibration_rumble(supports_rumble) {}
 
 GamepadDevice::GamepadDevice(const GamepadDevice& other) = default;
 
diff --git a/ui/events/devices/gamepad_device.h b/ui/events/devices/gamepad_device.h
index 5ef4a4b..9d2fc2cc 100644
--- a/ui/events/devices/gamepad_device.h
+++ b/ui/events/devices/gamepad_device.h
@@ -27,12 +27,17 @@
     int32_t resolution = 0;
   };
 
-  GamepadDevice(const InputDevice& input_device, std::vector<Axis>&& axes);
+  GamepadDevice(const InputDevice& input_device,
+                std::vector<Axis>&& axes,
+                bool supports_rumble);
   GamepadDevice(const GamepadDevice& other);
   ~GamepadDevice() override;
 
   // Axes the gamepad has e.g. analog thumb sticks.
   std::vector<Axis> axes;
+
+  // Whether the gamepad device supports rumble type force feedback.
+  bool supports_vibration_rumble = false;
 };
 
 }  // namespace ui
diff --git a/ui/events/ozone/evdev/event_converter_evdev.cc b/ui/events/ozone/evdev/event_converter_evdev.cc
index ff00d8a1..5d11c7d 100644
--- a/ui/events/ozone/evdev/event_converter_evdev.cc
+++ b/ui/events/ozone/evdev/event_converter_evdev.cc
@@ -135,6 +135,20 @@
   return std::vector<ui::GamepadDevice::Axis>();
 }
 
+bool EventConverterEvdev::GetGamepadRumbleCapability() const {
+  NOTREACHED();
+  return false;
+}
+
+void EventConverterEvdev::PlayVibrationEffect(uint8_t amplitude,
+                                              uint16_t duration_millis) {
+  NOTREACHED();
+}
+
+void EventConverterEvdev::StopVibration() {
+  NOTREACHED();
+}
+
 int EventConverterEvdev::GetTouchPoints() const {
   NOTREACHED();
   return 0;
diff --git a/ui/events/ozone/evdev/event_converter_evdev.h b/ui/events/ozone/evdev/event_converter_evdev.h
index 3c12fd8..7712a4cc 100644
--- a/ui/events/ozone/evdev/event_converter_evdev.h
+++ b/ui/events/ozone/evdev/event_converter_evdev.h
@@ -102,7 +102,10 @@
 
   // Returns information for all axes if the converter is used for a gamepad
   // device.
-  virtual std::vector<ui::GamepadDevice::Axis> GetGamepadAxes() const;
+  virtual std::vector<GamepadDevice::Axis> GetGamepadAxes() const;
+
+  // Returns whether the gamepad device supports rumble type force feedback.
+  virtual bool GetGamepadRumbleCapability() const;
 
   // Sets which keyboard keys should be processed. If |enable_filter| is
   // false, all keys are allowed and |allowed_keys| is ignored.
@@ -122,6 +125,10 @@
   // Helper to generate a base::TimeTicks from an input_event's time
   static base::TimeTicks TimeTicksFromInputEvent(const input_event& event);
 
+  // Handle gamepad force feedback effects.
+  virtual void PlayVibrationEffect(uint8_t amplitude, uint16_t duration_millis);
+  virtual void StopVibration();
+
  protected:
   // base::MessagePumpForUI::FdWatcher:
   void OnFileCanWriteWithoutBlocking(int fd) override;
diff --git a/ui/events/ozone/evdev/event_device_info.cc b/ui/events/ozone/evdev/event_device_info.cc
index 6b0395a..130ae0d 100644
--- a/ui/events/ozone/evdev/event_device_info.cc
+++ b/ui/events/ozone/evdev/event_device_info.cc
@@ -177,6 +177,7 @@
   memset(msc_bits_, 0, sizeof(msc_bits_));
   memset(sw_bits_, 0, sizeof(sw_bits_));
   memset(led_bits_, 0, sizeof(led_bits_));
+  memset(ff_bits_, 0, sizeof(ff_bits_));
   memset(prop_bits_, 0, sizeof(prop_bits_));
   memset(abs_info_, 0, sizeof(abs_info_));
 }
@@ -205,6 +206,9 @@
   if (!GetEventBits(fd, path, EV_LED, led_bits_, sizeof(led_bits_)))
     return false;
 
+  if (!GetEventBits(fd, path, EV_FF, ff_bits_, sizeof(ff_bits_)))
+    return false;
+
   if (!GetPropBits(fd, path, prop_bits_, sizeof(prop_bits_)))
     return false;
 
@@ -274,6 +278,10 @@
   AssignBitset(led_bits, len, led_bits_, base::size(led_bits_));
 }
 
+void EventDeviceInfo::SetFfEvents(const unsigned long* ff_bits, size_t len) {
+  AssignBitset(ff_bits, len, ff_bits_, base::size(ff_bits_));
+}
+
 void EventDeviceInfo::SetProps(const unsigned long* prop_bits, size_t len) {
   AssignBitset(prop_bits, len, prop_bits_, base::size(prop_bits_));
 }
@@ -357,6 +365,12 @@
   return EvdevBitIsSet(led_bits_, code);
 }
 
+bool EventDeviceInfo::HasFfEvent(unsigned int code) const {
+  if (code > FF_MAX)
+    return false;
+  return EvdevBitIsSet(ff_bits_, code);
+}
+
 bool EventDeviceInfo::HasProp(unsigned int code) const {
   if (code > INPUT_PROP_MAX)
     return false;
@@ -536,6 +550,10 @@
   return support_gamepad_btn && !HasTablet() && !HasKeyboard();
 }
 
+bool EventDeviceInfo::SupportsRumble() const {
+  return HasEventType(EV_FF) && HasFfEvent(FF_RUMBLE);
+}
+
 // static
 ui::InputDeviceType EventDeviceInfo::GetInputDeviceTypeFromId(input_id id) {
   static constexpr struct {
diff --git a/ui/events/ozone/evdev/event_device_info.h b/ui/events/ozone/evdev/event_device_info.h
index da6637a..6760d826 100644
--- a/ui/events/ozone/evdev/event_device_info.h
+++ b/ui/events/ozone/evdev/event_device_info.h
@@ -64,6 +64,7 @@
   void SetMscEvents(const unsigned long* msc_bits, size_t len);
   void SetSwEvents(const unsigned long* sw_bits, size_t len);
   void SetLedEvents(const unsigned long* led_bits, size_t len);
+  void SetFfEvents(const unsigned long* ff_bits, size_t len);
   void SetProps(const unsigned long* prop_bits, size_t len);
   void SetAbsInfo(unsigned int code, const input_absinfo& absinfo);
   void SetAbsMtSlots(unsigned int code, const std::vector<int32_t>& values);
@@ -80,6 +81,7 @@
   bool HasMscEvent(unsigned int code) const;
   bool HasSwEvent(unsigned int code) const;
   bool HasLedEvent(unsigned int code) const;
+  bool HasFfEvent(unsigned int code) const;
 
   // Properties of absolute axes.
   int32_t GetAbsMinimum(unsigned int code) const;
@@ -148,6 +150,9 @@
   // Determine whether there's a gamepad on this device.
   bool HasGamepad() const;
 
+  // Determine whether the device supports rumble.
+  bool SupportsRumble() const;
+
   // Determine if this is a dedicated device for a stylus button.
   bool IsStylusButtonDevice() const;
 
@@ -177,6 +182,7 @@
   unsigned long sw_bits_[EVDEV_BITS_TO_LONGS(SW_CNT)];
   unsigned long led_bits_[EVDEV_BITS_TO_LONGS(LED_CNT)];
   unsigned long prop_bits_[EVDEV_BITS_TO_LONGS(INPUT_PROP_CNT)];
+  unsigned long ff_bits_[EVDEV_BITS_TO_LONGS(FF_CNT)];
 
   struct input_absinfo abs_info_[ABS_CNT];
 
diff --git a/ui/events/ozone/evdev/event_device_test_util.cc b/ui/events/ozone/evdev/event_device_test_util.cc
index c87016b..dd1dc0b 100644
--- a/ui/events/ozone/evdev/event_device_test_util.cc
+++ b/ui/events/ozone/evdev/event_device_test_util.cc
@@ -1090,6 +1090,11 @@
     return false;
   devinfo->SetLedEvents(&led_bits[0], led_bits.size());
 
+  std::vector<unsigned long> ff_bits;
+  if (!ParseBitfield(capabilities.ff, FF_CNT, &ff_bits))
+    return false;
+  devinfo->SetFfEvents(&ff_bits[0], ff_bits.size());
+
   std::vector<unsigned long> prop_bits;
   if (!ParseBitfield(capabilities.prop, INPUT_PROP_CNT, &prop_bits))
     return false;
diff --git a/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc b/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc
index 6ca3e8f..46129d6 100644
--- a/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc
+++ b/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc
@@ -7,14 +7,21 @@
 #include <errno.h>
 #include <linux/input.h>
 #include <stddef.h>
+#include <stdint.h>
+#include <sys/ioctl.h>
 
 #include "base/logging.h"
+#include "base/posix/eintr_wrapper.h"
 #include "base/trace_event/trace_event.h"
 #include "ui/events/event_utils.h"
 #include "ui/events/ozone/evdev/device_event_dispatcher_evdev.h"
 #include "ui/events/ozone/gamepad/gamepad_event.h"
 #include "ui/events/ozone/gamepad/gamepad_provider_ozone.h"
 
+namespace {
+constexpr int kInvalidEffectId = -1;
+}
+
 namespace ui {
 
 GamepadEventConverterEvdev::GamepadEventConverterEvdev(
@@ -34,7 +41,8 @@
                           devinfo.version()),
       will_send_frame_(false),
       input_device_fd_(std::move(fd)),
-      dispatcher_(dispatcher) {
+      dispatcher_(dispatcher),
+      effect_id_(-1) {
   input_absinfo abs_info;
   for (int code = 0; code < ABS_CNT; ++code) {
     abs_info = devinfo.GetAbsInfoByCode(code);
@@ -49,6 +57,7 @@
       axes_.push_back(axis);
     }
   }
+  supports_rumble_ = devinfo.SupportsRumble();
 }
 
 GamepadEventConverterEvdev::~GamepadEventConverterEvdev() {
@@ -59,6 +68,102 @@
   return true;
 }
 
+void GamepadEventConverterEvdev::PlayVibrationEffect(uint8_t amplitude,
+                                                     uint16_t duration_millis) {
+  constexpr uint16_t kRumbleMagnitudeMax = 0xFFFF;
+  constexpr uint8_t kAmplitudeMax = 0xFF;
+
+  // only rumble type force feedback is supported at the moment
+  if (!supports_rumble_) {
+    LOG(ERROR) << "Device doesn't support rumble, but SetVibration is called.";
+    return;
+  }
+
+  float amplitude_ratio = static_cast<float>(amplitude) / kAmplitudeMax;
+  uint16_t magnitude_scaled =
+      static_cast<uint16_t>(amplitude_ratio * kRumbleMagnitudeMax);
+
+  effect_id_ = StoreRumbleEffect(input_device_fd_, effect_id_, duration_millis,
+                                 0, magnitude_scaled, magnitude_scaled);
+
+  if (effect_id_ == kInvalidEffectId) {
+    LOG(ERROR) << "SetVibration is called with an invalid effect ID.";
+    return;
+  }
+  StartOrStopEffect(input_device_fd_, effect_id_, true);
+}
+
+void GamepadEventConverterEvdev::StopVibration() {
+  if (!supports_rumble_) {
+    LOG(ERROR)
+        << "Device doesn't support rumble, but SetZeroVibration is called.";
+    return;
+  }
+  if (effect_id_ == kInvalidEffectId) {
+    LOG(ERROR) << "SetZeroVibration is called with an invalid effect ID.";
+    return;
+  }
+  StartOrStopEffect(input_device_fd_, effect_id_, false);
+}
+
+int GamepadEventConverterEvdev::StoreRumbleEffect(const base::ScopedFD& fd,
+                                                  int effect_id,
+                                                  uint16_t duration,
+                                                  uint16_t start_delay,
+                                                  uint16_t strong_magnitude,
+                                                  uint16_t weak_magnitude) {
+  struct ff_effect effect;
+  memset(&effect, 0, sizeof(effect));
+  effect.type = FF_RUMBLE;
+  effect.id = effect_id;
+  effect.replay.length = duration;
+  effect.replay.delay = start_delay;
+  effect.u.rumble.strong_magnitude = strong_magnitude;
+  effect.u.rumble.weak_magnitude = weak_magnitude;
+
+  return UploadFfEffect(fd, &effect);
+}
+
+void GamepadEventConverterEvdev::StartOrStopEffect(const base::ScopedFD& fd,
+                                                   int effect_id,
+                                                   bool do_start) {
+  struct input_event start_stop;
+  memset(&start_stop, 0, sizeof(start_stop));
+  start_stop.type = EV_FF;
+  start_stop.code = effect_id;
+  start_stop.value = do_start ? 1 : 0;
+  ssize_t nbytes = WriteEvent(fd, start_stop);
+
+  if (nbytes != sizeof(start_stop)) {
+    PLOG(ERROR) << "Error writing the event in StartOrStopEffect";
+  }
+}
+
+void GamepadEventConverterEvdev::DestroyEffect(const base::ScopedFD& fd,
+                                               int effect_id) {
+  if (HANDLE_EINTR(ioctl(fd.get(), EVIOCRMFF, effect_id)) < 0) {
+    PLOG(ERROR) << "Error destroying rumble effect.";
+  }
+  effect_id_ = kInvalidEffectId;
+}
+
+ssize_t GamepadEventConverterEvdev::WriteEvent(
+    const base::ScopedFD& fd,
+    const struct input_event& event) {
+  return HANDLE_EINTR(
+      write(fd.get(), static_cast<const void*>(&event), sizeof(event)));
+}
+
+int GamepadEventConverterEvdev::UploadFfEffect(const base::ScopedFD& fd,
+                                               struct ff_effect* effect) {
+  if (HANDLE_EINTR(ioctl(fd.get(), EVIOCSFF, effect)) < 0) {
+    PLOG(ERROR) << "Error storing rumble effect.";
+    return kInvalidEffectId;
+  }
+
+  return effect->id;
+}
+
 void GamepadEventConverterEvdev::OnFileCanReadWithoutBlocking(int fd) {
   TRACE_EVENT1("evdev",
                "GamepadEventConverterEvdev::OnFileCanReadWithoutBlocking", "fd",
@@ -90,6 +195,10 @@
   return axes_;
 }
 
+bool GamepadEventConverterEvdev::GetGamepadRumbleCapability() const {
+  return supports_rumble_;
+}
+
 void GamepadEventConverterEvdev::ProcessEvent(const input_event& evdev_ev) {
   base::TimeTicks timestamp = TimeTicksFromInputEvent(evdev_ev);
   // We may have missed Gamepad releases. Reset everything.
@@ -134,6 +243,9 @@
 
 void GamepadEventConverterEvdev::ResetGamepad() {
   base::TimeTicks timestamp = ui::EventTimeForNow();
+  if (effect_id_ != kInvalidEffectId) {
+    DestroyEffect(input_device_fd_, effect_id_);
+  }
   // Reset all the buttons.
   for (unsigned int code : pressed_buttons_)
     ProcessEvdevKey(code, 0, timestamp);
diff --git a/ui/events/ozone/evdev/gamepad_event_converter_evdev.h b/ui/events/ozone/evdev/gamepad_event_converter_evdev.h
index 32d3ab81..28960b8 100644
--- a/ui/events/ozone/evdev/gamepad_event_converter_evdev.h
+++ b/ui/events/ozone/evdev/gamepad_event_converter_evdev.h
@@ -39,10 +39,18 @@
   bool HasGamepad() const override;
   void OnDisabled() override;
   std::vector<ui::GamepadDevice::Axis> GetGamepadAxes() const override;
+  bool GetGamepadRumbleCapability() const override;
 
   // This function processes one input_event from evdev.
   void ProcessEvent(const struct input_event& input);
 
+  // This function sends a vibration effect to the gamepaddevice.
+  void PlayVibrationEffect(uint8_t amplitude,
+                           uint16_t duration_millis) override;
+
+  // This function stops the gamepad device's vibration effect.
+  void StopVibration() override;
+
  private:
   // This function processes EV_KEY event from gamepad device.
   void ProcessEvdevKey(uint16_t code,
@@ -62,11 +70,43 @@
 
   void OnSync(const base::TimeTicks& timestamp);
 
+  // This function uploads the rumble force feedback effect to the gamepad
+  // device and returns the new effect id. If we already created an effect on
+  // this device, then the existing id is reused and returned.
+  int StoreRumbleEffect(const base::ScopedFD& fd,
+                        int effect_id,
+                        uint16_t duration,
+                        uint16_t start_delay,
+                        uint16_t strong_magnitude,
+                        uint16_t weak_magnitude);
+
+  // This function controls the playback of the effect on the gamepad device.
+  void StartOrStopEffect(const base::ScopedFD& fd,
+                         int effect_id,
+                         bool do_start);
+
+  // This function removes the effect from the gamepad device.
+  void DestroyEffect(const base::ScopedFD& fd, int effect_id);
+
+  // This function writes the input_event into the kernel and returns the result
+  // of the write.
+  virtual ssize_t WriteEvent(const base::ScopedFD& fd,
+                             const struct input_event& input);
+
+  // This function uploads the ff_effect to the gamepad device and returns the
+  // unique id assigned by the driver.
+  virtual int UploadFfEffect(const base::ScopedFD& fd,
+                             struct ff_effect* effect);
+
   // Sometimes, we want to drop abs values, when we do so, we no longer want to
   // send gamepad frame event when we see next sync. This flag is set to false
   // when each frame is sent. It is set to true when Btn or Abs event is sent.
   bool will_send_frame_;
 
+  // This flag is set to true if the gamepad supports force feedback of type
+  // FF_RUMBLE.
+  bool supports_rumble_;
+
   std::vector<ui::GamepadDevice::Axis> axes_;
 
   // Evdev scancodes of pressed buttons.
@@ -78,6 +118,10 @@
   // Callbacks for dispatching events.
   DeviceEventDispatcherEvdev* const dispatcher_;
 
+  // The effect id is needed to keep track of effects that are uploaded and
+  // stored in the gamepad device.
+  int effect_id_;
+
   DISALLOW_COPY_AND_ASSIGN(GamepadEventConverterEvdev);
 };
 
diff --git a/ui/events/ozone/evdev/gamepad_event_converter_evdev_unittest.cc b/ui/events/ozone/evdev/gamepad_event_converter_evdev_unittest.cc
index ceec228..56dd97d 100644
--- a/ui/events/ozone/evdev/gamepad_event_converter_evdev_unittest.cc
+++ b/ui/events/ozone/evdev/gamepad_event_converter_evdev_unittest.cc
@@ -60,6 +60,33 @@
 }  // namespace
 
 namespace ui {
+
+class TestGamepadEventConverterEvdev : public ui::GamepadEventConverterEvdev {
+ public:
+  TestGamepadEventConverterEvdev(base::ScopedFD fd,
+                                 base::FilePath path,
+                                 int id,
+                                 const EventDeviceInfo& info,
+                                 DeviceEventDispatcherEvdev* dispatcher)
+      : GamepadEventConverterEvdev(std::move(fd), path, id, info, dispatcher) {}
+
+  int UploadFfEffect(const base::ScopedFD& fd,
+                     struct ff_effect* effect) override {
+    uploaded_ff_effects_.push_back(*effect);
+    return kEffectId;
+  }
+
+  ssize_t WriteEvent(const base::ScopedFD& fd,
+                     const struct input_event& event) override {
+    written_input_events_.push_back(event);
+    return 0;
+  }
+
+  int kEffectId = 0;
+  std::vector<ff_effect> uploaded_ff_effects_;
+  std::vector<input_event> written_input_events_;
+};
+
 class GamepadEventConverterEvdevTest : public testing::Test {
  public:
   GamepadEventConverterEvdevTest() {}
@@ -77,7 +104,7 @@
         ui::CreateDeviceEventDispatcherEvdevForTest(event_factory_.get());
   }
 
-  std::unique_ptr<ui::GamepadEventConverterEvdev> CreateDevice(
+  std::unique_ptr<ui::TestGamepadEventConverterEvdev> CreateDevice(
       const ui::DeviceCapabilities& caps) {
     int evdev_io[2];
     if (pipe(evdev_io))
@@ -87,7 +114,7 @@
 
     ui::EventDeviceInfo devinfo;
     CapabilitiesToDeviceInfo(caps, &devinfo);
-    return std::make_unique<ui::GamepadEventConverterEvdev>(
+    return std::make_unique<ui::TestGamepadEventConverterEvdev>(
         std::move(events_in), base::FilePath(kTestDevicePath), 1, devinfo,
         dispatcher_.get());
   }
@@ -95,7 +122,7 @@
  private:
   void DispatchEventForTest(ui::Event* event) {}
 
-  std::unique_ptr<ui::GamepadEventConverterEvdev> gamepad_evdev_;
+  std::unique_ptr<ui::TestGamepadEventConverterEvdev> gamepad_evdev_;
   std::unique_ptr<ui::DeviceManager> device_manager_;
   std::unique_ptr<ui::KeyboardLayoutEngine> keyboard_layout_engine_;
   std::unique_ptr<ui::EventFactoryEvdev> event_factory_;
@@ -110,9 +137,20 @@
   double value;
 };
 
+struct ExpectedVibrationEvent {
+  uint16_t code;
+  double value;
+};
+
+struct ExpectedVibrationEffect {
+  uint16_t duration;
+  double strong_magnitude;
+  double weak_magnitude;
+};
+
 TEST_F(GamepadEventConverterEvdevTest, XboxGamepadEvents) {
   TestGamepadObserver observer;
-  std::unique_ptr<ui::GamepadEventConverterEvdev> dev =
+  std::unique_ptr<ui::TestGamepadEventConverterEvdev> dev =
       CreateDevice(kXboxGamepad);
 
   struct input_event mock_kernel_queue[] = {
@@ -180,4 +218,34 @@
   }
 }
 
+TEST_F(GamepadEventConverterEvdevTest, XboxGamepadVibrationEvents) {
+  TestGamepadObserver observer;
+  std::unique_ptr<ui::TestGamepadEventConverterEvdev> dev =
+      CreateDevice(kXboxGamepad);
+
+  struct ExpectedVibrationEvent expected_events[] = {{dev->kEffectId, 1},
+                                                     {dev->kEffectId, 0}};
+  struct ExpectedVibrationEffect expected_effect = {10000, 0x8080, 0x8080};
+
+  dev->PlayVibrationEffect(0x80, 10000);
+  EXPECT_EQ(1UL, dev->written_input_events_.size());
+
+  input_event received_vibration_event = dev->written_input_events_[0];
+  EXPECT_EQ(expected_events[0].code, received_vibration_event.code);
+  EXPECT_EQ(expected_events[0].value, received_vibration_event.value);
+
+  ff_effect received_effect = dev->uploaded_ff_effects_[0];
+  EXPECT_EQ(expected_effect.duration, received_effect.replay.length);
+  EXPECT_EQ(expected_effect.strong_magnitude,
+            received_effect.u.rumble.strong_magnitude);
+  EXPECT_EQ(expected_effect.weak_magnitude,
+            received_effect.u.rumble.weak_magnitude);
+
+  dev->StopVibration();
+  EXPECT_EQ(2UL, dev->written_input_events_.size());
+  input_event received_cancel_event = dev->written_input_events_[1];
+  EXPECT_EQ(expected_events[1].code, received_cancel_event.code);
+  EXPECT_EQ(expected_events[1].value, received_cancel_event.value);
+}
+
 }  // namespace ui
diff --git a/ui/events/ozone/evdev/input_controller_evdev.cc b/ui/events/ozone/evdev/input_controller_evdev.cc
index c7f5648..d85cfa7 100644
--- a/ui/events/ozone/evdev/input_controller_evdev.cc
+++ b/ui/events/ozone/evdev/input_controller_evdev.cc
@@ -257,4 +257,18 @@
   caps_lock_led_state_ = caps_lock_state;
 }
 
+void InputControllerEvdev::PlayVibrationEffect(int id,
+                                               uint8_t amplitude,
+                                               uint16_t duration_millis) {
+  if (!input_device_factory_)
+    return;
+  input_device_factory_->PlayVibrationEffect(id, amplitude, duration_millis);
+}
+
+void InputControllerEvdev::StopVibration(int id) {
+  if (!input_device_factory_)
+    return;
+  input_device_factory_->StopVibration(id);
+}
+
 }  // namespace ui
diff --git a/ui/events/ozone/evdev/input_controller_evdev.h b/ui/events/ozone/evdev/input_controller_evdev.h
index 2e49e1c..68544a0 100644
--- a/ui/events/ozone/evdev/input_controller_evdev.h
+++ b/ui/events/ozone/evdev/input_controller_evdev.h
@@ -79,6 +79,10 @@
   void GetGesturePropertiesService(
       mojo::PendingReceiver<ozone::mojom::GesturePropertiesService> receiver)
       override;
+  void PlayVibrationEffect(int id,
+                           uint8_t amplitude,
+                           uint16_t duration_millis) override;
+  void StopVibration(int id) override;
 
  private:
   // Post task to update settings.
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev.cc b/ui/events/ozone/evdev/input_device_factory_evdev.cc
index bf9ac94..1146cf4 100644
--- a/ui/events/ozone/evdev/input_device_factory_evdev.cc
+++ b/ui/events/ozone/evdev/input_device_factory_evdev.cc
@@ -397,6 +397,26 @@
   }
 }
 
+void InputDeviceFactoryEvdev::PlayVibrationEffect(int id,
+                                                  uint8_t amplitude,
+                                                  uint16_t duration_millis) {
+  for (const auto& it : converters_) {
+    if (it.second->id() == id) {
+      it.second->PlayVibrationEffect(amplitude, duration_millis);
+      return;
+    }
+  }
+}
+
+void InputDeviceFactoryEvdev::StopVibration(int id) {
+  for (const auto& it : converters_) {
+    if (it.second->id() == id) {
+      it.second->StopVibration();
+      return;
+    }
+  }
+}
+
 bool InputDeviceFactoryEvdev::IsDeviceEnabled(
     const EventConverterEvdev* converter) {
   if (!input_device_settings_.enable_internal_touchpad &&
@@ -515,7 +535,8 @@
   for (auto it = converters_.begin(); it != converters_.end(); ++it) {
     if (it->second->HasGamepad()) {
       gamepads.emplace_back(it->second->input_device(),
-                            it->second->GetGamepadAxes());
+                            it->second->GetGamepadAxes(),
+                            it->second->GetGamepadRumbleCapability());
     }
   }
 
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev.h b/ui/events/ozone/evdev/input_device_factory_evdev.h
index b04fbc56..91f7b857 100644
--- a/ui/events/ozone/evdev/input_device_factory_evdev.h
+++ b/ui/events/ozone/evdev/input_device_factory_evdev.h
@@ -62,6 +62,10 @@
   // LED state.
   void SetCapsLockLed(bool enabled);
 
+  // Handle gamepad force feedback effects.
+  void PlayVibrationEffect(int id, uint8_t amplitude, uint16_t duration_millis);
+  void StopVibration(int id);
+
   // Bits from InputController that have to be answered on IO.
   void UpdateInputDeviceSettings(const InputDeviceSettingsEvdev& settings);
   void GetTouchDeviceStatus(InputController::GetTouchDeviceStatusReply reply);
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc b/ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc
index 46dcccbd..9767cbdf 100644
--- a/ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc
+++ b/ui/events/ozone/evdev/input_device_factory_evdev_proxy.cc
@@ -108,4 +108,20 @@
                      input_device_factory_, std::move(receiver)));
 }
 
+void InputDeviceFactoryEvdevProxy::PlayVibrationEffect(
+    int id,
+    uint8_t amplitude,
+    uint16_t duration_millis) {
+  task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(&InputDeviceFactoryEvdev::PlayVibrationEffect,
+                     input_device_factory_, id, amplitude, duration_millis));
+}
+
+void InputDeviceFactoryEvdevProxy::StopVibration(int id) {
+  task_runner_->PostTask(FROM_HERE,
+                         base::BindOnce(&InputDeviceFactoryEvdev::StopVibration,
+                                        input_device_factory_, id));
+}
+
 }  // namespace ui
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev_proxy.h b/ui/events/ozone/evdev/input_device_factory_evdev_proxy.h
index 1811014e1..94dc5cb9 100644
--- a/ui/events/ozone/evdev/input_device_factory_evdev_proxy.h
+++ b/ui/events/ozone/evdev/input_device_factory_evdev_proxy.h
@@ -49,6 +49,8 @@
                         InputController::GetTouchEventLogReply reply);
   void GetGesturePropertiesService(
       mojo::PendingReceiver<ozone::mojom::GesturePropertiesService> receiver);
+  void PlayVibrationEffect(int id, uint8_t amplitude, uint16_t duration_millis);
+  void StopVibration(int id);
 
  private:
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
diff --git a/ui/file_manager/file_manager/common/js/progress_center_common.js b/ui/file_manager/file_manager/common/js/progress_center_common.js
index ebccbe0b..4e77d7d 100644
--- a/ui/file_manager/file_manager/common/js/progress_center_common.js
+++ b/ui/file_manager/file_manager/common/js/progress_center_common.js
@@ -50,7 +50,9 @@
   // This is used for the mixed operation of summarized item.
   TRANSFER: 'transfer',
   // The item is external drive format operation.
-  FORMAT: 'format'
+  FORMAT: 'format',
+  // The item is archive operation.
+  MOUNT_ARCHIVE: 'mount_archive'
 };
 Object.freeze(ProgressItemType);
 
diff --git a/ui/file_manager/file_manager/foreground/js/file_tasks.js b/ui/file_manager/file_manager/foreground/js/file_tasks.js
index 49a47b0..bb4dd73 100644
--- a/ui/file_manager/file_manager/foreground/js/file_tasks.js
+++ b/ui/file_manager/file_manager/foreground/js/file_tasks.js
@@ -895,12 +895,17 @@
             console.error('Cannot resolve display root after mounting:', error);
           }
         } catch (error) {
-          const path = util.extractFilePath(url);
-          const namePos = path.lastIndexOf('/');
-          this.ui_.alertDialog.show(
-              strf('ARCHIVE_MOUNT_FAILED', path.substr(namePos + 1), error),
-              null, null);
-          console.error(`Cannot mount '${path}': ${error.stack || error}`);
+          const filename = util.extractFilePath(url).split('/').pop();
+
+          const errorItem = new ProgressCenterItem();
+          errorItem.id = 'cannot-mount-' + url;
+          errorItem.type = ProgressItemType.MOUNT_ARCHIVE;
+          errorItem.message = strf('ARCHIVE_MOUNT_FAILED', filename);
+          errorItem.state = ProgressItemState.ERROR;
+          this.progressCenter_.updateItem(errorItem);
+
+          console.error(`Cannot mount '${url}':`);
+          console.error(error);
         }
       });
 
diff --git a/ui/ozone/public/input_controller.cc b/ui/ozone/public/input_controller.cc
index 6b12bb5d..43a27b4 100644
--- a/ui/ozone/public/input_controller.cc
+++ b/ui/ozone/public/input_controller.cc
@@ -67,6 +67,10 @@
   void GetGesturePropertiesService(
       mojo::PendingReceiver<ui::ozone::mojom::GesturePropertiesService>
           receiver) override {}
+  void PlayVibrationEffect(int id,
+                           uint8_t amplitude,
+                           uint16_t duration_millis) override {}
+  void StopVibration(int id) override {}
 
  private:
   DISALLOW_COPY_AND_ASSIGN(StubInputController);
diff --git a/ui/ozone/public/input_controller.h b/ui/ozone/public/input_controller.h
index 6de884c..cbf9482 100644
--- a/ui/ozone/public/input_controller.h
+++ b/ui/ozone/public/input_controller.h
@@ -93,6 +93,15 @@
 
   virtual void SetTouchscreensEnabled(bool enabled) = 0;
 
+  // Controls vibration for the gamepad device with the corresponding |id|.
+  // |amplitude| determines the strength of the vibration, where 0 is no
+  // vibration and 255 is maximum vibration, and |duration_millis|
+  // determines the duration of the vibration in milliseconds.
+  virtual void PlayVibrationEffect(int id,
+                                   uint8_t amplitude,
+                                   uint16_t duration_millis) = 0;
+  virtual void StopVibration(int id) = 0;
+
   // If |enable_filter| is true, all keys on the internal keyboard except
   // |allowed_keys| are disabled.
   virtual void SetInternalKeyboardFilter(bool enable_filter,